{"version":3,"file":"static/js/main.3261ec44.js","mappings":"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,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC1qB,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IA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AAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAC1qB,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI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S,SAACnjG,GAAAA,OAAAA,SCCQojG,EACtBC,EACArjG,EACArjI,GAAAA,QAAAA,IAAAA,IAAAA,EAAkB85N,KAEbh0C,EAAAA,EAAAA,oBAAmBziD,GAAAA,OACf83F,EAAiB,EAAGt+K,OAAOwmF,IAAAA,IAK9BsjG,EAAmB,kBAAaD,EAAqBrjG,EAAKrjI,EAAS27N,GAAAA,WAAAA,EAAAA,WAAAA,EAAAA,OAGzEgL,EAAiBC,WAAa,YAAA3oP,OAC5BwoP,EAAqBC,EAAsBrjG,EAAAA,EAAAA,CAAAA,EAAUrjI,EAAAA,CAAAA,EAAY/hB,GAAAA,EAGnE0oP,EAAiBp5E,MAAQ,YAAAA,OACvBk5E,EAAqBC,EAAsBrjG,EAAAA,EAAAA,CAAAA,EACtCrjI,EAAAA,CACHutJ,MAAOj+K,MAAMC,UAAUytI,OAAOh9G,EAAQutJ,MAAOA,GAAOtyH,OAAOgvE,WAAAA,EAGxD08H,CAAAA,CDzBOtjG,CAAqCwjG,GAAiBxjG,EAAAA,EDJvD,CACb,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,UACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,QACA,KACA,QACA,IACA,KACA,MACA,QACA,MAGA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UAC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","sources":["../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@zakeke/zakeke-configurator-react/dist/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/immutability-helper/index.js","../node_modules/lodash/lodash.js","../node_modules/nuka-carousel/es/announce-slide.js","../node_modules/nuka-carousel/es/carousel.js","../node_modules/nuka-carousel/es/control-styles.js","../node_modules/nuka-carousel/es/controls.js","../node_modules/nuka-carousel/es/default-carousel-props.js","../node_modules/nuka-carousel/es/default-controls.js","../node_modules/nuka-carousel/es/hooks/use-frame-height.js","../node_modules/nuka-carousel/es/hooks/use-state-with-ref.js","../node_modules/nuka-carousel/es/hooks/use-tween.js","../node_modules/nuka-carousel/es/index.js","../node_modules/nuka-carousel/es/slide.js","../node_modules/nuka-carousel/es/slider-list.js","../node_modules/nuka-carousel/es/types.js","../node_modules/nuka-carousel/es/utils.js","../node_modules/object-assign/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/shallowequal/index.js","../node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/src/utils/interleave.js","../node_modules/styled-components/src/utils/isPlainObject.js","../node_modules/styled-components/src/utils/empties.js","../node_modules/styled-components/src/utils/isFunction.js","../node_modules/styled-components/src/utils/getComponentName.js","../node_modules/styled-components/src/utils/isStyledComponent.js","../node_modules/styled-components/src/constants.js","../node_modules/styled-components/src/utils/error.js","../node_modules/styled-components/src/sheet/GroupedTag.js","../node_modules/styled-components/src/sheet/GroupIDAllocator.js","../node_modules/styled-components/src/sheet/Rehydration.js","../node_modules/styled-components/src/utils/nonce.js","../node_modules/styled-components/src/sheet/dom.js","../node_modules/styled-components/src/sheet/Tag.js","../node_modules/styled-components/src/sheet/Sheet.js","../node_modules/styled-components/src/utils/generateAlphabeticName.js","../node_modules/styled-components/src/utils/hash.js","../node_modules/styled-components/src/utils/isStaticRules.js","../node_modules/styled-components/src/models/ComponentStyle.js","../node_modules/styled-components/src/utils/stylis.js","../node_modules/styled-components/src/utils/stylisPluginInsertRule.js","../node_modules/styled-components/src/models/StyleSheetManager.js","../node_modules/styled-components/src/models/Keyframes.js","../node_modules/styled-components/src/utils/hyphenateStyleName.js","../node_modules/styled-components/src/utils/flatten.js","../node_modules/styled-components/src/utils/isStatelessFunction.js","../node_modules/styled-components/src/utils/addUnitIfNeeded.js","../node_modules/styled-components/src/constructors/css.js","../node_modules/styled-components/src/utils/checkDynamicCreation.js","../node_modules/styled-components/src/utils/determineTheme.js","../node_modules/styled-components/src/utils/escape.js","../node_modules/styled-components/src/utils/generateComponentId.js","../node_modules/styled-components/src/utils/isTag.js","../node_modules/styled-components/src/utils/mixinDeep.js","../node_modules/styled-components/src/models/ThemeProvider.js","../node_modules/styled-components/src/models/StyledComponent.js","../node_modules/styled-components/src/utils/generateDisplayName.js","../node_modules/styled-components/src/utils/joinStrings.js","../node_modules/styled-components/src/utils/domElements.js","../node_modules/styled-components/src/constructors/styled.js","../node_modules/styled-components/src/constructors/constructWithOptions.js","../node_modules/styled-components/src/models/GlobalStyle.js","../node_modules/styled-components/src/constructors/createGlobalStyle.js","../node_modules/styled-components/src/constructors/keyframes.js","../node_modules/styled-components/src/models/ServerStyleSheet.js","../node_modules/styled-components/src/hoc/withTheme.js","../node_modules/styled-components/src/hooks/useTheme.js","../node_modules/styled-components/src/secretInternals.js","../node_modules/styled-components/src/base.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/zustand/esm/vanilla.mjs","../node_modules/zustand/esm/index.mjs","assets/icons/angle-left-solid.svg","Store.ts","Helpers.tsx","assets/icons/dollar-sign-solid.svg","assets/icons/file-pdf-solid.svg","assets/icons/share-alt-square-solid.svg","assets/icons/shopping-cart-solid.svg","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","assets/icons/times-solid.svg","components/Atomic.tsx","components/dialogs/Dialogs.tsx","../node_modules/react-loader-spinner/dist/esm/loader/InfinitySpin.js","components/dialogs/ErrorDialog.tsx","components/dialogs/PdfDialog.tsx","../node_modules/react-loader-spinner/dist/esm/type.js","../node_modules/styled-tools/dist/es/prop.js","../node_modules/styled-tools/dist/es/ifProp.js","../node_modules/react-loader-spinner/dist/esm/loader/RotatingLines.js","../node_modules/react-loader-spinner/dist/esm/helpers.js","../node_modules/react-loader-spinner/dist/esm/loader/Triangle.js","../node_modules/react-loader-spinner/dist/esm/loader/TailSpin.js","../node_modules/react-loader-spinner/dist/esm/loader/Blocks.js","assets/images/social/facebook_svg.svg","assets/images/social/mail_svg.svg","assets/images/social/pinterest_svg.svg","assets/images/social/twitter_svg.svg","assets/images/social/whatsapp_svg.svg","components/dialogs/generateForm/times-circle.svg","components/dialogs/ShareDialog.tsx","components/layout/LayoutStyled.tsx","components/dialogs/generateForm/Input.tsx","components/dialogs/generateForm/TextArea.tsx","components/dialogs/generateForm/Number.tsx","components/dialogs/generateForm/RadioGroup.tsx","components/dialogs/generateForm/CheckBoxForm.tsx","components/dialogs/generateForm/SelectForm.tsx","components/dialogs/generateForm/HeaderForm.tsx","components/dialogs/generateForm/paragraphForm.tsx","components/dialogs/generateForm/LineItems.tsx","components/dialogs/generateForm/GenerateForm.tsx","components/dialogs/QuotationFormDialog.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/serialize/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/react-select/dist/useCreatable-ff70b556.esm.js","../node_modules/react-select/creatable/dist/react-select-creatable.esm.js","assets/icons/save-solid.svg","components/dialogs/SaveDesignsDraftDialog.tsx","components/layout/FooterMobile.tsx","../node_modules/immutable/dist/immutable.es.js","assets/icons/saved_designs.svg","assets/icons/star.svg","hooks/useDropdown.tsx","assets/icons/info-circle-solid.svg","assets/icons/arrows-alt-solid.svg","components/widgets/tooltip/index.tsx","components/layout/CustomSizesComponent.tsx","../node_modules/react-select/dist/react-select.esm.js","assets/icons/plus-circle-solid.svg","assets/icons/search-minus-solid.svg","assets/icons/search-plus-solid.svg","assets/icons/bold-solid.svg","assets/icons/italic-solid.svg","assets/icons/bezier-curve-solid.svg","components/widgets/FormControl.tsx","../node_modules/react-colorful/src/hooks/useEventCallback.ts","../node_modules/react-colorful/src/utils/clamp.ts","../node_modules/react-colorful/src/components/common/Interactive.tsx","../node_modules/react-colorful/src/utils/format.ts","../node_modules/react-colorful/src/components/common/Pointer.tsx","../node_modules/react-colorful/src/utils/round.ts","../node_modules/react-colorful/src/utils/convert.ts","../node_modules/react-colorful/src/components/common/Hue.tsx","../node_modules/react-colorful/src/components/common/Saturation.tsx","../node_modules/react-colorful/src/utils/compare.ts","../node_modules/react-colorful/src/hooks/useColorManipulation.ts","../node_modules/react-colorful/src/utils/nonce.ts","components/widgets/ItemText.tsx","../node_modules/react-colorful/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-colorful/src/hooks/useStyleSheet.ts","../node_modules/react-colorful/src/components/common/ColorPicker.tsx","../node_modules/react-colorful/src/components/HexColorPicker.tsx","../node_modules/react-colorful/src/utils/validate.ts","../node_modules/react-colorful/src/components/common/ColorInput.tsx","../node_modules/react-colorful/src/components/HexColorInput.tsx","components/widgets/colorpicker/index.tsx","assets/icons/angle-right-solid.svg","components/dialogs/AddTextDialog.tsx","components/dialogs/ImagesGalleryDialog.tsx","components/widgets/ItemImage.tsx","components/layout/Designer.tsx","components/layout/DesignsDraftList.tsx","assets/icons/arrow-left-solid.svg","components/layout/Steps.tsx","assets/icons/arrow-right-solid.svg","assets/icons/expand-solid.svg","components/layout/mobile/SelectorMobileComponents.tsx","components/layout/mobile/SelectorMobile.tsx","assets/icons/bars-solid.svg","assets/icons/reset-alt-solid.svg","assets/icons/undo-solid.svg","assets/icons/redo-solid.svg","assets/icons/desktop-solid.svg","../node_modules/qrcode.react/lib/esm/index.js","components/dialogs/ArDeviceSelectionDialog.tsx","components/widgets/RecapPanel.tsx","components/layout/Viewer.tsx","LayoutMobile.tsx","assets/icons/arrow-top-simple.svg","assets/icons/arrow-bottom-simple.svg","components/layout/NumericInput.tsx","components/layout/Footer.tsx","assets/icons/font-solid.svg","components/widgets/Option.tsx","assets/icons/angle-down-solid.svg","assets/icons/angle-up-solid.svg","components/layout/desktop/SelectorDesktop.tsx","LayoutDesktop.tsx","components/widgets/LoadingOverlay.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"styled-components\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"styled-components\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Zakeke\"] = factory(require(\"react\"), require(\"styled-components\"));\n\telse\n\t\troot[\"Zakeke\"] = factory(root[\"react\"], root[\"styled-components\"]);\n})(self, (__WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_styled_components__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"../../3D/src/Components/AR/AndroidAR.ts\":\n/*!***********************************************!*\\\n !*** ../../3D/src/Components/AR/AndroidAR.ts ***!\n \\***********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"AndroidAR\": () => (/* binding */ AndroidAR)\n/* harmony export */ });\nclass AndroidAR {\r\n static openSceneViewer(gltfSrc, notifyUnsupportedAR, arScale = true) {\r\n // If the fallback has ever been invoked this session, bounce early:\r\n if (this._fallbackInvoked) {\r\n return;\r\n }\r\n const location = self.location.toString();\r\n const locationUrl = new URL(location);\r\n const modelUrl = new URL(gltfSrc);\r\n const params = new URLSearchParams(modelUrl.search);\r\n locationUrl.hash = this._noArViewerSigil;\r\n // modelUrl can contain title/link/sound etc.\r\n params.set('mode', 'ar_preferred');\r\n if (!params.has('disable_occlusion')) {\r\n params.set('disable_occlusion', 'true');\r\n }\r\n if (!arScale) {\r\n params.set('resizable', 'false');\r\n }\r\n if (params.has('sound')) {\r\n const soundUrl = new URL(params.get('sound'), location);\r\n params.set('sound', soundUrl.toString());\r\n }\r\n if (params.has('link')) {\r\n const linkUrl = new URL(params.get('link'), location);\r\n params.set('link', linkUrl.toString());\r\n }\r\n const intent = `intent://arvr.google.com/scene-viewer/1.0?${params.toString() + '&file=' +\r\n encodeURIComponent(modelUrl\r\n .toString())}#Intent;scheme=https;package=com.google.ar.core;action=android.intent.action.VIEW;S.browser_fallback_url=${encodeURIComponent(locationUrl.toString())};end;`;\r\n console.log(intent);\r\n const undoHashChange = () => {\r\n if (self.location.hash === this._noArViewerSigil && !this._fallbackInvoked) {\r\n this._fallbackInvoked = true;\r\n if (notifyUnsupportedAR)\r\n notifyUnsupportedAR();\r\n // The new history will be the current URL with a new hash.\r\n // Go back one step so that we reset to the expected URL.\r\n // NOTE: this should not invoke any browser-level navigation\r\n // because hash-only changes modify the URL in-place without\r\n // navigating:\r\n self.history.back();\r\n }\r\n };\r\n self.addEventListener('hashchange', undoHashChange, { once: true });\r\n this._anchor.setAttribute('href', intent);\r\n this._anchor.setAttribute('target', '_blank');\r\n document.body.appendChild(this._anchor);\r\n this._anchor.click();\r\n }\r\n}\r\nAndroidAR._anchor = document.createElement('a');\r\nAndroidAR._linkOrTitle = /(link|title)(=|&)|(\\?|&)(link|title)$/;\r\nAndroidAR._noArViewerSigil = '#model-viewer-no-ar-fallback';\r\nAndroidAR._fallbackInvoked = false;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ActionExecutor/SceneActionExecutor.ts\":\n/*!*********************************************************************!*\\\n !*** ../../3D/src/Components/ActionExecutor/SceneActionExecutor.ts ***!\n \\*********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SceneActionsExecutor\": () => (/* binding */ SceneActionsExecutor)\n/* harmony export */ });\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n/* harmony import */ var _Selector_ElementSelector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Selector/ElementSelector */ \"../../3D/src/Components/Selector/ElementSelector.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\nclass SceneActionsExecutor {\r\n constructor(zkScene, scene, zkModel) {\r\n this._zkModel = null;\r\n this._sceneHelper = null;\r\n this._deviceType = MPlaza.DeviceType.All;\r\n this._meshDesignRefreshRequiredListeners = [];\r\n this._beginAssetsLoadingListeners = [];\r\n this._endAssetsLoadingListeners = [];\r\n this._useMaterialOffloading = false;\r\n this._prefetchMeshes = true;\r\n this._prefetchMaterials = true;\r\n this._zkScene = zkScene;\r\n this._scene = scene;\r\n this._sceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper(scene);\r\n this._elementSelector = new _Selector_ElementSelector__WEBPACK_IMPORTED_MODULE_1__.ElementSelector();\r\n if (zkModel)\r\n this._zkModel = zkModel;\r\n }\r\n get deviceType() {\r\n return this._deviceType;\r\n }\r\n set deviceType(value) {\r\n if (this._deviceType != value)\r\n this._deviceType = value;\r\n }\r\n get useMaterialOffloading() {\r\n return this._useMaterialOffloading;\r\n }\r\n set useMaterialOffloading(value) {\r\n if (this._useMaterialOffloading != value)\r\n this._useMaterialOffloading = value;\r\n }\r\n get prefetchMeshes() {\r\n return this._prefetchMeshes;\r\n }\r\n set prefetchMeshes(value) {\r\n if (this._prefetchMeshes !== value)\r\n this._prefetchMeshes = value;\r\n }\r\n get prefetchMaterials() {\r\n return this._prefetchMaterials;\r\n }\r\n set prefetchMaterials(value) {\r\n if (this._prefetchMaterials !== value)\r\n this._prefetchMaterials = value;\r\n }\r\n dispose() {\r\n if (this._sceneHelper) {\r\n this._sceneHelper.dispose();\r\n this._sceneHelper = null;\r\n }\r\n }\r\n // -------------------------------------------------------\r\n // Events\r\n // -------------------------------------------------------\r\n addMeshDesignRefreshRequiredListeners(callback) {\r\n this._meshDesignRefreshRequiredListeners.push(callback);\r\n }\r\n fireMeshDesignRefreshRequiredEvent(meshes, effect) {\r\n const evt = { meshes, effect };\r\n for (let i = 0; i < this._meshDesignRefreshRequiredListeners.length; ++i) {\r\n this._meshDesignRefreshRequiredListeners[i](evt);\r\n }\r\n }\r\n addBeginAssetsLoadingListener(callback) {\r\n this._beginAssetsLoadingListeners.push(callback);\r\n }\r\n fireBeginAssetsLoadingEvent() {\r\n for (let i = 0; i < this._beginAssetsLoadingListeners.length; ++i) {\r\n this._beginAssetsLoadingListeners[i]();\r\n }\r\n }\r\n addEndAssetsLoadingListener(callback) {\r\n this._endAssetsLoadingListeners.push(callback);\r\n }\r\n fireEndAssetsLoadingEvent() {\r\n for (let i = 0; i < this._endAssetsLoadingListeners.length; ++i) {\r\n this._endAssetsLoadingListeners[i]();\r\n }\r\n }\r\n // -------------------------------------------------------\r\n // Actions Helpers Methods\r\n // -------------------------------------------------------\r\n isActionForDevice(action) {\r\n const type = action.get(\"deviceTypes\");\r\n if (type === MPlaza.DeviceType.Any || type === MPlaza.DeviceType.All)\r\n return true;\r\n if ((type & this._deviceType) === this._deviceType)\r\n return true;\r\n return false;\r\n }\r\n // ad una mesh vengono associati dei dati aggiuntivi che servono per l'utilizzo dei filtri.\r\n // Un filtro consente di creare un contesto di mesh da associare ad una opzione di un attributo.\r\n // Quando si utilizza un'azione di tipo filtro, verranno visualizzate solo le mesh specificate dal filtro.\r\n // Per esempio, per un orologio potrei avere un attributo \"modello\" con le opzioni \"classico\", \"moderno\", \"sportivo\".\r\n // Selezionando un modello, potrebbe essere utile attivare solo le mesh che hanno a che fare con il\r\n // modello selezionato. Questo consentirebbe di specificare azioni su altre opzioni indipendentemente dal modello.\r\n // Ad esempio potrei avere un altro attributo \"vetro\" con le opzioni \"zaffiro\" e \"normale\" con le azioni\r\n // che visualizzano il vetro nel materiale selezionato, diverso per modello.\r\n // Un filtro è relativo ad un attributo, così da permettere la definizione di contesti più restrittivi\r\n // andando a cumulare filtri relativi ad attributi diversi.\r\n // Inizializza la struttura dati associata ad una mesh\r\n setupMeshData(mesh) {\r\n if (!mesh[\"data\"]) {\r\n mesh[\"data\"] = {\r\n filters: {},\r\n toShow: mesh.isVisible\r\n };\r\n }\r\n }\r\n // Imposta il filtro legato ad un attributo (da un'azione filtro)\r\n setMeshFilterAsync(mesh, attributeID, value) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setupMeshData(mesh);\r\n mesh[\"data\"].filters[attributeID] = value;\r\n yield this.chekMeshVisibilityAsync(mesh);\r\n });\r\n }\r\n // Richiede la visibilità di una mesh (da un'azione show/hide)\r\n setMeshVisibilityAsync(mesh, value) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.setupMeshData(mesh);\r\n mesh[\"data\"].toShow = value;\r\n yield this.chekMeshVisibilityAsync(mesh);\r\n });\r\n }\r\n // Determina se dopo l'applicazione di un filtro o una richiesta di visibilità\r\n // la mesh debba essere mostrata o nascosta. Il risultato andrà ad agire sulla\r\n // effettiva visibilità della mesh, secondo l'espressione booleana:\r\n // mesh.isVisible = F1 && F2 && ... && Fn && toShow\r\n chekMeshVisibilityAsync(mesh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let filters = null;\r\n if (mesh && mesh[\"data\"]) {\r\n filters = mesh[\"data\"].toShow;\r\n if (filters) {\r\n for (const property in mesh[\"data\"].filters) {\r\n filters = filters && mesh[\"data\"].filters[property];\r\n }\r\n }\r\n }\r\n if (filters !== null && this._sceneHelper) {\r\n if (filters) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl)\r\n yield this._sceneHelper.unsetMeshDummyMaterialAsync(mesh, rootUrl, true);\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper.whenMeshIsReadyAsync(mesh);\r\n }\r\n this._sceneHelper.showHideMesh(mesh.id, filters);\r\n }\r\n });\r\n }\r\n getMeshByID(id) {\r\n return this._scene.getMeshByID(id);\r\n }\r\n getMaterialByID(id) {\r\n return this._scene.getMaterialByID(id);\r\n }\r\n setCameraLocation(locationID) {\r\n const zkCameraLocation = this._zkScene.getCameraLocation(locationID);\r\n if (zkCameraLocation) {\r\n const position = new BABYLON.Vector3(zkCameraLocation.get(\"px\"), zkCameraLocation.get(\"py\"), zkCameraLocation.get(\"pz\"));\r\n const target = new BABYLON.Vector3(zkCameraLocation.get(\"tx\"), zkCameraLocation.get(\"ty\"), zkCameraLocation.get(\"tz\"));\r\n if (this._sceneHelper)\r\n this._sceneHelper.animateCamera(target, position, 0.5);\r\n }\r\n }\r\n adjustCamera(animate) {\r\n if (this._sceneHelper) {\r\n if (animate !== undefined && typeof (animate) === \"boolean\")\r\n this._sceneHelper.adjustCamera(undefined, undefined, undefined, animate);\r\n else\r\n this._sceneHelper.adjustCamera();\r\n }\r\n }\r\n zoomIn() {\r\n if (this._sceneHelper)\r\n this._sceneHelper.zoomIn();\r\n }\r\n zoomOut() {\r\n if (this._sceneHelper)\r\n this._sceneHelper.zoomOut();\r\n }\r\n zoom(perc) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.zoom(perc);\r\n }\r\n setCameraPivot(meshID) {\r\n if (this._sceneHelper) {\r\n const mesh = meshID ? this._scene.getMeshByID(meshID) : null;\r\n this._sceneHelper.setCameraPivot(mesh);\r\n }\r\n }\r\n setCameraZoomEnabled(enabled) {\r\n if (this._sceneHelper) {\r\n this._sceneHelper.setZoomEnabled(enabled);\r\n }\r\n }\r\n setMeshMaterial(material, mesh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneHelper) {\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper.whenAllMaterialTexturesAreReady(material);\r\n const oldMaterial = mesh.material;\r\n Logger.info(`Setting material to mesh | mesh: ${mesh.id} - ${mesh.name} | material: ${material.id} - ${material.name}`);\r\n this._sceneHelper.applyMaterial(material, mesh);\r\n if (this._useMaterialOffloading && oldMaterial) {\r\n this._sceneHelper.offloadMaterial(oldMaterial.id);\r\n }\r\n }\r\n });\r\n }\r\n setSubmeshMaterial(material, mesh, subMesh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneHelper) {\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper.whenAllMaterialTexturesAreReady(material);\r\n const oldMaterial = this._sceneHelper.getSubMeshMaterial(mesh, subMesh);\r\n this._sceneHelper.applyMaterialToSubMesh(material, mesh, subMesh);\r\n if (this._useMaterialOffloading && oldMaterial) {\r\n this._sceneHelper.offloadMaterial(oldMaterial.id);\r\n }\r\n }\r\n });\r\n }\r\n getMaterialFromActionValue(action) {\r\n if (this._elementSelector) {\r\n // Recupero il materiale, che deve essere specificato tramite nome o ID\r\n const matSel = action.get(\"value\");\r\n if (matSel != undefined && matSel != null) {\r\n let material = this._scene.getMaterialByID(matSel);\r\n if (!material)\r\n material = this._scene.getMaterialByName(matSel);\r\n return material;\r\n }\r\n }\r\n return null;\r\n }\r\n getDelayedMaterialIDFromAction(action) {\r\n if (this._zkScene && this._scene && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction) &&\r\n this._scene.metadata && this._scene.metadata.delayedMaterials) {\r\n // Recupero il materiale, che deve essere specificato tramite nome o ID\r\n const matSel = action.get(\"value\");\r\n if (matSel != undefined && matSel != null) {\r\n if (this._scene.metadata.delayedMaterials.hasOwnProperty(matSel)) {\r\n return matSel; // id trovato\r\n }\r\n else {\r\n for (let key in this._scene.metadata.delayedMaterials) {\r\n if (this._scene.metadata.delayedMaterials[key].name === matSel)\r\n return key; // trovato nome\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n checkDelayedMaterial(materialID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let material = this.getMaterialByID(materialID);\r\n if (!material && this._sceneHelper) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl != undefined && rootUrl != null) {\r\n material = yield this._sceneHelper.loadDelayedMaterialAsync(rootUrl, materialID);\r\n }\r\n }\r\n return material;\r\n });\r\n }\r\n getOffloadedMaterialIDFromAction(action) {\r\n if (this._zkScene && this._scene && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction) &&\r\n this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n // Recupero il materiale, che deve essere specificato tramite nome o ID\r\n const matSel = action.get(\"value\");\r\n if (matSel !== undefined && matSel !== null) {\r\n if (this._scene.metadata.offloadedMaterials.hasOwnProperty(matSel)) {\r\n return matSel; // id trovato\r\n }\r\n else {\r\n for (let key in this._scene.metadata.offloadedMaterials) {\r\n if (this._scene.metadata.offloadedMaterials[key].name === matSel)\r\n return key; // trovato nome\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n checkOffloadedMaterialAsync(materialID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let material = this.getMaterialByID(materialID);\r\n if (!material && this._sceneHelper) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl !== undefined && rootUrl !== null) {\r\n material = yield this._sceneHelper.loadOffloadedMaterialAsync(rootUrl, materialID);\r\n }\r\n }\r\n return material;\r\n });\r\n }\r\n // Recupera il materiale specificato nel valore di un'azione, eventualmente caricandolo da remoto (delayed) oppure dalla cache (offloaded)\r\n getDeepMaterialFromActionValueAsync(action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let material = this.getMaterialFromActionValue(action);\r\n if (!material && this._sceneHelper) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl !== undefined && rootUrl !== null) {\r\n // Verifico se si tratta di un materiale offloaded o delayed\r\n let materialID = this.getOffloadedMaterialIDFromAction(action);\r\n if (materialID) {\r\n Logger.info(\"Requesting offloaded material - id: \", materialID);\r\n material = yield this._sceneHelper.loadOffloadedMaterialAsync(rootUrl, materialID);\r\n Logger.info(\"Obtained offloaded material - id: \", materialID);\r\n }\r\n else {\r\n materialID = this.getDelayedMaterialIDFromAction(action);\r\n if (materialID) {\r\n Logger.info(\"Requesting delayed material - id: \", materialID);\r\n material = yield this._sceneHelper.loadDelayedMaterialAsync(rootUrl, materialID);\r\n Logger.info(\"Obtained delayed material - id: \", materialID);\r\n }\r\n }\r\n }\r\n }\r\n return material;\r\n });\r\n }\r\n scriptRequiresDelayedLoading(script) {\r\n for (let i = 0; i < script.length; i++) {\r\n const scriptActions = script[i];\r\n if (this.actionsRequireDelayedLoading(scriptActions.actions))\r\n return true;\r\n }\r\n return false;\r\n }\r\n actionsRequireDelayedLoading(actions) {\r\n for (let i = 0; i < actions.length; i++) {\r\n if (this.actionRequiresDelayedLoading(actions[i]))\r\n return true;\r\n }\r\n return false;\r\n }\r\n actionRequiresDelayedLoading(action) {\r\n // Almeno una mesh con delayLoading oppure con materiale dummy e materiali originali delayed o offloaded\r\n if (this._sceneHelper && action.get(\"actionTypeID\") === MPlaza.SceneActionType.ShowHideMesh && action.get(\"value\") === \"show\") {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const meshes = this._elementSelector.getElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n for (let k = 0; k < meshes.length; k++) {\r\n const mesh = meshes[k];\r\n if (mesh instanceof BABYLON.AbstractMesh && !mesh.isVisible) {\r\n const meshDelayedMaterialIDs = this._sceneHelper.getMeshDelayedMaterialIDs(mesh);\r\n const meshOffloadedMaterialIDs = this._sceneHelper.getMeshOffloadedMaterialIDs(mesh);\r\n if (meshDelayedMaterialIDs.length > 0 || meshOffloadedMaterialIDs.length > 0)\r\n return true;\r\n if (_SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper.meshRequiresDelayedLoading(mesh))\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n // Almeno un materiale con delayedLoading\r\n if (action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetMeshMaterial ||\r\n action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetSubMeshMaterial ||\r\n action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetMaterialColor ||\r\n action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetMeshDesignMaterial) {\r\n const material = this.getMaterialFromActionValue(action);\r\n if (!material) {\r\n const delayedMaterialID = this.getDelayedMaterialIDFromAction(action);\r\n if (delayedMaterialID)\r\n return true;\r\n const offloadedMaterialID = this.getOffloadedMaterialIDFromAction(action);\r\n if (offloadedMaterialID)\r\n return true;\r\n }\r\n }\r\n if (action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetMaterialColor) {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const delayedMaterialIDs = this._elementSelector.getDelayedElementIDs(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Material);\r\n const offloadedMaterialIDs = this._elementSelector.getOffloadedElementIDs(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Material);\r\n if (delayedMaterialIDs.length > 0 || offloadedMaterialIDs.length > 0)\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n getAllMaterialElementsAsync(expression) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const allMaterials = [];\r\n if (this._zkScene && this._scene && this._sceneHelper && this._elementSelector) {\r\n // Existing materials\r\n const materials = this._elementSelector.getMaterialElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Material);\r\n Array.prototype.push.apply(allMaterials, materials);\r\n const materialIDs = materials.map(m => m.id);\r\n const selectedDelayedMaterialIDs = this._elementSelector.getDelayedElementIDs(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Material);\r\n const selectedOffloadedMaterialIDs = this._elementSelector.getOffloadedElementIDs(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Material);\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl !== undefined && rootUrl !== null) {\r\n // delayed materials\r\n const delayedMaterialIDs = [];\r\n selectedDelayedMaterialIDs.forEach(id => {\r\n if (materialIDs.indexOf(id) === -1)\r\n delayedMaterialIDs.push(id);\r\n });\r\n if (delayedMaterialIDs.length > 0) {\r\n const delayedMaterials = yield this._sceneHelper.loadDelayedMaterialsAsync(rootUrl, delayedMaterialIDs);\r\n Array.prototype.push.apply(allMaterials, delayedMaterials);\r\n }\r\n // offloaded materials\r\n const offloadedMaterialIDs = [];\r\n selectedOffloadedMaterialIDs.forEach(id => {\r\n if (materialIDs.indexOf(id) === -1)\r\n offloadedMaterialIDs.push(id);\r\n });\r\n if (offloadedMaterialIDs.length > 0) {\r\n const offloadedMaterials = yield this._sceneHelper.loadOffloadedMaterialsByIDsAsync(rootUrl, offloadedMaterialIDs);\r\n Array.prototype.push.apply(allMaterials, offloadedMaterials);\r\n }\r\n }\r\n }\r\n return allMaterials;\r\n });\r\n }\r\n // Uno script è un array di oggetti ognuno dei quali rappresenta le azioni da eseguire\r\n // conseguentemente alla selezione di un valore per un attributo\r\n // si suppone che le azioni siano già ordinate per ordine di esecuzione\r\n // script: [{attributeID, selectedValue, actions}]\r\n executeScriptAsync(script) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const requireDelayedLoading = this.scriptRequiresDelayedLoading(script);\r\n if (requireDelayedLoading) {\r\n this.fireBeginAssetsLoadingEvent();\r\n }\r\n for (let i = 0; i < script.length; i++) {\r\n const scriptActions = script[i];\r\n yield this.executeActionsAsync(scriptActions.attributeID, scriptActions.selectedValue, scriptActions.actions, false);\r\n }\r\n if (requireDelayedLoading)\r\n this.fireEndAssetsLoadingEvent();\r\n });\r\n }\r\n executeActionsAsync(attributeID, selectedValue, actions, notifyDelayLoading = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (actions.length > 0) {\r\n // Caricamento mesh e materiali delayed previsti per le azioni\r\n const requireDelayedLoading = this.actionsRequireDelayedLoading(actions);\r\n if (notifyDelayLoading && requireDelayedLoading)\r\n this.fireBeginAssetsLoadingEvent();\r\n yield this.checkActionsAssetsAreReadyAsync(actions);\r\n // Esecuzione azioni\r\n for (let i = 0; i < actions.length; i++) {\r\n yield this.executeActionAsync(attributeID, selectedValue, actions[i]);\r\n }\r\n if (notifyDelayLoading && requireDelayedLoading)\r\n this.fireEndAssetsLoadingEvent();\r\n // -----------------------------------------\r\n }\r\n });\r\n }\r\n // Esegue una singola azione generata dalla selezione di un attributo\r\n // action: MPlaza.AttributeSceneAction\r\n executeActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n //Logger.info(\"Action - Selector: \" + action.get(\"selector\") + \" - Type: \" + action.get(\"actionTypeID\") + \" - Value: \" + action.get(\"value\"));\r\n if (action) {\r\n switch (action.get(\"actionTypeID\")) {\r\n case MPlaza.SceneActionType.Filter:\r\n yield this.executeFilterActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.ShowHideMesh:\r\n yield this.executeShowHideActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.SetMeshMaterial:\r\n yield this.executeSetMeshMaterialActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.SetSubMeshMaterial:\r\n yield this.executeSetSubMeshMaterialActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.SetMaterialColor:\r\n yield this.executeSetMaterialColorActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.SetCameraLocation:\r\n yield this.executeSetCameraLocationActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.AdjustCamera:\r\n yield this.executeAdjustCameraActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.SetCameraPivot:\r\n yield this.executeSetCameraPivotActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.ResetCameraPivot:\r\n yield this.executeResetCameraPivotActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.EnableDiableZoom:\r\n yield this.executeEnableDisableZoomActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.SetMeshDesignMaterial:\r\n yield this.executeSetMeshDesignMaterialActionAsync(attributeID, selectedValue, action);\r\n break;\r\n case MPlaza.SceneActionType.SetMeshDesignEffect:\r\n yield this.executeSetMeshDesignEffectActionAsync(attributeID, selectedValue, action);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n executeFilterActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (attributeID !== null && this._zkScene && this._scene && this._sceneHelper && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n // Recupero sia gli elementi che soddisfano il filtro che gli altri.\r\n // Questo perché per entrambe le tipologie di mesh devo settare i dati di filtro\r\n // e la conseguente visibilità\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const elements = this._elementSelector.getYesNoElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n const value = action.get(\"value\") === \"enable\" ? true : false;\r\n for (let i = 0; i < elements.yes.length; i++) {\r\n yield this.setMeshFilterAsync(elements.yes[i], attributeID, value);\r\n }\r\n for (let i = 0; i < elements.no.length; i++) {\r\n yield this.setMeshFilterAsync(elements.yes[i], attributeID, !value);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n executeShowHideActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._sceneHelper && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n const value = action.get(\"value\") === \"show\";\r\n for (let i = 0; i < meshes.length; i++) {\r\n yield this.setMeshVisibilityAsync(meshes[i], value);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n executeSetMeshMaterialActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._sceneHelper && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n const material = yield this.getDeepMaterialFromActionValueAsync(action);\r\n if (material) {\r\n for (let i = 0; i < meshes.length; i++) {\r\n yield this.setMeshMaterial(material, meshes[i]);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n executeSetSubMeshMaterialActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._sceneHelper && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const subMeshes = this._elementSelector.getSubMeshElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.SubMesh);\r\n const material = yield this.getDeepMaterialFromActionValueAsync(action);\r\n if (material) {\r\n for (let i = 0; i < subMeshes.length; i++) {\r\n yield this.setSubmeshMaterial(material, null, subMeshes[i]);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n executeSetMaterialColorActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._sceneHelper && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const materials = yield this.getAllMaterialElementsAsync(expression);\r\n const propertyName = action.get(\"propertyName\");\r\n let hexColor = action.get(\"value\");\r\n if (propertyName && hexColor) {\r\n if (selectedValue) {\r\n // Sostituisco la variabile %value% con il valore selezionato\r\n hexColor = hexColor.replace(/%value%/g, selectedValue);\r\n }\r\n const color = BABYLON.Color3.FromHexString(hexColor);\r\n for (let i = 0; i < materials.length; i++) {\r\n this._sceneHelper.changeMaterialColor(materials[i], propertyName, color);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n executeSetCameraLocationActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const value = action.get(\"value\");\r\n let cameraLocation = null;\r\n if (value) {\r\n for (let i = 0; i < this._zkScene.get(\"cameraLocations\").length; i++) {\r\n const location = this._zkScene.get(\"cameraLocations\").at(i);\r\n if (location.get(\"locationID\") === value || location.get(\"name\") === value) {\r\n cameraLocation = location;\r\n break;\r\n }\r\n }\r\n }\r\n if (cameraLocation !== null)\r\n this.setCameraLocation(cameraLocation.get(\"locationID\"));\r\n }\r\n });\r\n }\r\n executeAdjustCameraActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._sceneHelper && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n this._sceneHelper.adjustCamera();\r\n }\r\n });\r\n }\r\n executeSetCameraPivotActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const value = action.get(\"value\");\r\n let cameraPivot = null;\r\n if (value) {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (mesh.id === value || mesh.name === value) {\r\n cameraPivot = mesh;\r\n break;\r\n }\r\n }\r\n }\r\n if (cameraPivot)\r\n this.setCameraPivot(cameraPivot.id);\r\n }\r\n });\r\n }\r\n executeResetCameraPivotActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n this.setCameraPivot(null);\r\n });\r\n }\r\n executeEnableDisableZoomActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const value = action.get(\"value\") === \"enable\";\r\n this.setCameraZoomEnabled(value);\r\n }\r\n });\r\n }\r\n executeSetMeshDesignMaterialActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._scene && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const expression = action.get(\"selector\");\r\n if (expression != undefined && expression != null) {\r\n const meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n const material = yield this.getDeepMaterialFromActionValueAsync(action);\r\n if (material) {\r\n for (let i = 0; i < meshes.length; i++) {\r\n const mesh = meshes[i];\r\n mesh.metadata = mesh.metadata || {};\r\n mesh.metadata.designMaterialID = material.id;\r\n }\r\n this.fireMeshDesignRefreshRequiredEvent(meshes, null);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n executeSetMeshDesignEffectActionAsync(attributeID, selectedValue, action) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this.isActionForDevice(action))\r\n return;\r\n if (this._zkScene && this._scene && this._elementSelector && action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n const expression = action.get(\"selector\");\r\n if (expression != undefined && expression != null) {\r\n let meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n let value = action.get(\"value\");\r\n let effect = null;\r\n if (value != undefined && value != null && this._zkModel) {\r\n for (let i = 0; i < this._zkModel.get(\"scenes\").length; i++) {\r\n const scene = this._zkModel.get(\"scenes\").at(i);\r\n if (scene.get(\"isDefault\")) {\r\n const effects = scene.get(\"meshDesignEffects\");\r\n if (effects) {\r\n for (let k = 0; k < effects.length; k++) {\r\n const eff = effects.at(k);\r\n if (eff.get(\"effectID\") === value || eff.get(\"name\") === value) {\r\n effect = eff;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (effect)\r\n break;\r\n }\r\n }\r\n let material = null;\r\n if (effect) {\r\n const materialID = effect.get(\"materialID\");\r\n if (materialID) {\r\n material = yield this.checkOffloadedMaterialAsync(materialID);\r\n if (!material)\r\n material = yield this.checkDelayedMaterial(materialID);\r\n }\r\n }\r\n this.fireMeshDesignRefreshRequiredEvent(meshes, effect);\r\n }\r\n }\r\n });\r\n }\r\n prefetchMeshesForUnselectedOptionsAsync(actions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._scene && this._elementSelector && this._sceneHelper && this._prefetchMeshes) {\r\n for (let i = 0; i < actions.length; i++) {\r\n const action = actions[i];\r\n if (action && action instanceof MPlaza.AttributeSceneAction) {\r\n // Mesh\r\n if (action.get(\"actionTypeID\") === MPlaza.SceneActionType.ShowHideMesh && action.get(\"value\") == \"show\") {\r\n const expression = action.get(\"selector\");\r\n if (expression != undefined && expression != null) {\r\n const meshes = this._elementSelector.getElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n for (let k = 0; k < meshes.length; k++) {\r\n const mesh = meshes[k];\r\n if (mesh instanceof BABYLON.AbstractMesh && !mesh.isVisible) {\r\n //Logger.info(\"prefetch\", mesh);\r\n this._sceneHelper.checkDelayState(mesh);\r\n const material = mesh.material;\r\n if (material)\r\n yield this._sceneHelper.prefetchTexturesForMaterialAsync(material);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n checkActionsAssetsAreReadyAsync(actions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._scene && this._elementSelector && this._sceneHelper) {\r\n // Meshes\r\n for (let i = 0; i < actions.length; i++) {\r\n const action = actions[i];\r\n const meshes = [];\r\n if (action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n // Mesh\r\n if (action.get(\"actionTypeID\") === MPlaza.SceneActionType.ShowHideMesh && action.get(\"value\") === \"show\") {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const expressionMeshes = this._elementSelector.getElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n for (let k = 0; k < expressionMeshes.length; k++) {\r\n const mesh = expressionMeshes[k];\r\n if (mesh instanceof BABYLON.AbstractMesh && !mesh.isVisible) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl) {\r\n const meshDelayedMaterialIDs = this._sceneHelper.getMeshDelayedMaterialIDs(mesh);\r\n const meshOffloadedMaterialIDs = this._sceneHelper.getMeshOffloadedMaterialIDs(mesh);\r\n if (meshDelayedMaterialIDs.length > 0)\r\n yield this._sceneHelper.loadDelayedMaterialsAsync(rootUrl, meshDelayedMaterialIDs);\r\n if (meshOffloadedMaterialIDs.length > 0)\r\n yield this._sceneHelper.loadOffloadedMaterialsByIDsAsync(rootUrl, meshOffloadedMaterialIDs);\r\n }\r\n meshes.push(mesh);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper.whenAllMeshesAreReadyAsync(meshes);\r\n }\r\n // Materials\r\n for (let i = 0; i < actions.length; i++) {\r\n const action = actions[i];\r\n if (action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n if (action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetMeshMaterial ||\r\n action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetSubMeshMaterial) {\r\n let material = this.getMaterialFromActionValue(action);\r\n if (!material) {\r\n material = yield this.getDeepMaterialFromActionValueAsync(action);\r\n }\r\n }\r\n if (action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetMaterialColor) {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const materials = yield this.getAllMaterialElementsAsync(expression);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n prefetchDataForUnselectedOptionsAsync(actions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return;\r\n /*\r\n if (this._zkScene && this._scene && this._elementSelector && this._sceneHelper) {\r\n for (let i = 0; i < actions.length; i++) {\r\n const action = actions[i];\r\n \r\n if (action && (action instanceof MPlaza.AttributeSceneAction)) {\r\n \r\n // Mesh\r\n if (this._prefetchMeshes && action.get(\"actionTypeID\") === MPlaza.SceneActionType.ShowHideMesh && action.get(\"value\") == \"show\") {\r\n const expression = action.get(\"selector\");\r\n if (expression !== undefined && expression !== null) {\r\n const meshes = this._elementSelector.getElements(this._zkScene, this._scene, null, expression, MPlaza.SceneElementType.Mesh);\r\n for (let k = 0; k < meshes.length; k++) {\r\n const mesh = meshes[k];\r\n if (mesh instanceof BABYLON.AbstractMesh && !mesh.isVisible) {\r\n //Logger.info(\"prefetch\", mesh);\r\n this._sceneHelper.checkDelayState(mesh);\r\n await this._sceneHelper.prefetchTexturesFormMeshAsync(mesh);\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Materiali\r\n if (this._prefetchMaterials &&\r\n (action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetMeshMaterial ||\r\n action.get(\"actionTypeID\") === MPlaza.SceneActionType.SetSubMeshMaterial)) {\r\n const material = this.getMaterialFromActionValue(action);\r\n if (material) {\r\n await this._sceneHelper.prefetchTexturesForMaterialAsync(material);\r\n } else if (!this.useMaterialOffloading) {\r\n // Precarico il materiale\r\n const material = await this.getDeepMaterialFromActionValueAsync(action);\r\n } else {\r\n // Precarico le immagini associate al materiale\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n const materialID = this.getOffloadedMaterialIDFromAction(action);\r\n if (rootUrl !== undefined && rootUrl !== null && materialID) {\r\n \r\n const textureUrls = this._zkScene.get(\"textures\")\r\n .filter(texture => texture.get(\"materialID\") === materialID &&\r\n (texture.get(\"usage\") === Zakeke.TextureUsage.Any ||\r\n (texture.get(\"usage\") === Zakeke.TextureUsage.Desktop && !BABYLON.Constants.IS_MOBILE) ||\r\n (texture.get(\"usage\") === Zakeke.TextureUsage.Mobile && BABYLON.Constants.IS_MOBILE)) )\r\n .map(t => t.get(\"url\") as string);\r\n \r\n this._sceneHelper.loadTextureFiles(rootUrl, textureUrls);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }*/\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/CollapseExplode/MeshLocationsManager.ts\":\n/*!***********************************************************************!*\\\n !*** ../../3D/src/Components/CollapseExplode/MeshLocationsManager.ts ***!\n \\***********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MeshLocationsManager\": () => (/* binding */ MeshLocationsManager)\n/* harmony export */ });\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\nclass MeshLocationsManager {\r\n constructor() {\r\n this._zkScene = null;\r\n this._scene = null;\r\n this._sceneHelper = null;\r\n this._meshLocationCache = {};\r\n this._cameraAnimationCompletedListeners = [];\r\n this._meshAnimationCompletedListeners = [];\r\n this._beforeSaveMeshLocationListeners = [];\r\n this._afterSaveMeshLocationListeners = [];\r\n }\r\n dispose() {\r\n while (this._cameraAnimationCompletedListeners.length > 0) {\r\n this._cameraAnimationCompletedListeners.pop();\r\n }\r\n while (this._meshAnimationCompletedListeners.length > 0) {\r\n this._meshAnimationCompletedListeners.pop();\r\n }\r\n while (this._beforeSaveMeshLocationListeners.length > 0) {\r\n this._beforeSaveMeshLocationListeners.pop();\r\n }\r\n while (this._afterSaveMeshLocationListeners.length > 0) {\r\n this._afterSaveMeshLocationListeners.pop();\r\n }\r\n this.disposeSceneHelper();\r\n }\r\n setScene(scene) {\r\n this._scene = scene;\r\n this.resetSceneHelper();\r\n this.resetCache();\r\n }\r\n setModel(zkScene) {\r\n this._zkScene = zkScene;\r\n this.resetCache();\r\n }\r\n setModelAndScene(zkScene, scene) {\r\n this._zkScene = zkScene;\r\n this._scene = scene;\r\n this.resetSceneHelper();\r\n this.resetCache();\r\n }\r\n resetCache() {\r\n this._meshLocationCache = {};\r\n }\r\n invalidateCache(locationID) {\r\n if (this._meshLocationCache)\r\n delete this._meshLocationCache[locationID];\r\n }\r\n disposeSceneHelper() {\r\n if (this._sceneHelper) {\r\n this._sceneHelper.dispose();\r\n this._sceneHelper = null;\r\n }\r\n }\r\n resetSceneHelper() {\r\n this.disposeSceneHelper();\r\n if (this._scene)\r\n this._sceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper(this._scene);\r\n }\r\n clearMeshLocations() {\r\n if (this._zkScene) {\r\n const items = this._zkScene.get(\"meshLocations\");\r\n while (items.length > 0)\r\n items.remove(items.at(0));\r\n }\r\n }\r\n setMeshLocationByID(locationID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._scene) {\r\n const zkMeshLocation = this._zkScene.getMeshLocation(locationID);\r\n if (zkMeshLocation)\r\n yield this.setMeshLocation(zkMeshLocation);\r\n }\r\n });\r\n }\r\n setMeshLocation(zkMeshLocation) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._scene && this._sceneHelper) {\r\n let data;\r\n let adjustCamera = true;\r\n if (zkMeshLocation) {\r\n let locationID = zkMeshLocation.get(\"locationID\");\r\n adjustCamera = zkMeshLocation.get(\"adjustCamera\");\r\n if (this._meshLocationCache.hasOwnProperty(locationID)) {\r\n data = this._meshLocationCache[locationID];\r\n }\r\n else {\r\n let compressedData = zkMeshLocation.get(\"data\");\r\n let uint8Array = null;\r\n // Verifico se ho ottenuto una string (base64) o direttamente l'array\r\n if (typeof compressedData === \"string\") {\r\n let binary_string = window.atob(compressedData);\r\n let len = binary_string.length;\r\n let bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n let arrayBuffer = bytes.buffer;\r\n uint8Array = new Uint8Array(arrayBuffer);\r\n }\r\n else if (Object.prototype.toString.call(compressedData) === '[object Array]') {\r\n uint8Array = Uint8Array.from(compressedData);\r\n }\r\n if (uint8Array != null) {\r\n let json = LZString.decompressFromUint8Array(uint8Array);\r\n data = JSON.parse(json);\r\n if (data) {\r\n for (var id in data) {\r\n var info = data[id];\r\n if (info.p)\r\n info.p = new BABYLON.Vector3(info.p.x, info.p.y, info.p.z);\r\n if (info.rE)\r\n info.rE = new BABYLON.Vector3(info.rE.x, info.rE.y, info.rE.z);\r\n if (info.rQ)\r\n info.rQ = new BABYLON.Quaternion(info.rQ.x, info.rQ.y, info.rQ.z, info.rQ.w);\r\n if (info.s)\r\n info.s = new BABYLON.Vector3(info.s.x, info.s.y, info.s.z);\r\n }\r\n this._meshLocationCache[locationID] = data;\r\n }\r\n }\r\n }\r\n }\r\n if (data) {\r\n const tasks = [];\r\n // Animazione della camera\r\n if (adjustCamera && data.hasOwnProperty(\"wemin\") && data.hasOwnProperty(\"wemax\")) {\r\n var worldExtends = {\r\n min: new BABYLON.Vector3(data.wemin.x, data.wemin.y, data.wemin.z),\r\n max: new BABYLON.Vector3(data.wemax.x, data.wemax.y, data.wemax.z)\r\n };\r\n let camera = this._sceneHelper.camera;\r\n if (camera && camera instanceof BABYLON.ArcRotateCamera) {\r\n camera.upperRadiusLimit = null;\r\n var radius = this._sceneHelper.calculateCameraRadius(worldExtends);\r\n var target = this._sceneHelper.getWorldCenter(worldExtends);\r\n if (target) {\r\n this._sceneHelper.setCameraRadiusParameters(radius);\r\n tasks.push(new Promise(resolve => {\r\n if (camera && camera instanceof BABYLON.ArcRotateCamera) {\r\n this._sceneHelper.animateCameraToFinalParamters(camera.alpha, camera.beta, radius, target, 1, () => {\r\n if (this._sceneHelper) {\r\n this._sceneHelper.setupCameraLimits(worldExtends);\r\n this.fireCameraAnimationCompletedEvent();\r\n resolve();\r\n }\r\n });\r\n }\r\n }));\r\n }\r\n }\r\n }\r\n // Animazione delle mesh\r\n for (var i = 0; i < this._scene.meshes.length; i++) {\r\n var mesh = this._scene.meshes[i];\r\n var id = mesh.id;\r\n if (data.hasOwnProperty(id)) {\r\n var info = data[id];\r\n // Test animazione\r\n tasks.push(new Promise(resolve => {\r\n this._sceneHelper.animateMeshToFinalParameters(mesh, info.p, info.rE, info.rQ, info.s, 1, () => {\r\n this.fireMeshAnimationCompletedEvent();\r\n resolve();\r\n });\r\n }));\r\n }\r\n }\r\n yield Promise.all(tasks);\r\n }\r\n }\r\n });\r\n }\r\n saveMeshLocation(name) {\r\n if (this._zkScene && this._scene) {\r\n var zkMeshLocation = new Zakeke.SceneMeshLocation();\r\n zkMeshLocation.set(\"name\", name);\r\n this.updateMeshLocation(zkMeshLocation);\r\n this._zkScene.get(\"meshLocations\").push(zkMeshLocation);\r\n }\r\n }\r\n saveExplodedMeshLocation() {\r\n if (this._zkScene && this._scene) {\r\n var zkMeshLocation = this._zkScene.getOrCreateExplodedMeshLocation();\r\n this.updateMeshLocation(zkMeshLocation);\r\n }\r\n }\r\n saveCollapsedMeshLocation() {\r\n if (this._zkScene && this._scene) {\r\n var zkMeshLocation = this._zkScene.getOrCreateCollapsedMeshLocation();\r\n this.updateMeshLocation(zkMeshLocation);\r\n }\r\n }\r\n updateMeshLocation(zkMeshLocation) {\r\n this.fireBeforeSaveMeshLocationEvent();\r\n if (this._scene && this._sceneHelper) {\r\n var data = this.getMeshPRSs();\r\n // Salvo il world extends perché servirà nell'animazione della camera\r\n var worldExtends = this._sceneHelper.getWorldExtends();\r\n if (worldExtends) {\r\n data.wemin = worldExtends.min;\r\n data.wemax = worldExtends.max;\r\n }\r\n var json = JSON.stringify(data);\r\n let uint8Array = LZString.compressToUint8Array(json);\r\n let compressed = [].slice.call(uint8Array);\r\n //let compressed = Array.from(uint8Array);\r\n zkMeshLocation.set(\"data\", compressed);\r\n this.invalidateCache(zkMeshLocation.get(\"locationID\"));\r\n }\r\n this.fireAfterSaveMeshLocationEvent();\r\n }\r\n getMeshPRSs() {\r\n let data = {\r\n wemin: undefined,\r\n wemax: undefined\r\n };\r\n if (this._scene && this._sceneHelper) {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (this._sceneHelper.isRealMesh(mesh)) {\r\n let id = mesh.id;\r\n let info = {\r\n p: undefined,\r\n rQ: undefined,\r\n rE: undefined,\r\n s: undefined\r\n };\r\n info.p = mesh.position.clone();\r\n if (mesh.rotationQuaternion == null) {\r\n info.rQ = null;\r\n info.rE = mesh.rotation.clone();\r\n }\r\n else {\r\n info.rQ = mesh.rotationQuaternion.clone();\r\n info.rE = null;\r\n }\r\n info.s = mesh.scaling.clone();\r\n data[id] = info;\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n explodeMeshes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene) {\r\n let zkMeshLocation = this._zkScene.getFirstExplodedMeshLocation();\r\n if (zkMeshLocation)\r\n yield this.setMeshLocation(zkMeshLocation);\r\n }\r\n });\r\n }\r\n collapseMeshes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene) {\r\n let zkMeshLocation = this._zkScene.getFirstCollapsedMeshLocation();\r\n if (zkMeshLocation)\r\n yield this.setMeshLocation(zkMeshLocation);\r\n }\r\n });\r\n }\r\n // Events\r\n fireCameraAnimationCompletedEvent() {\r\n for (let i = 0; i < this._cameraAnimationCompletedListeners.length; ++i) {\r\n this._cameraAnimationCompletedListeners[i]();\r\n }\r\n }\r\n addCameraAnimationCompletedListener(listenerFunction) {\r\n this._cameraAnimationCompletedListeners.push(listenerFunction);\r\n }\r\n fireMeshAnimationCompletedEvent() {\r\n for (let i = 0; i < this._meshAnimationCompletedListeners.length; ++i) {\r\n this._meshAnimationCompletedListeners[i]();\r\n }\r\n }\r\n addMeshAnimationCompletedListener(listenerFunction) {\r\n this._meshAnimationCompletedListeners.push(listenerFunction);\r\n }\r\n fireBeforeSaveMeshLocationEvent() {\r\n for (let i = 0; i < this._beforeSaveMeshLocationListeners.length; ++i) {\r\n this._beforeSaveMeshLocationListeners[i]();\r\n }\r\n }\r\n addBeforeSaveMeshLocationListener(listenerFunction) {\r\n this._beforeSaveMeshLocationListeners.push(listenerFunction);\r\n }\r\n fireAfterSaveMeshLocationEvent() {\r\n for (let i = 0; i < this._afterSaveMeshLocationListeners.length; ++i) {\r\n this._afterSaveMeshLocationListeners[i]();\r\n }\r\n }\r\n addAfterSaveMeshLocationListener(listenerFunction) {\r\n this._afterSaveMeshLocationListeners.push(listenerFunction);\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/DesignManagers/MeshDesignManager.ts\":\n/*!*******************************************************************!*\\\n !*** ../../3D/src/Components/DesignManagers/MeshDesignManager.ts ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MeshDesignManager\": () => (/* binding */ MeshDesignManager)\n/* harmony export */ });\n/* harmony import */ var _Helpers_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Helpers/debounce */ \"../../3D/src/Helpers/debounce.ts\");\n/* harmony import */ var _NormalMap_ProceduralNormalMap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../NormalMap/ProceduralNormalMap */ \"../../3D/src/Components/NormalMap/ProceduralNormalMap.ts\");\n/* harmony import */ var _ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ProceduralTextures/ForegroundBackgroundProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/ForegroundBackgroundProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ProceduralTextures/MultiplyProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/MultiplyProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_OverlayProceduralTexture__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ProceduralTextures/OverlayProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/OverlayProceduralTexture.ts\");\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n/* harmony import */ var _Shadows_InnerShadow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Shadows/InnerShadow */ \"../../3D/src/Components/Shadows/InnerShadow.ts\");\n/* harmony import */ var _Shadows_OuterShadow__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Shadows/OuterShadow */ \"../../3D/src/Components/Shadows/OuterShadow.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass MeshDesignManager {\r\n constructor(scene, zkScene, mesh, subMesh, zkModel, zkDesign, showDesign = true, effect) {\r\n this._subMesh = null;\r\n this._showDesign = true;\r\n // effect.get(\"materialID\") indica il material da utilizzare per il design\r\n // effect.get(\"config\") indica la configurazione da applicare\r\n this._effect = null;\r\n this._meshSide = null; // mesh - model side connection\r\n this._side = null; // Lato del modello (relativo ad un determinato colore) collegato alla mesh\r\n // Il lato esatto viene individuato in base agli item inseriti nel design (se ci sono)\r\n // Se il design non prevede item per il lato per nessun colore, il lato sarà null e sulla mesh non verrà\r\n // disegnato nulla\r\n this._defaultSize = 1024;\r\n //private readonly _size = Utils.isIPhoneX() ? 512 : 1024;\r\n this._size = 1024;\r\n this._baseWidth = this._size;\r\n this._baseHeight = this._size;\r\n this._textureWidth = this._size;\r\n this._textureHeight = this._size;\r\n this._coordinatesIndex = 0; // canale UV per le texture\r\n this._canvasMesh = null; // mesh clone per l'applicazione della texture dinamica (generata in base al design rappresentato sul canvas)\r\n this._originalCanvasMeshPosition = null; // Posizione originale della mesh clonata\r\n this._originalCanvasMeshScaling = null; // Scaling originale della mesh clonata\r\n this._normalmapMaterial = null; // materiale clonato per l'applicazione della normal map dinamica sulla mesh originale\r\n this._originalMaterial = null; // materiale originale della mesh\r\n this._blankDataUrl = null; // utile per verificare quando il canvas contiene un'immagine completamente vuota\r\n // L'esportazione per AR non supporta zOffset per i materiali. Una soluzione è quella di creare un clone\r\n // per la parte interna e uno per la parte esterna dell'oggetto, rispettivamente rimpicciolito e ingrandito di pochissimo\r\n // in modo da sovrapporsi all'oggetto originale. Resterebbe in questo modo scoperto solo la parte laterale dell'oggetto,\r\n // ma dovrebbe mitigare le problematiche. Un'alternativa sarebbe quella di usare MeshExpander per espandere l'oggetto in modo da\r\n // racchiuderlo, ma questo creerebbe un duplicato della gemoetria e non risolverebbe comunque il caso di oggetto piatto (senza spessore).\r\n this._innerCanvasMesh = null;\r\n this._outerCanvasMesh = null;\r\n this._ownDynamicMaterial = false;\r\n this._dynamicMaterial = null; // Materiale applicato alla mesh clonata per rappresentare il contenuto del canvas \r\n this._dynamicTexture = null; // Texture che contiene il contenuto del canvas\r\n this._normalmapTexture = null; // Texture che contiene la normal map relativa al contenuto del canvas\r\n // La normal map può essere applicata sia al materiale della mesh (per effetto rilievo/incassato)\r\n // che alla mesh clonata per evidenziare il design\r\n this._dynamicOpacityTexture = null; // Procedurale creata nel caso in cui il design debba essere utilizzato\r\n // come mappa di opacità\r\n this._ownOldDynamicMaterial = false;\r\n this._oldDynamicMaterial = null;\r\n this._originalDiffuseTexture = null;\r\n this._combinedDiffuseTexture = null;\r\n // Le due normal map texture seguenti verranno eventualmente combinate (blend overlay) con\r\n // la normalmap generata dinamicamente dal contenuto del canvas\r\n this._originalMeshNormalmapTexture = null; // normalmap texture presente inizialmente sul materiale della mesh originale\r\n this._originalDesignNormalmapTexture = null; // Normal map orignale del materiale da utilizzare per la mesh clonata (che ricerverà il contenuto del canvas)\r\n // Texture procedurali date dalla combinazione della texture dinamica dal canvas\r\n // con le texture presenti sui materiali originali\r\n this._meshCombinedNormalmapTexture = null;\r\n this._designCombinedNormalmapTexture = null;\r\n // Lightmaps utili per outer e inner shadow\r\n this._originalMeshLightmapTexture = null; // da combinare con outer shadow\r\n this._originalDesignLightmapTexture = null; // da combinare con inner shadow\r\n this._meshCombinedLightmapTexture = null; // outer shadow finale\r\n this._designCombinedLightmapTexture = null; // inner shadow finale\r\n this._innerShadowTexture = null;\r\n this._outerShadowTexture = null;\r\n this._context = null;\r\n this._canvas = null;\r\n this._canvasID = Zakeke.generateUUID();\r\n this._customizer = null;\r\n this._renderingNeededListeners = [];\r\n // Generatore di texture procedurali per la normal map\r\n this._proceduralNormalMap = null;\r\n // Generatore di texture procedurali per inner/outer shadow\r\n this._innerShadowGenerator = null;\r\n this._outerShadowGenerator = null;\r\n this._debouncedUpdateDynamicTexture = null;\r\n this._originalViewMatrixValues = null;\r\n this._grids = [];\r\n // First render is not debounced, usefull for screenshots that must wait the\r\n // render to finish\r\n this.isFirstRender = true;\r\n this._scene = scene;\r\n this._sceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper(scene);\r\n this._zkScene = zkScene;\r\n this._mesh = mesh;\r\n this._subMesh = subMesh;\r\n this._zkModel = zkModel;\r\n this._zkDesign = zkDesign;\r\n this._showDesign = showDesign;\r\n if (effect)\r\n this._effect = effect;\r\n //this.initAsync();\r\n }\r\n get showDesign() {\r\n return this._showDesign;\r\n }\r\n set showDesign(value) {\r\n if (this._showDesign != value) {\r\n this._showDesign = value;\r\n }\r\n }\r\n get side() {\r\n return this._side;\r\n }\r\n // Temporary until we can access internal matrix (speak with Matteo)\r\n getInternalCustomizer() {\r\n return this._customizer;\r\n }\r\n // Factory method for async object creation and initialization\r\n static createMeshDesignManagerAsync(scene, zkScene, mesh, subMesh, zkModel, zkDesign, showDesign = true, effect) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshDesignManager = new MeshDesignManager(scene, zkScene, mesh, subMesh, zkModel, zkDesign, showDesign, effect);\r\n yield meshDesignManager.initAsync();\r\n return meshDesignManager;\r\n });\r\n }\r\n initAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Just to be sure the mesh has the right material and not the dummy one\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl)\r\n yield this._sceneHelper.unsetMeshDummyMaterialAsync(this._mesh, rootUrl, true);\r\n this.setupMeshSide();\r\n this.checkDefaultEffect();\r\n this.refreshModelSide();\r\n yield this.setupClonedObjectsAsync();\r\n yield this.setupCanvasAsync();\r\n yield this.setupDynamicMaterialAsync();\r\n yield this.refreshAsync();\r\n });\r\n }\r\n isForMesh(mesh, subMesh) {\r\n if (!mesh || !this._mesh)\r\n return false;\r\n if (mesh.id !== this._mesh.id)\r\n return false;\r\n if (!this._subMesh && !subMesh)\r\n return true;\r\n if (!this._subMesh || !subMesh)\r\n return false;\r\n if (subMesh.materialIndex === this._subMesh.materialIndex)\r\n return true;\r\n return false;\r\n /*\r\n if (mesh && subMesh && this._mesh && this._subMesh &&\r\n mesh.id === this._mesh.id &&\r\n subMesh.materialIndex === this._subMesh.materialIndex) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n */\r\n }\r\n getMeshID() {\r\n return this._mesh ? this._mesh.id : null;\r\n }\r\n getSubMeshIdx() {\r\n return this._subMesh ? this._subMesh.materialIndex : 0;\r\n }\r\n getMaterialIDForDesign() {\r\n let materialID;\r\n if (this._effect && this._effect.get(\"materialID\")) {\r\n materialID = this._effect.get(\"materialID\");\r\n }\r\n else if (this._mesh && this._mesh.metadata && this._mesh.metadata.designMaterialID) {\r\n materialID = this._mesh.metadata.designMaterialID;\r\n }\r\n else if (this._meshSide && this._meshSide.get(\"materialID\")) {\r\n materialID = this._meshSide.get(\"materialID\");\r\n }\r\n return materialID;\r\n }\r\n getDesignConfig() {\r\n let config;\r\n if (this._effect && this._effect.get(\"config\")) {\r\n config = this._effect.get(\"config\");\r\n }\r\n else if (this._meshSide && this._meshSide.get(\"config\")) {\r\n config = this._meshSide.get(\"config\");\r\n }\r\n if (!config) {\r\n config = new MPlaza.MeshDesignConfig();\r\n }\r\n return config;\r\n }\r\n dispose() {\r\n console.log('dispose');\r\n if (this._customizer) {\r\n this._customizer.clearMemoryForIOS();\r\n this._customizer = null;\r\n }\r\n this.disposeOuterInnerCanvasMeshes();\r\n if (this._canvasMesh) {\r\n this._canvasMesh.dispose();\r\n this._canvasMesh = null;\r\n this._originalCanvasMeshPosition = null;\r\n this._originalCanvasMeshScaling = null;\r\n }\r\n this.disposeDynamicMaterial();\r\n if (this._dynamicOpacityTexture) {\r\n this._dynamicOpacityTexture.dispose();\r\n this._dynamicOpacityTexture = null;\r\n }\r\n if (this._dynamicTexture) {\r\n this._dynamicTexture.dispose();\r\n this._dynamicTexture = null;\r\n }\r\n this._renderingNeededListeners = [];\r\n $(\"#\" + this._canvasID).remove();\r\n this.restoreOrignalMaterial();\r\n this.disposeNormalmapMaterial();\r\n if (this._proceduralNormalMap) {\r\n this._proceduralNormalMap.dispose();\r\n this._proceduralNormalMap = null;\r\n }\r\n if (this._innerShadowGenerator) {\r\n this._innerShadowGenerator.dispose();\r\n this._innerShadowGenerator = null;\r\n }\r\n if (this._combinedDiffuseTexture) {\r\n this._combinedDiffuseTexture.dispose();\r\n this._combinedDiffuseTexture = null;\r\n }\r\n if (this._meshCombinedNormalmapTexture) {\r\n this._meshCombinedNormalmapTexture.dispose();\r\n this._meshCombinedNormalmapTexture = null;\r\n }\r\n if (this._designCombinedNormalmapTexture) {\r\n this._designCombinedNormalmapTexture.dispose();\r\n this._designCombinedNormalmapTexture = null;\r\n }\r\n if (this._meshCombinedLightmapTexture) {\r\n this._meshCombinedLightmapTexture.dispose();\r\n this._meshCombinedLightmapTexture = null;\r\n }\r\n if (this._designCombinedLightmapTexture) {\r\n this._designCombinedLightmapTexture.dispose();\r\n this._designCombinedLightmapTexture = null;\r\n }\r\n }\r\n disposeOuterInnerCanvasMeshes() {\r\n if (this._innerCanvasMesh) {\r\n this._innerCanvasMesh.dispose();\r\n this._innerCanvasMesh = null;\r\n }\r\n if (this._outerCanvasMesh) {\r\n this._outerCanvasMesh.dispose();\r\n this._outerCanvasMesh = null;\r\n }\r\n }\r\n disposeNormalmapMaterial() {\r\n if (this._normalmapMaterial &&\r\n this._originalMaterial &&\r\n this._normalmapMaterial.id !== this._originalMaterial.id &&\r\n this._sceneHelper.getMeshesUsingMaterial(this._normalmapMaterial.id).length == 0) {\r\n this._normalmapMaterial.dispose();\r\n this._normalmapMaterial = null;\r\n }\r\n this._originalMeshNormalmapTexture = null;\r\n this._originalMeshLightmapTexture = null;\r\n }\r\n disposeDynamicMaterial() {\r\n if (this._ownDynamicMaterial && this._dynamicMaterial) {\r\n this._dynamicMaterial.dispose();\r\n }\r\n this._dynamicMaterial = null;\r\n this._originalDesignNormalmapTexture = null;\r\n this._originalDesignLightmapTexture = null;\r\n }\r\n disposeOldDynamicMaterial() {\r\n if (this._ownOldDynamicMaterial && this._oldDynamicMaterial &&\r\n this._dynamicMaterial && this._oldDynamicMaterial != this._dynamicMaterial) {\r\n this._oldDynamicMaterial.dispose();\r\n }\r\n this._oldDynamicMaterial = null;\r\n }\r\n createCanvasMeshClone(name) {\r\n if (this._canvasMesh) {\r\n const clone = this._canvasMesh.clone(name, null);\r\n if (clone) {\r\n clone.id = Zakeke.generateUUID();\r\n if (this._canvasMesh.metadata && this._canvasMesh.metadata.AR !== undefined && this._canvasMesh.metadata.AR !== null) {\r\n if (!clone.metadata)\r\n clone.metadata = {};\r\n clone.metadata.AR = this._canvasMesh.metadata.AR;\r\n }\r\n return clone;\r\n }\r\n }\r\n return null;\r\n }\r\n expandCanvasMesh() {\r\n if (!this._mesh || !this._canvasMesh)\r\n return;\r\n this.disposeOuterInnerCanvasMeshes();\r\n const scaling = this._mesh.scaling;\r\n const delta = 0.01;\r\n const scaleUp = 1.0 + delta;\r\n const scaleDown = 1.0 - delta;\r\n const meshSize = this.getMeshHierarchySize(this._mesh);\r\n const canvasMeshSize = this.getMeshHierarchySize(this._canvasMesh);\r\n // La mesh originale e il clone devono avere le stesse dimensioni iniziali\r\n if (!meshSize.equals(canvasMeshSize))\r\n return;\r\n const meshCenter = this.getMeshHierarchyCenter(this._mesh);\r\n this._outerCanvasMesh = this.createCanvasMeshClone(this._mesh.name + \" outer clone\");\r\n //this._innerCanvasMesh = this.createCanvasMeshClone(this._mesh.name + \" inner clone\");\r\n this._canvasMesh.isVisible = false;\r\n if (this._outerCanvasMesh) {\r\n const epsilon = 0.1;\r\n const isPlane = Math.abs(meshSize.x) <= epsilon || Math.abs(meshSize.y) <= epsilon || Math.abs(meshSize.z) <= epsilon;\r\n if (!isPlane) {\r\n // Scale up outer mesh\r\n const scalingOuter = scaling.multiplyByFloats(scaleUp, scaleUp, scaleUp);\r\n this._outerCanvasMesh.scaling = scalingOuter;\r\n const outerCenter = this.getMeshHierarchyCenter(this._outerCanvasMesh);\r\n let deltaVect = meshCenter.subtract(outerCenter);\r\n if (!deltaVect.equals(BABYLON.Vector3.Zero())) {\r\n this._outerCanvasMesh.position.addInPlace(deltaVect);\r\n }\r\n // Scale down inner mesh\r\n //const scalingInner = scaling.multiplyByFloats(scaleDown, scaleDown, scaleDown);\r\n //this._innerCanvasMesh.scaling = scalingInner;\r\n //const innerCenter = this.getMeshHierarchyCenter(this._innerCanvasMesh);\r\n //deltaVect = meshCenter.subtract(innerCenter);\r\n //if (!deltaVect.equals(BABYLON.Vector3.Zero())) {\r\n // this._innerCanvasMesh.position.addInPlace(deltaVect);\r\n //}\r\n }\r\n else {\r\n // se è un piano sposto la mesh leggermente nella direzione della normale\r\n const normals = this._mesh.getVerticesData(BABYLON.VertexBuffer.NormalKind);\r\n const normal = BABYLON.Vector3.FromArray(normals, 0).normalize();\r\n this._outerCanvasMesh.position = this._outerCanvasMesh.position.add(normal.scale(delta));\r\n //this._innerCanvasMesh.position = this._innerCanvasMesh.position.add(normal.scale(-delta));\r\n }\r\n }\r\n }\r\n // Nel caso in cui la mesh non sia un piano, espande la mesh clone in modo che \r\n // racchiuda quella originale e che eviti il problema z- fighting. \r\n // Nel caso in cui si tratti di un piano (o di un disco o equivalenti), la mesh clone verrà solo\r\n // spostata leggermente nella direzione della normale al piano\r\n // Tale possibilità verrà sfruttata soprattutto in fase di esportazione in altro formato che non preveda\r\n // proprietà simili al zOffset di Babylon JS\r\n expandCanvasMesh_old() {\r\n if (!this._mesh || !this._canvasMesh)\r\n return;\r\n const delta = 0.01;\r\n const scale = 1.0 + delta;\r\n const meshSize = this.getMeshHierarchySize(this._mesh);\r\n const canvasMeshSize = this.getMeshHierarchySize(this._canvasMesh);\r\n // La mesh originale e il clone devono avere le stesse dimensioni iniziali\r\n if (!meshSize.equals(canvasMeshSize))\r\n return;\r\n const epsilon = 0.1;\r\n const isPlane = Math.abs(meshSize.x) <= epsilon || Math.abs(meshSize.y) <= epsilon || Math.abs(meshSize.z) <= epsilon;\r\n if (!isPlane) {\r\n let scaling = this._canvasMesh.scaling;\r\n scaling = scaling.multiplyByFloats(scale, scale, scale);\r\n this._canvasMesh.scaling = scaling;\r\n // Nel caso in cui il pivot non sia al centro della mesh\r\n // lo scaling del clone lo avrà anche spostato\r\n let meshCenter = this.getMeshHierarchyCenter(this._mesh);\r\n let canvasMeshCenter = this.getMeshHierarchyCenter(this._canvasMesh);\r\n const deltaVect = meshCenter.subtract(canvasMeshCenter);\r\n if (!deltaVect.equals(BABYLON.Vector3.Zero())) {\r\n this._canvasMesh.position.addInPlace(deltaVect);\r\n }\r\n }\r\n else {\r\n // se è un piano sposto la mesh leggermente nella direzione della normale\r\n let normals = this._mesh.getVerticesData(BABYLON.VertexBuffer.NormalKind);\r\n let normal = BABYLON.Vector3.FromArray(normals, 0).normalize();\r\n this._canvasMesh.position = this._canvasMesh.position.add(normal.scale(delta));\r\n }\r\n }\r\n contractCanvasMesh() {\r\n if (this._canvasMesh)\r\n this._canvasMesh.isVisible = true;\r\n this.disposeOuterInnerCanvasMeshes();\r\n }\r\n // Riporta la mesh clone allo stato originale, continuando a sfruttare unicamente la proprietà\r\n // zOffset per superare il problema dello z-fighting\r\n contractCanvasMesh_old() {\r\n if (!this._mesh || !this._canvasMesh || !this._originalCanvasMeshScaling || !this._originalCanvasMeshPosition)\r\n return;\r\n this._canvasMesh.scaling = this._originalCanvasMeshScaling;\r\n this._canvasMesh.position = this._originalCanvasMeshPosition;\r\n // Verifico che il centro coincida\r\n const meshCenter = this.getMeshHierarchyCenter(this._mesh);\r\n const canvasMeshCenter = this.getMeshHierarchyCenter(this._canvasMesh);\r\n const deltaVect = meshCenter.subtract(canvasMeshCenter);\r\n if (!deltaVect.equals(BABYLON.Vector3.Zero())) {\r\n this._canvasMesh.position.addInPlace(deltaVect);\r\n }\r\n }\r\n setupMeshSide() {\r\n this._meshSide = null;\r\n this._coordinatesIndex = 0;\r\n if (this._zkModel && this._mesh && this._mesh.id) {\r\n for (let i = 0; i < this._zkModel.get(\"scenes\").length; i++) {\r\n var scene = this._zkModel.get(\"scenes\").at(i);\r\n if (scene.get(\"isDefault\")) {\r\n // Scena di default\r\n for (let j = 0; j < scene.get(\"meshSides\").length; j++) {\r\n var meshSide = scene.get(\"meshSides\").at(j);\r\n if (meshSide.get(\"meshID\") == this._mesh.id) {\r\n this._meshSide = meshSide;\r\n if (this._meshSide.get(\"uvChannel\") >= 0)\r\n this._coordinatesIndex = this._meshSide.get(\"uvChannel\");\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n checkDefaultEffect() {\r\n if (!this._effect && this._meshSide) {\r\n var modelScene = this._meshSide.getParentModel();\r\n if (modelScene && modelScene instanceof MPlaza.ModelScene) {\r\n let meshID = this.getMeshID();\r\n if (meshID) {\r\n let effect = modelScene.getDefaultDesignEffect(meshID, this.getSubMeshIdx());\r\n if (effect)\r\n this._effect = effect;\r\n }\r\n }\r\n }\r\n }\r\n getAllSides() {\r\n const sides = [];\r\n this._zkModel.get('colors').each(color => {\r\n color.get(\"sides\").each(side => {\r\n if (!sides.find(x => x.get(\"sideID\") == side.get(\"sideID\"))) {\r\n sides.push(side);\r\n }\r\n });\r\n });\r\n return sides;\r\n }\r\n // Recupera il lato del modello corrispondente alla mesh in input\r\n // Del lato abbiamo solo sideID, mentre per il modello i lati sono per colore. Recuperiamo il colorID\r\n // in base agli elementi del design, considerando buono il primo colore con elementi grafici\r\n refreshModelSide() {\r\n this._side = null;\r\n if (this._meshSide && this._zkDesign) {\r\n const sideID = this._meshSide.get(\"sideID\");\r\n const tempID = this._meshSide.tempID;\r\n let side = null;\r\n // Find the first side available so we can get all items on the side\r\n side = this.getAllSides().find(function (side) { return side.get(\"sideID\") == sideID; }) || null;\r\n if (side) {\r\n let designItem = null;\r\n for (const _designItem of this._zkDesign.get(\"designItems\").models) {\r\n designItem = _designItem;\r\n if (designItem.isOnSide(side)) {\r\n // Get the correct color from the design item\r\n const colorID = designItem && designItem.get(\"areas\").length > 0 ? designItem.get(\"areas\").at(0).get(\"colorID\") : null;\r\n // Find the correct side of the correct color\r\n if (colorID) {\r\n this._zkModel.get(\"colors\").each(function (color) {\r\n if (color.get(\"colorID\") == colorID)\r\n color.get(\"sides\").each(function (_side) {\r\n if (_side.tempID ? _side.tempID == tempID : _side.get(\"sideID\") == sideID) {\r\n side = _side;\r\n }\r\n });\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n this._side = side;\r\n }\r\n }\r\n }\r\n setupClonedObjectsAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._side)\r\n return;\r\n for (var i = 0; i < this._scene.meshes.length; i++) {\r\n let mesh = this._scene.meshes[i];\r\n if (mesh && mesh.metadata && mesh.metadata.originalMeshID && mesh.metadata.originalMeshID == this._mesh.id) {\r\n this._canvasMesh = mesh;\r\n this._normalmapMaterial = this._mesh.material;\r\n this._originalMeshNormalmapTexture = this.getMaterialNormalmap(this._normalmapMaterial);\r\n this._originalMeshLightmapTexture = this.getMaterialLightmap(this._normalmapMaterial);\r\n break;\r\n }\r\n }\r\n if (!this._canvasMesh) {\r\n let name = this._mesh.name + \" - clone\";\r\n this._canvasMesh = this._mesh.clone(name, null);\r\n if (this._canvasMesh) {\r\n this._canvasMesh.id = Zakeke.generateUUID();\r\n this._canvasMesh.doNotSerialize = true;\r\n this._canvasMesh.isPickable = false;\r\n this._canvasMesh.metadata = {};\r\n this._canvasMesh.metadata.originalMeshID = this._mesh.id;\r\n this._canvasMesh.metadata.isRealMesh = false;\r\n this._canvasMesh.metadata.iscanvasMesh = true;\r\n if (this._mesh.metadata && this._mesh.metadata.AR !== undefined && this._mesh.metadata.AR !== null)\r\n this._canvasMesh.metadata.AR = this._mesh.metadata.AR;\r\n }\r\n }\r\n if (this._canvasMesh) {\r\n this._originalCanvasMeshPosition = this._canvasMesh.position;\r\n this._originalCanvasMeshScaling = this._canvasMesh.scaling;\r\n }\r\n if (!this._normalmapMaterial) {\r\n yield this.setupNormalmapMaterialAsync();\r\n }\r\n });\r\n }\r\n // Prepara il materiale per la normalmap da applicare alla mesh originale\r\n // posizionata sotto quella su cui è apposto il design.\r\n // Tale materiale viene utilizzato anche per l'eventuale lightmap di dropshadow (outer shadow)\r\n // quindi il nome andrebbe cambiato\r\n setupNormalmapMaterialAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.disposeNormalmapMaterial();\r\n this._originalMaterial = this._mesh.material;\r\n let materialId = Zakeke.generateUUID();\r\n let materialName = \"normalmapMaterial - \" + materialId;\r\n if (this._originalMaterial) {\r\n materialName = this._originalMaterial.name + \" - clone\";\r\n this._normalmapMaterial = yield this.cloneMaterialAsync(this._originalMaterial, materialName);\r\n }\r\n else {\r\n this._normalmapMaterial = new BABYLON.StandardMaterial(materialName, this._scene);\r\n }\r\n if (this._normalmapMaterial) {\r\n this._normalmapMaterial.id = materialId;\r\n this._normalmapMaterial.doNotSerialize = true;\r\n this._normalmapMaterial.metadata = {};\r\n if (this._originalMaterial)\r\n this._normalmapMaterial.metadata.originalMaterialID = this._originalMaterial.id;\r\n else\r\n this._normalmapMaterial.metadata.originalMaterialID = null;\r\n this._normalmapMaterial.metadata.isRealMaterial = false;\r\n this._originalMeshNormalmapTexture = this.getMaterialNormalmap(this._normalmapMaterial);\r\n this._originalMeshLightmapTexture = this.getMaterialLightmap(this._normalmapMaterial);\r\n }\r\n });\r\n }\r\n getOriginalTexture() {\r\n if (this._originalMaterial) {\r\n var propertyName = this.getMaterialDiffuseTexturePropertyName(this._originalMaterial);\r\n if (!this._originalMaterial[propertyName])\r\n return null;\r\n return this._originalMaterial[propertyName];\r\n }\r\n return null;\r\n }\r\n getMaterialDiffuseTexturePropertyName(material) {\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n return \"diffuseTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n return \"baseTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n return \"diffuseTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n return \"albedoTexture\";\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n return \"albedoTexture\";\r\n }\r\n return \"diffuseTexture\";\r\n }\r\n getMaterialOpacityTexturePropertyName(material) {\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n return \"opacityTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n return null;\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n return null;\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n return \"opacityTexture\";\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n return \"opacityTexture\";\r\n }\r\n return \"opacityTexture\";\r\n }\r\n getMaterialNormalmapTexturePropertyName(material) {\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n return \"bumpTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n return \"normalTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n return \"normalTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n return \"bumpTexture\";\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n return \"bumpTexture\";\r\n }\r\n return \"bumpTexture\";\r\n }\r\n getMaterialLightmapTexturePropertyName(material) {\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n return \"ambientTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n return \"occlusionTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n return \"occlusionTexture\";\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n return \"ambientTexture\";\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n return \"aoTexture\";\r\n }\r\n return \"lightmapTexture\";\r\n }\r\n getMaterialDiffuse(material) {\r\n let propName = this.getMaterialDiffuseTexturePropertyName(material);\r\n return material[propName];\r\n }\r\n getMaterialNormalmap(material) {\r\n if (!material)\r\n return null;\r\n let propName = this.getMaterialNormalmapTexturePropertyName(material);\r\n return material[propName];\r\n }\r\n getMaterialLightmap(material) {\r\n if (!material)\r\n return null;\r\n let propName = this.getMaterialLightmapTexturePropertyName(material);\r\n return material[propName];\r\n }\r\n getMaterialOpacity(material) {\r\n if (!material)\r\n return null;\r\n let propName = this.getMaterialOpacityTexturePropertyName(material);\r\n if (propName)\r\n return material[propName];\r\n return null;\r\n }\r\n setMaterialLightmap(material, texture) {\r\n if (!material)\r\n return;\r\n var propName = this.getMaterialLightmapTexturePropertyName(material);\r\n material[propName] = texture;\r\n if (material instanceof Zakeke.PBRMaterial) {\r\n material.useAOTextureAsLightmap = true;\r\n }\r\n }\r\n setTextureWrapping(texture) {\r\n if (texture) {\r\n texture.wrapU = BABYLON.Texture.CLAMP_ADDRESSMODE;\r\n texture.wrapV = BABYLON.Texture.CLAMP_ADDRESSMODE;\r\n }\r\n }\r\n setupCanvasAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._side && this._canvasMesh && this._meshSide) {\r\n var width = this._baseWidth;\r\n if (this._meshSide.get(\"percWidth\") > 0)\r\n width *= this._meshSide.get(\"percWidth\");\r\n var height = this._baseHeight;\r\n if (this._meshSide.get(\"percHeight\") > 0)\r\n height *= this._meshSide.get(\"percHeight\");\r\n this._textureWidth = width;\r\n this._textureHeight = height;\r\n // creo un offset canvas su cui eseguire il disegno\r\n var $canvas = $(\"\", { id: this._canvasID }).attr({ width: width, height: height });\r\n this._canvas = $canvas[0];\r\n /* Debug canvas\r\n document.body.appendChild(this._canvas);\r\n this._canvas.style.background = 'red';\r\n this._canvas.style.position = 'fixed';\r\n this._canvas.style.left = '0';\r\n this._canvas.style.top = '0';\r\n this._canvas.style.width = '200px';\r\n this._canvas.style.height = '200px';\r\n this._canvas.style.zIndex = '10000';*/\r\n this._context = this._canvas.getContext(\"2d\");\r\n if (this._context) {\r\n this._context[\"imageSmoothingQuality\"] = \"high\";\r\n this._context.imageSmoothingEnabled = true;\r\n this._customizer = new MPlaza.Customizer(true, false, this._canvas, true);\r\n this._blankDataUrl = this._canvas.toDataURL();\r\n this._customizer.showSideImage = false;\r\n this._customizer.model = this._zkModel;\r\n this._customizer.fitToScreenMargin = 1;\r\n this._customizer.setGrids(this._grids);\r\n this._customizer.setDesign(this._zkDesign);\r\n yield new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\r\n var _a, _b;\r\n yield ((_a = this._customizer) === null || _a === void 0 ? void 0 : _a.setSide(this._side));\r\n (_b = this._customizer) === null || _b === void 0 ? void 0 : _b.refresh({ boundsToAreas: true }, () => __awaiter(this, void 0, void 0, function* () {\r\n if (this._customizer) {\r\n if (this._meshSide) {\r\n let valuesJson = this._meshSide.get(\"matrix\");\r\n if (valuesJson) {\r\n const values = JSON.parse(valuesJson);\r\n let matrix = new this._customizer.paper.Matrix(values);\r\n if (this._defaultSize !== this._size) {\r\n const scale = this._size / this._defaultSize;\r\n const scaledMatrix = new this._customizer.paper.Matrix().scale(scale, scale);\r\n matrix = matrix.prepend(scaledMatrix);\r\n }\r\n this._customizer.paper.view.matrix = matrix;\r\n this._customizer.paper.view.update();\r\n }\r\n }\r\n yield this.updateDynamicTextureAsync();\r\n // Attach events only after the first rendering \r\n // to avoid concurrent updates\r\n this._customizer.addItemCreatedListener(() => __awaiter(this, void 0, void 0, function* () {\r\n yield this.updateDynamicTextureAsync();\r\n this.fireRenderingNeededEvent();\r\n }));\r\n this._customizer.addItemChangedListener(() => __awaiter(this, void 0, void 0, function* () {\r\n yield this.updateDynamicTextureAsync();\r\n this.fireRenderingNeededEvent();\r\n }));\r\n this._customizer.addItemRemovedListener(() => __awaiter(this, void 0, void 0, function* () {\r\n yield this.updateDynamicTextureAsync();\r\n this.fireRenderingNeededEvent();\r\n }));\r\n this._customizer.addImageLoadedListener(() => __awaiter(this, void 0, void 0, function* () {\r\n yield this.updateDynamicTextureAsync();\r\n this.fireRenderingNeededEvent();\r\n }));\r\n }\r\n resolve();\r\n }));\r\n }));\r\n }\r\n }\r\n });\r\n }\r\n setCustomizerGrids(grids) {\r\n var _a;\r\n this._grids = grids;\r\n (_a = this._customizer) === null || _a === void 0 ? void 0 : _a.setGrids(grids);\r\n }\r\n // Ripristino il materiale originale sulla mesh, a meno che non sia stato già cambiato\r\n restoreOrignalMaterial() {\r\n if (this._mesh && this._originalMaterial &&\r\n this._mesh.material &&\r\n this._normalmapMaterial &&\r\n this._mesh.material.id === this._normalmapMaterial.id) {\r\n this._mesh.material = this._originalMaterial;\r\n }\r\n }\r\n getMeshesUsingMaterial(materialID) {\r\n var meshes = [];\r\n var allMeshes = this._scene.meshes;\r\n for (var i = 0; i < allMeshes.length; i++) {\r\n var mesh = allMeshes[i];\r\n if (mesh.material) {\r\n if (mesh.material.id == materialID) {\r\n meshes.push(mesh);\r\n }\r\n else if (mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (var k = 0; k < mesh.material.subMaterials.length; k++) {\r\n let subMaterial = mesh.material.subMaterials[k];\r\n if (subMaterial != null && subMaterial.id === materialID) {\r\n meshes.push(mesh);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return meshes;\r\n }\r\n checkNormalmapMaterialAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let changed = this._mesh && this._normalmapMaterial &&\r\n (!this._mesh.material || this._mesh.material.id !== this._normalmapMaterial.id);\r\n if (changed)\r\n yield this.setupNormalmapMaterialAsync();\r\n });\r\n }\r\n // Se il materiale associato alla mesh è cambiato lo ricrea\r\n checkDynamicMaterialAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let materialID = this.getMaterialIDForDesign();\r\n if (materialID) {\r\n let changed = this._side && this._canvasMesh && this._meshSide &&\r\n this._dynamicMaterial &&\r\n this._dynamicMaterial.id != materialID;\r\n if (changed)\r\n yield this.setupDynamicMaterialAsync();\r\n }\r\n });\r\n }\r\n setupDynamicMaterialAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._side && this._canvasMesh && this._meshSide) {\r\n this._ownOldDynamicMaterial = this._ownDynamicMaterial;\r\n this._oldDynamicMaterial = this._dynamicMaterial;\r\n var materialID = this.getMaterialIDForDesign();\r\n if (materialID) {\r\n let dynMaterial = this._scene.getMaterialByID(materialID);\r\n if (dynMaterial) {\r\n this._dynamicMaterial = yield this.cloneMaterialAsync(dynMaterial, dynMaterial.name + \" - clone\");\r\n this._ownDynamicMaterial = true;\r\n }\r\n }\r\n if (!this._dynamicMaterial) {\r\n if (this._mesh.material && this._mesh.material instanceof BABYLON.PBRBaseMaterial) {\r\n const dynamicMaterial = new BABYLON.PBRMaterial(\"dynamicMaterial\", this._scene);\r\n dynamicMaterial.enableSpecularAntiAliasing = true;\r\n dynamicMaterial.backFaceCulling = false;\r\n dynamicMaterial.albedoColor = BABYLON.Color3.White();\r\n dynamicMaterial.reflectivityColor = BABYLON.Color3.Black();\r\n if (this._mesh.material[\"subSurface\"][\"indexOfRefraction\"] != undefined)\r\n dynamicMaterial.subSurface.indexOfRefraction = this._mesh.material[\"subSurface\"][\"indexOfRefraction\"];\r\n if (this._mesh.material[\"roughness\"] != undefined)\r\n dynamicMaterial.roughness = this._mesh.material[\"roughness\"];\r\n if (this._mesh.material[\"metallic\"] != undefined)\r\n dynamicMaterial.metallic = this._mesh.material[\"metallic\"];\r\n if (this._mesh.material[\"reflectionTexture\"] != undefined)\r\n dynamicMaterial.reflectionTexture = this._mesh.material[\"reflectionTexture\"];\r\n if (this._mesh.material[\"microSurface\"] != undefined)\r\n dynamicMaterial.microSurface = this._mesh.material[\"microSurface\"];\r\n this._dynamicMaterial = dynamicMaterial;\r\n }\r\n else {\r\n this._dynamicMaterial = new BABYLON.StandardMaterial(\"dynamicMaterial\", this._scene);\r\n this._dynamicMaterial.backFaceCulling = false;\r\n this._dynamicMaterial.specularColor = BABYLON.Color3.Black();\r\n this._dynamicMaterial.ambientColor = BABYLON.Color3.White();\r\n this._dynamicMaterial.diffuseColor = BABYLON.Color3.White();\r\n }\r\n this._dynamicMaterial.id = Zakeke.generateUUID();\r\n this._ownDynamicMaterial = true;\r\n /*\r\n this._dynamicMaterial = new BABYLON.StandardMaterial(\"dynamicMaterial\", this._scene);\r\n this._dynamicMaterial.id = Zakeke.generateUUID();\r\n (this._dynamicMaterial as BABYLON.StandardMaterial).specularColor = BABYLON.Color3.Black();\r\n this._ownDynamicMaterial = true;\r\n //this.dynamicMaterial.diffuseTexture = this.dynamicTexture;\r\n */\r\n }\r\n this._dynamicMaterial.zOffset = -1;\r\n this._dynamicMaterial.metadata = { isRealMaterial: false };\r\n this._dynamicMaterial.doNotSerialize = true;\r\n this._originalDiffuseTexture = this.getMaterialDiffuse(this._dynamicMaterial);\r\n this._originalDesignNormalmapTexture = this.getMaterialNormalmap(this._dynamicMaterial);\r\n this._originalDesignLightmapTexture = this.getMaterialLightmap(this._dynamicMaterial);\r\n // Imposto il materiale solo quando è pronta la texture\r\n // altrimenti per qualche istante apparirebbe il materiale standard grigio/bianco\r\n //this.canvasMesh.material = this.dynamicMaterial;\r\n }\r\n });\r\n }\r\n /*\r\n private whenTextureIsReadyAsync(texture: BABYLON.BaseTexture): Promise {\r\n return new Promise((resolve, reject) => {\r\n\r\n let t = setInterval(() => {\r\n if (texture.isReady()) {\r\n clearInterval(t);\r\n if (texture instanceof BABYLON.ProceduralTexture)\r\n texture.getEffect();\r\n resolve();\r\n }\r\n }, 5);\r\n\r\n });\r\n }\r\n */\r\n cloneMaterialAsync(material, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (material) {\r\n var textures = material.getActiveTextures();\r\n textures.forEach((txt) => __awaiter(this, void 0, void 0, function* () {\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(txt);\r\n }));\r\n //let promises: Promise[] = [];\r\n //var textures = material.getActiveTextures();\r\n //textures.forEach((txt) => {\r\n // promises.push(SceneHelper.whenTextureIsReadyAsync(txt));\r\n //});\r\n //await Promise.all(promises);\r\n var newName = name || material.name + \" - clone\";\r\n if (material instanceof BABYLON.ShaderMaterial) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (!rootUrl)\r\n return null;\r\n let serialized = material.serialize();\r\n let deserialized = BABYLON.Material.Parse(serialized, this._scene, rootUrl);\r\n return deserialized;\r\n }\r\n else {\r\n return material.clone(newName);\r\n }\r\n /*\r\n Promise.all(promises).then(() => {\r\n var newName = name || material.name + \" - clone\";\r\n \r\n if (material instanceof BABYLON.ShaderMaterial) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (!rootUrl)\r\n return null;\r\n \r\n let serialized = material.serialize();\r\n let deserialized = BABYLON.Material.Parse(serialized, this._scene, rootUrl);\r\n return deserialized;\r\n } else {\r\n return material.clone(newName);\r\n }\r\n });\r\n */\r\n }\r\n return null;\r\n });\r\n }\r\n getMeshHierarchySize(mesh) {\r\n let boundingBox = mesh.getHierarchyBoundingVectors(true);\r\n let size = boundingBox.max.subtract(boundingBox.min);\r\n return size;\r\n }\r\n getMeshHierarchyCenter(mesh) {\r\n let boundingBox = mesh.getHierarchyBoundingVectors(true);\r\n let size = boundingBox.max.subtract(boundingBox.min);\r\n let center = boundingBox.min.add(size.scale(0.5));\r\n return center;\r\n }\r\n refreshAsync(effect) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (typeof effect !== \"undefined\")\r\n this._effect = effect;\r\n if (!this._side) {\r\n this.setupMeshSide();\r\n this.checkDefaultEffect();\r\n yield this.setupClonedObjectsAsync();\r\n yield this.setupCanvasAsync();\r\n yield this.setupDynamicMaterialAsync();\r\n }\r\n else {\r\n yield this.checkDynamicMaterialAsync();\r\n yield this.checkNormalmapMaterialAsync();\r\n }\r\n // Always check a better model side. \r\n // E.g, when running from a template without items, we can't know the correct colorID => sideID until\r\n // we add some item. But, for configurator we must select at last the first variant or we will be unable\r\n // to add any elements\r\n this.refreshModelSide();\r\n /*\r\n if (this._side && this._customizer) {\r\n this._customizer.refresh({ boundsToAreas: true });\r\n \r\n // apply matrix to view\r\n if (this._meshSide) {\r\n let valuesJson = this._meshSide.get(\"matrix\");\r\n if (valuesJson) {\r\n var values = JSON.parse(valuesJson);\r\n this._customizer.appendViewMatrix(values);\r\n }\r\n }\r\n \r\n await this.updateDynamicTextureAsync();\r\n }\r\n */\r\n yield new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\r\n var _a, _b;\r\n if (this._meshSide && this.side && this._customizer) {\r\n yield ((_a = this._customizer) === null || _a === void 0 ? void 0 : _a.setSide(this._side));\r\n (_b = this._customizer) === null || _b === void 0 ? void 0 : _b.refresh({ boundsToAreas: true }, () => __awaiter(this, void 0, void 0, function* () {\r\n if (this._meshSide) {\r\n let valuesJson = this._meshSide.get(\"matrix\");\r\n if (valuesJson && this._customizer) {\r\n const values = JSON.parse(valuesJson);\r\n let matrix = new this._customizer.paper.Matrix(values);\r\n if (this._defaultSize !== this._size) {\r\n const scale = this._size / this._defaultSize;\r\n const scaledMatrix = new this._customizer.paper.Matrix().scale(scale, scale);\r\n matrix = matrix.prepend(scaledMatrix);\r\n }\r\n this._customizer.paper.view.matrix = matrix;\r\n this._customizer.paper.view.update();\r\n }\r\n }\r\n yield this.updateDynamicTextureAsync();\r\n resolve();\r\n }));\r\n }\r\n }));\r\n });\r\n }\r\n updateDynamicTextureAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // First render is not debounced, usefull for screenshots that must wait the\r\n // render to finish\r\n if (this.isFirstRender) {\r\n console.log('First render...');\r\n yield this.updateDynamicTextureInternalAsync();\r\n this.isFirstRender = false;\r\n return;\r\n }\r\n // any other render, use debounced\r\n if (!this._debouncedUpdateDynamicTexture)\r\n this._debouncedUpdateDynamicTexture = (0,_Helpers_debounce__WEBPACK_IMPORTED_MODULE_0__.debounce)(this.updateDynamicTextureInternalAsync, 150);\r\n this._debouncedUpdateDynamicTexture();\r\n });\r\n }\r\n updateDynamicTextureInternalAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n Logger.info(\"updateDynamicTextureInternal\");\r\n if (!this._side || !this._meshSide || !this._canvas || !this._canvasMesh || !this._dynamicMaterial)\r\n return;\r\n const config = this.getDesignConfig();\r\n yield this.checkDynamicMaterialAsync();\r\n yield this.checkNormalmapMaterialAsync();\r\n let diffuseEnabled = config.getDiffuseEnabled();\r\n let diffuseBlendMode = config.getDiffuseBlendMode();\r\n let diffuseBlendLevel = config.getDiffuseLevel();\r\n if (diffuseBlendMode !== \"normal\" && diffuseBlendMode !== \"multiply\" && diffuseBlendMode !== \"overlay\")\r\n diffuseBlendMode = \"normal\";\r\n const opacityEnabled = config.getOpacityEnabled();\r\n const opacityConfig = config.getOrCreateOpacityConfig();\r\n const normalmapEnabled = config.getNormalmapEnabled();\r\n const normalmapConfig = config.getOrCreateNormalmapConfig();\r\n const innerShadowEnabled = config.getInnerShadowEnabled();\r\n const innerShadowConfig = config.getOrCreateInnerShadowConfig();\r\n const outerShadowEnabled = config.getOuterShadowEnabled();\r\n const outerShadowConfig = config.getOrCreateOuterShadowConfig();\r\n let dynamicTexturePropertyName = \"diffuseTexture\";\r\n const materialTextureName = this._meshSide.get(\"materialTexture\");\r\n if (materialTextureName)\r\n dynamicTexturePropertyName = materialTextureName;\r\n else {\r\n dynamicTexturePropertyName = this.getMaterialDiffuseTexturePropertyName(this._dynamicMaterial);\r\n }\r\n let opacityTexturePropertyName = this.getMaterialOpacityTexturePropertyName(this._dynamicMaterial);\r\n let oldTexture = this._dynamicTexture;\r\n if (oldTexture)\r\n oldTexture.dispose();\r\n // Recupero l'immagine del design\r\n let dataUrl = this._canvas.toDataURL();\r\n let isBlank = dataUrl == this._blankDataUrl;\r\n let blob = this.dataURItoBlob(dataUrl);\r\n let URL = window.URL || window.webkitURL;\r\n let blobTextureURL = URL.createObjectURL(blob);\r\n this._dynamicTexture = new BABYLON.Texture(blobTextureURL, this._scene);\r\n this._dynamicTexture.hasAlpha = true;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._dynamicTexture);\r\n if (!isBlank && this._dynamicTexture) {\r\n if (normalmapEnabled)\r\n yield this.updateNormalmapTextureAsync(normalmapConfig);\r\n if (innerShadowEnabled)\r\n yield this.updateInnerShadowTextureAsync(innerShadowConfig);\r\n if (outerShadowEnabled)\r\n yield this.updateOuterShadowTextureAsync(outerShadowConfig);\r\n if (opacityEnabled)\r\n yield this.updateOpacityTextureAsync();\r\n if (this._originalDiffuseTexture && diffuseEnabled && diffuseBlendMode !== \"normal\")\r\n yield this.combineDiffuseTexturesAsync(diffuseBlendMode, diffuseBlendLevel);\r\n if (this._showDesign) {\r\n // Imposta la texture dinamica (diffuse)\r\n if (diffuseEnabled && dynamicTexturePropertyName) {\r\n if (diffuseBlendMode === \"normal\" || !this._originalDiffuseTexture || !this._combinedDiffuseTexture) {\r\n this._dynamicTexture.coordinatesIndex = this._coordinatesIndex;\r\n this.setTextureWrapping(this._dynamicTexture);\r\n this._dynamicMaterial[dynamicTexturePropertyName] = this._dynamicTexture;\r\n }\r\n else if (this._combinedDiffuseTexture) {\r\n this._combinedDiffuseTexture.coordinatesIndex = this._coordinatesIndex;\r\n this.setTextureWrapping(this._combinedDiffuseTexture);\r\n this._dynamicMaterial[dynamicTexturePropertyName] = this._combinedDiffuseTexture;\r\n }\r\n this._dynamicMaterial[dynamicTexturePropertyName].hasAlpha = false;\r\n this._dynamicMaterial[dynamicTexturePropertyName].hasAlpha = true;\r\n }\r\n if (!diffuseEnabled && dynamicTexturePropertyName && !this.compareTextures(this._dynamicMaterial[dynamicTexturePropertyName], this._originalDiffuseTexture)) {\r\n this._dynamicMaterial[dynamicTexturePropertyName] = this._originalDiffuseTexture;\r\n }\r\n // Opacity\r\n if (opacityEnabled && opacityTexturePropertyName && this._dynamicOpacityTexture) {\r\n this._dynamicOpacityTexture.coordinatesIndex = this._coordinatesIndex;\r\n this.setTextureWrapping(this._dynamicOpacityTexture);\r\n if (this._dynamicMaterial instanceof BABYLON.ShaderMaterial) {\r\n this._dynamicMaterial.setTexture(opacityTexturePropertyName, this._dynamicOpacityTexture);\r\n }\r\n else {\r\n this._dynamicMaterial[opacityTexturePropertyName] = this._dynamicOpacityTexture;\r\n }\r\n }\r\n // Qui andrebbe salvata anche la vecchia texture di opacità per poterla ripristinata\r\n if (!opacityEnabled && opacityTexturePropertyName) {\r\n this._dynamicMaterial[opacityTexturePropertyName] = null;\r\n }\r\n if (this._canvasMesh.material !== this._dynamicMaterial)\r\n this._canvasMesh.material = this._dynamicMaterial;\r\n // Imposta la normalmap\r\n if (normalmapEnabled && this._normalmapTexture) {\r\n yield this.setNormalmapTextureAsync(normalmapConfig);\r\n }\r\n else {\r\n this.resetMeshNormalmapTexture();\r\n this.resetDesignNormalmapTexture();\r\n }\r\n // Imposta l'ombra interna ed esterna\r\n if (innerShadowEnabled && this._innerShadowTexture)\r\n yield this.setInnerShadowTextureAsync(innerShadowConfig);\r\n else\r\n this.removeInnerShadowTexture();\r\n if (outerShadowEnabled && this._outerShadowTexture)\r\n yield this.setOuterShadowTextureAsync(outerShadowConfig);\r\n else\r\n this.removeOuterShadowTexture();\r\n this.disposeOldDynamicMaterial();\r\n this._canvasMesh.isVisible = config.getShowDesign();\r\n }\r\n }\r\n if (isBlank) {\r\n this._canvasMesh.isVisible = false;\r\n }\r\n this.fireRenderingNeededEvent();\r\n });\r\n }\r\n resetDynamicTextures() {\r\n // DynamicMaterial\r\n if (this._dynamicMaterial) {\r\n // Diffuse\r\n let dynamicTexturePropertyName = \"diffuseTexture\";\r\n const materialTextureName = this._meshSide ? this._meshSide.get(\"materialTexture\") : null;\r\n if (materialTextureName)\r\n dynamicTexturePropertyName = materialTextureName;\r\n else {\r\n dynamicTexturePropertyName = this.getMaterialDiffuseTexturePropertyName(this._dynamicMaterial);\r\n }\r\n if (dynamicTexturePropertyName && !this.compareTextures(this._dynamicMaterial[dynamicTexturePropertyName], this._originalDiffuseTexture)) {\r\n this._dynamicMaterial[dynamicTexturePropertyName] = this._originalDiffuseTexture || new BABYLON.Texture(this._blankDataUrl, this._scene);\r\n this._dynamicMaterial[dynamicTexturePropertyName].hasAlpha = false;\r\n this._dynamicMaterial[dynamicTexturePropertyName].hasAlpha = true;\r\n }\r\n // Normal\r\n this.resetDesignNormalmapTexture();\r\n // Opacity\r\n let opacityTexturePropertyName = this.getMaterialOpacityTexturePropertyName(this._dynamicMaterial);\r\n if (opacityTexturePropertyName) {\r\n this._dynamicMaterial[opacityTexturePropertyName] = null;\r\n }\r\n // InnerShadow\r\n this.removeInnerShadowTexture();\r\n }\r\n // NormalmapMaterial\r\n if (this._normalmapMaterial) {\r\n this.resetMeshNormalmapTexture();\r\n this.removeOuterShadowTexture();\r\n }\r\n }\r\n updateOpacityTextureAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._dynamicTexture) {\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._dynamicTexture);\r\n // Genero la maschera di opacità a partire dalla texture dinamic\r\n if (!this._dynamicOpacityTexture) {\r\n this._dynamicOpacityTexture = new _ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_2__.ForegroundBackgroundProceduralTexture(\"dynamicOpacity\", this._textureWidth, this._scene, this._dynamicTexture);\r\n this._dynamicOpacityTexture.backColor = new BABYLON.Vector3(0, 0, 0);\r\n this._dynamicOpacityTexture.foreColor = new BABYLON.Vector3(1, 1, 1);\r\n this._dynamicOpacityTexture.refreshRate = 0;\r\n this._dynamicOpacityTexture.getAlphaFromRGB = true;\r\n }\r\n if (this._dynamicOpacityTexture) {\r\n this._dynamicOpacityTexture.baseTexture = this._dynamicTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._dynamicOpacityTexture);\r\n this._dynamicOpacityTexture.render();\r\n }\r\n }\r\n });\r\n }\r\n combineDiffuseTexturesAsync(blendMode, blendLevel) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._originalDiffuseTexture || !this._dynamicTexture)\r\n return;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._originalDiffuseTexture);\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._dynamicTexture);\r\n const baseTexture = blendLevel === 0 ? this._dynamicTexture : this._originalDiffuseTexture;\r\n const blendTexture = blendLevel === 0 ? this._originalDiffuseTexture : this._dynamicTexture;\r\n if (!this._combinedDiffuseTexture) {\r\n if (blendMode == \"multiply\")\r\n this._combinedDiffuseTexture = new _ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_3__.MultiplyProceduralTexture(\"multiplyDiffuse\", this._textureWidth, this._scene, baseTexture, blendTexture);\r\n else\r\n this._combinedDiffuseTexture = new _ProceduralTextures_OverlayProceduralTexture__WEBPACK_IMPORTED_MODULE_4__.OverlayProceduralTexture(\"overlayDiffuse\", this._textureWidth, this._scene, baseTexture, blendTexture);\r\n this._combinedDiffuseTexture.refreshRate = 0;\r\n }\r\n if (this._combinedDiffuseTexture) {\r\n this._combinedDiffuseTexture.baseTexture = baseTexture;\r\n this._combinedDiffuseTexture.blendTexture = blendTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._combinedDiffuseTexture);\r\n this._combinedDiffuseTexture.render();\r\n }\r\n });\r\n }\r\n // NORMAL MAP\r\n updateNormalmapTextureAsync(config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._dynamicTexture) {\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._dynamicTexture);\r\n if (!this._proceduralNormalMap) {\r\n this._proceduralNormalMap = new _NormalMap_ProceduralNormalMap__WEBPACK_IMPORTED_MODULE_1__.ProceduralNormalMap(this._dynamicTexture, this._textureWidth, config, this._scene);\r\n }\r\n this._normalmapTexture = yield this._proceduralNormalMap.getNormalMapTextureAsync(this._dynamicTexture, config);\r\n if (this._normalmapTexture)\r\n this._normalmapTexture.coordinatesIndex = this._coordinatesIndex; // Canale UV di riferimento da settare da parte dell'utente\r\n }\r\n });\r\n }\r\n // Aggiorna i materiali con la normalmapTexture\r\n // La complicazione principale qui è che le normalmap eventualmente devono essere combinate con quelle preesistenti\r\n // sul materiale. Inoltre, essendo i materiali clonati (per non modificare quelli originari) è necessario controllare\r\n // che le texture siano pronte\r\n setNormalmapTextureAsync(config) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshNormalmapTexture = this._normalmapTexture;\r\n let designNormalmapTexture = this._normalmapTexture;\r\n if (config.get(\"showOnMesh\")) {\r\n if (this._originalMeshNormalmapTexture && this._normalmapTexture) {\r\n yield this.combineMeshNormalmapTexturesAsync();\r\n if (this._meshCombinedNormalmapTexture)\r\n meshNormalmapTexture = this._meshCombinedNormalmapTexture;\r\n }\r\n }\r\n if (config.get(\"showOnDesign\")) {\r\n if (this._originalDesignNormalmapTexture && this._normalmapTexture) {\r\n yield this.combineDesignNormalmapTexturesAsync();\r\n if (this._designCombinedNormalmapTexture)\r\n designNormalmapTexture = this._designCombinedNormalmapTexture;\r\n }\r\n }\r\n if (this._normalmapMaterial && meshNormalmapTexture) {\r\n meshNormalmapTexture.coordinatesIndex = this._coordinatesIndex;\r\n this.setTextureWrapping(meshNormalmapTexture);\r\n const propName = this.getMaterialNormalmapTexturePropertyName(this._normalmapMaterial);\r\n if (config.get(\"showOnMesh\"))\r\n this._normalmapMaterial[propName] = meshNormalmapTexture;\r\n else\r\n this.resetMeshNormalmapTexture();\r\n if (this._mesh.material !== this._normalmapMaterial) {\r\n this._mesh.material = this._normalmapMaterial;\r\n if (!this._mesh.metadata)\r\n this._mesh.metadata = {};\r\n this._mesh.metadata.originalNormalmapMaterialID = (_a = this._originalMaterial) === null || _a === void 0 ? void 0 : _a.id;\r\n }\r\n }\r\n if (this._dynamicMaterial && designNormalmapTexture) {\r\n designNormalmapTexture.coordinatesIndex = this._coordinatesIndex;\r\n this.setTextureWrapping(designNormalmapTexture);\r\n const propName = this.getMaterialNormalmapTexturePropertyName(this._dynamicMaterial);\r\n if (config.get(\"showOnDesign\"))\r\n this._dynamicMaterial[propName] = designNormalmapTexture;\r\n else\r\n this.resetDesignNormalmapTexture();\r\n }\r\n });\r\n }\r\n combineMeshNormalmapTexturesAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._originalMeshNormalmapTexture || !this._normalmapTexture)\r\n return;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._originalMeshNormalmapTexture);\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._normalmapTexture);\r\n if (!this._meshCombinedNormalmapTexture) {\r\n this._meshCombinedNormalmapTexture = new _ProceduralTextures_OverlayProceduralTexture__WEBPACK_IMPORTED_MODULE_4__.OverlayProceduralTexture(\"overlayMeshNormal\", this._textureWidth, this._scene, this._originalMeshNormalmapTexture, this._normalmapTexture);\r\n this._meshCombinedNormalmapTexture.refreshRate = 0;\r\n }\r\n if (this._meshCombinedNormalmapTexture) {\r\n this._meshCombinedNormalmapTexture.baseTexture = this._originalMeshNormalmapTexture;\r\n this._meshCombinedNormalmapTexture.blendTexture = this._normalmapTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._meshCombinedNormalmapTexture);\r\n this._meshCombinedNormalmapTexture.render();\r\n }\r\n });\r\n }\r\n resetMeshNormalmapTexture() {\r\n if (this._normalmapMaterial) {\r\n const propName = this.getMaterialNormalmapTexturePropertyName(this._normalmapMaterial);\r\n if (!this.compareTextures(this._normalmapMaterial[propName], this._originalMeshNormalmapTexture)) {\r\n if (!this._originalMeshNormalmapTexture)\r\n this._normalmapMaterial[propName] = null;\r\n else\r\n this._normalmapMaterial[propName] = this._originalMeshNormalmapTexture;\r\n }\r\n }\r\n }\r\n resetDesignNormalmapTexture() {\r\n if (this._dynamicMaterial) {\r\n const propName = this.getMaterialNormalmapTexturePropertyName(this._dynamicMaterial);\r\n if (!this.compareTextures(this._dynamicMaterial[propName], this._originalDesignNormalmapTexture)) {\r\n if (!this._originalDesignNormalmapTexture)\r\n this._dynamicMaterial[propName] = null;\r\n else\r\n this._dynamicMaterial[propName] = this._originalDesignNormalmapTexture;\r\n }\r\n }\r\n }\r\n combineDesignNormalmapTexturesAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._originalDesignNormalmapTexture || !this._normalmapTexture)\r\n return;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._originalDesignNormalmapTexture);\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._normalmapTexture);\r\n if (!this._designCombinedNormalmapTexture) {\r\n this._designCombinedNormalmapTexture = new _ProceduralTextures_OverlayProceduralTexture__WEBPACK_IMPORTED_MODULE_4__.OverlayProceduralTexture(\"overlayDesignNormal\", this._textureWidth, this._scene, this._originalDesignNormalmapTexture, this._normalmapTexture);\r\n this._designCombinedNormalmapTexture.refreshRate = 0;\r\n }\r\n if (this._designCombinedNormalmapTexture) {\r\n this._designCombinedNormalmapTexture.baseTexture = this._originalDesignNormalmapTexture;\r\n this._designCombinedNormalmapTexture.blendTexture = this._normalmapTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._designCombinedNormalmapTexture);\r\n this._designCombinedNormalmapTexture.render();\r\n }\r\n });\r\n }\r\n // INNER SHADOW\r\n updateInnerShadowTextureAsync(config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._dynamicTexture) {\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._dynamicTexture);\r\n if (!this._innerShadowGenerator) {\r\n this._innerShadowGenerator = new _Shadows_InnerShadow__WEBPACK_IMPORTED_MODULE_6__.InnerShadow(this._dynamicTexture, this._textureWidth, config, this._scene);\r\n this._innerShadowTexture = yield this._innerShadowGenerator.getInnerShadowTextureAsync(this._dynamicTexture);\r\n this._innerShadowTexture.coordinatesIndex = this._coordinatesIndex;\r\n }\r\n else {\r\n yield this._innerShadowGenerator.updateAsync(this._dynamicTexture, config);\r\n }\r\n }\r\n });\r\n }\r\n setInnerShadowTextureAsync(config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let designLightmapTexture = this._innerShadowTexture;\r\n if (this._originalDesignLightmapTexture && this._innerShadowTexture) {\r\n yield this.combineDesignLightmapTexturesAsync();\r\n if (this._designCombinedLightmapTexture)\r\n designLightmapTexture = this._designCombinedLightmapTexture;\r\n }\r\n if (designLightmapTexture) {\r\n designLightmapTexture.coordinatesIndex = this._coordinatesIndex;\r\n this.setTextureWrapping(designLightmapTexture);\r\n this.setMaterialLightmap(this._dynamicMaterial, designLightmapTexture);\r\n }\r\n });\r\n }\r\n combineDesignLightmapTexturesAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._originalDesignLightmapTexture || !this._innerShadowTexture)\r\n return;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._originalDesignLightmapTexture);\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._innerShadowTexture);\r\n if (!this._designCombinedLightmapTexture) {\r\n this._designCombinedLightmapTexture = new _ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_3__.MultiplyProceduralTexture(\"overlayDesignLightmaps\", this._textureWidth, this._scene, this._originalDesignLightmapTexture, this._innerShadowTexture);\r\n this._designCombinedLightmapTexture.refreshRate = 0;\r\n }\r\n if (this._designCombinedLightmapTexture) {\r\n this._designCombinedLightmapTexture.baseTexture = this._originalDesignLightmapTexture;\r\n this._designCombinedLightmapTexture.blendTexture = this._innerShadowTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._designCombinedLightmapTexture);\r\n this._designCombinedLightmapTexture.render();\r\n }\r\n });\r\n }\r\n removeInnerShadowTexture() {\r\n if (this._dynamicMaterial) {\r\n let current = this.getMaterialLightmap(this._dynamicMaterial);\r\n let original = this._originalDesignLightmapTexture;\r\n if (!this.compareTextures(current, original)) {\r\n this.setMaterialLightmap(this._dynamicMaterial, original);\r\n }\r\n }\r\n }\r\n // OUTER SHADOW\r\n updateOuterShadowTextureAsync(config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._dynamicTexture) {\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._dynamicTexture);\r\n if (!this._outerShadowGenerator) {\r\n this._outerShadowGenerator = new _Shadows_OuterShadow__WEBPACK_IMPORTED_MODULE_7__.OuterShadow(this._dynamicTexture, this._textureWidth, config, this._scene);\r\n this._outerShadowTexture = yield this._outerShadowGenerator.getOuterShadowTextureAsync(this._dynamicTexture);\r\n this._outerShadowTexture.coordinatesIndex = this._coordinatesIndex;\r\n }\r\n else {\r\n yield this._outerShadowGenerator.updateAsync(this._dynamicTexture, config);\r\n }\r\n }\r\n });\r\n }\r\n setOuterShadowTextureAsync(config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshLightmapTexture = this._outerShadowTexture;\r\n if (this._originalMeshLightmapTexture && this._outerShadowTexture) {\r\n yield this.combineMeshLightmapTexturesAsync();\r\n if (this._meshCombinedLightmapTexture)\r\n meshLightmapTexture = this._meshCombinedLightmapTexture;\r\n }\r\n if (meshLightmapTexture) {\r\n meshLightmapTexture.coordinatesIndex = this._coordinatesIndex;\r\n this.setTextureWrapping(meshLightmapTexture);\r\n this.setMaterialLightmap(this._normalmapMaterial, meshLightmapTexture);\r\n if (this._mesh.material !== this._normalmapMaterial)\r\n this._mesh.material = this._normalmapMaterial;\r\n }\r\n });\r\n }\r\n combineMeshLightmapTexturesAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._originalMeshLightmapTexture || !this._outerShadowTexture)\r\n return;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._originalMeshLightmapTexture);\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._outerShadowTexture);\r\n if (!this._meshCombinedLightmapTexture) {\r\n this._meshCombinedLightmapTexture = new _ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_3__.MultiplyProceduralTexture(\"overlayMeshLightmap\", this._textureWidth, this._scene, this._originalMeshLightmapTexture, this._outerShadowTexture);\r\n this._meshCombinedLightmapTexture.refreshRate = 0;\r\n }\r\n if (this._meshCombinedLightmapTexture) {\r\n this._meshCombinedLightmapTexture.baseTexture = this._originalMeshLightmapTexture;\r\n this._meshCombinedLightmapTexture.blendTexture = this._outerShadowTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._meshCombinedLightmapTexture);\r\n this._meshCombinedLightmapTexture.render();\r\n }\r\n });\r\n }\r\n removeOuterShadowTexture() {\r\n if (this._normalmapMaterial) {\r\n const current = this.getMaterialLightmap(this._normalmapMaterial);\r\n const original = this._originalMeshLightmapTexture;\r\n if (!this.compareTextures(current, original)) {\r\n this.setMaterialLightmap(this._normalmapMaterial, original);\r\n }\r\n }\r\n }\r\n compareTextures(a, b) {\r\n if (typeof a === \"undefined\" && typeof b === \"undefined\")\r\n return true;\r\n if (a === null && b === null)\r\n return true;\r\n if (!a || !b)\r\n return false;\r\n return a === b;\r\n }\r\n dataURItoBlob(dataURI) {\r\n // convert base64 to raw binary data held in a string\r\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\r\n let byteString = atob(dataURI.split(',')[1]);\r\n // separate out the mime component\r\n let mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n // write the bytes of the string to an ArrayBuffer\r\n let ab = new ArrayBuffer(byteString.length);\r\n let ia = new Uint8Array(ab);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n // write the ArrayBuffer to a blob, and you're done\r\n let bb = new Blob([ab], { type: mimeString });\r\n return bb;\r\n }\r\n downloadImage(data, filename) {\r\n let blob = this.dataURItoBlob(data);\r\n let url = window.URL.createObjectURL(blob);\r\n let fileNameToSaveAs = filename || \"image.png\";\r\n let downloadLink = document.createElement(\"a\");\r\n downloadLink.download = fileNameToSaveAs;\r\n downloadLink.innerHTML = \"Download File\";\r\n downloadLink.href = url;\r\n downloadLink.onclick = (ev) => {\r\n document.body.removeChild(downloadLink);\r\n };\r\n downloadLink.style.display = \"none\";\r\n downloadLink.setAttribute(\"type\", \"hidden\");\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n }\r\n setDesignMeshVisibility(visibile) {\r\n if (this._canvasMesh) {\r\n this._canvasMesh.isVisible = visibile;\r\n }\r\n }\r\n getItemsInfo() {\r\n if (this._customizer) {\r\n return this._customizer.getItemsInfo();\r\n }\r\n return [];\r\n }\r\n removeItem(itemGuid) {\r\n if (this._customizer)\r\n this._customizer.removeItemByGuid(itemGuid);\r\n }\r\n addItemText(settings) {\r\n if (this._customizer)\r\n this._customizer.addTextElement(null, settings, false);\r\n }\r\n setItemText(itemGuid, text) {\r\n if (this._customizer)\r\n this._customizer.modifyTextElementContentByGuid(itemGuid, text);\r\n }\r\n setItemBold(guid, bold) {\r\n if (this._customizer) {\r\n let item = this._customizer.findItemByGuid(guid);\r\n if (item) {\r\n let info = this._customizer.getTextItemInfo(item);\r\n let data = info.fontWeight.split(' ');\r\n let style = [data.length > 1 ? data[0] : 'normal'];\r\n style.push(bold ? 'bold' : 'normal');\r\n this._customizer.modifyTextElementFontWeight(item, style.join(' '));\r\n }\r\n }\r\n }\r\n setItemItalic(guid, italic) {\r\n if (this._customizer) {\r\n let item = this._customizer.findItemByGuid(guid);\r\n if (item) {\r\n let info = this._customizer.getTextItemInfo(item);\r\n let data = info.fontWeight.split(' ');\r\n let style = [italic ? 'italic' : 'normal'];\r\n style.push(data.length > 1 ? data[1] : data[0]);\r\n this._customizer.modifyTextElementFontWeight(item, style.join(' '));\r\n }\r\n }\r\n }\r\n setItemColor(guid, color) {\r\n if (this._customizer)\r\n this._customizer.modifyTextElementFillColorByGuid(guid, color);\r\n }\r\n setItemFontFamily(guid, fontFamily) {\r\n if (this._customizer)\r\n this._customizer.modifyTextElementFontFamilyByGuid(guid, fontFamily);\r\n }\r\n addItemImage(imageID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._customizer)\r\n yield this._customizer.insertImageById(imageID);\r\n });\r\n }\r\n setItemImage(guid, image) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._customizer)\r\n yield this._customizer.replaceImageByGuid(guid, image);\r\n });\r\n }\r\n setItemTextOnPath(guid, value) {\r\n if (this._customizer) {\r\n let item = this._customizer.findItemByGuid(guid);\r\n if (value) {\r\n this._customizer.convertToTextOnPath(item);\r\n }\r\n else {\r\n this._customizer.convertToTextArea(item);\r\n }\r\n }\r\n }\r\n removeItemImage(guid) {\r\n if (this._customizer)\r\n this._customizer.removeImageByGuid(guid);\r\n }\r\n containsItem(guid) {\r\n if (this._customizer) {\r\n const item = this._customizer.findItemByGuid(guid);\r\n return item != null && item != undefined;\r\n }\r\n return false;\r\n }\r\n // -------------------------------------------------------------\r\n // Events \r\n // -------------------------------------------------------------\r\n addNotifyMessageListener(listener) {\r\n if (this._customizer) {\r\n const customizer = this._customizer;\r\n let wrapperListener = (itemGuid, type, title, message, closable, onClick, onClose, data) => {\r\n listener(customizer.side.getSideID(), itemGuid, type, title, message, closable, data.requiredWidth, data.requiredHeight);\r\n };\r\n customizer.addNotifyMessageListeners(wrapperListener);\r\n }\r\n }\r\n addRemoveMessageListener(listener) {\r\n if (this._customizer) {\r\n const customizer = this._customizer;\r\n let wrapperListener = (itemGuid) => {\r\n listener(customizer.side.getSideID(), itemGuid);\r\n };\r\n customizer.addRemoveMessageListeners(wrapperListener);\r\n }\r\n }\r\n setEventMessages(eventMessages) {\r\n if (this._customizer) {\r\n const customizer = this._customizer;\r\n customizer.setCustomizedMessages(eventMessages);\r\n }\r\n }\r\n fireRenderingNeededEvent() {\r\n for (let i = 0; i < this._renderingNeededListeners.length; ++i) {\r\n this._renderingNeededListeners[i]();\r\n }\r\n }\r\n addRenderingNeededListener(listenerFunction) {\r\n this._renderingNeededListeners.push(listenerFunction);\r\n }\r\n // -------------------------------------------------------------\r\n // Design view transformation\r\n // -------------------------------------------------------------\r\n translateDesignView(dx, dy) {\r\n if (this._meshSide && this._customizer) {\r\n // Aggiorno la vista\r\n //this.customizer.translateView(dx, dy);\r\n // Aggiorno la matrice memorizzata nel modello\r\n let valuesJson = this._meshSide.get(\"matrix\") || JSON.stringify(this._customizer.paper.view.matrix.values);\r\n var values = JSON.parse(valuesJson);\r\n var newValues = this._customizer.getTranslatedMatrixValues(values, dx, dy);\r\n var newValuesJson = JSON.stringify(newValues);\r\n this._meshSide.set(\"matrix\", newValuesJson);\r\n }\r\n }\r\n rotateDesignView(angle, centerX, centerY) {\r\n if (this._meshSide && this._customizer) {\r\n // Aggiorno la vista\r\n //this.customizer.rotateView(angle, centerX, centerY);\r\n // Aggiorno la matrice memorizzata nel modello\r\n var valuesJson = this._meshSide.get(\"matrix\") || JSON.stringify(this._customizer.paper.view.matrix.values);\r\n var values = JSON.parse(valuesJson);\r\n var newValues = this._customizer.getRotatedMatrixValues(values, angle, centerX, centerY);\r\n var newValuesJson = JSON.stringify(newValues);\r\n this._meshSide.set(\"matrix\", newValuesJson);\r\n }\r\n }\r\n scaleDesignView(hor, ver, centerX, centerY) {\r\n if (this._meshSide && this._customizer) {\r\n // Aggiorno la vista\r\n //this.customizer.scaleView(hor, ver, centerX, centerY);\r\n // Aggiorno la matrice memorizzata nel modello\r\n var valuesJson = this._meshSide.get(\"matrix\") || JSON.stringify(this._customizer.paper.view.matrix.values);\r\n var values = JSON.parse(valuesJson);\r\n var newValues = this._customizer.getScaledMatrixValues(values, hor, ver, centerX, centerY);\r\n var newValuesJson = JSON.stringify(newValues);\r\n this._meshSide.set(\"matrix\", newValuesJson);\r\n }\r\n }\r\n setDesignViewTextureUVChannelAsync(uvChannel) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._meshSide) {\r\n this._meshSide.set(\"uvChannel\", uvChannel);\r\n yield this.updateDynamicTextureAsync();\r\n }\r\n });\r\n }\r\n setDesignViewFormFactorAsync(percWidth, percHeight) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._meshSide) {\r\n this._meshSide.set(\"percWidth\", percWidth);\r\n this._meshSide.set(\"percHeight\", percHeight);\r\n yield this.refreshAsync();\r\n }\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/DesignManagers/SceneDesignManager.ts\":\n/*!********************************************************************!*\\\n !*** ../../3D/src/Components/DesignManagers/SceneDesignManager.ts ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SceneDesignManager\": () => (/* binding */ SceneDesignManager)\n/* harmony export */ });\n/* harmony import */ var _MeshDesignManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MeshDesignManager */ \"../../3D/src/Components/DesignManagers/MeshDesignManager.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\nclass SceneDesignManager {\r\n constructor(scene, zkScene, zkModel, zkDesign, showDesign = true) {\r\n this._grids = [];\r\n this._meshDesignManagers = [];\r\n this._renderingNeededListeners = [];\r\n this._designNotifyMessageListeners = [];\r\n this._designRemoveMessageListeners = [];\r\n this._designEventMessages = [];\r\n this._scene = scene;\r\n this._zkScene = zkScene;\r\n this._zkModel = zkModel;\r\n this._zkDesign = zkDesign;\r\n this._showDesign = showDesign;\r\n this.init();\r\n }\r\n get showDesign() {\r\n return this._showDesign;\r\n }\r\n set showDesign(value) {\r\n if (this._showDesign != value) {\r\n this._showDesign = value;\r\n this._meshDesignManagers.forEach(m => m.showDesign = value);\r\n }\r\n }\r\n dispose() {\r\n this._meshDesignManagers.forEach(m => m.dispose());\r\n }\r\n init() {\r\n // do nothing\r\n }\r\n isForModels(scene, zkModel, zkDesign) {\r\n return this._scene == scene &&\r\n this._zkModel == zkModel &&\r\n this._zkDesign == zkDesign;\r\n }\r\n getDefaultModelScene() {\r\n if (this._zkModel) {\r\n let modelScene = this._zkModel.get(\"scenes\").findWhere({ isDefault: true });\r\n if (modelScene)\r\n return modelScene;\r\n }\r\n return null;\r\n }\r\n getModelSceneMeshSide(meshID, submeshID = 0) {\r\n if (this._scene && this._zkModel) {\r\n const scene = this.getDefaultModelScene();\r\n if (scene) {\r\n for (let j = 0; j < scene.get(\"meshSides\").length; j++) {\r\n let meshSide = scene.get(\"meshSides\").at(j);\r\n if (meshSide.get(\"meshID\") == meshID && meshSide.get(\"subMeshID\") == submeshID)\r\n return meshSide;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n refreshAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene && this._zkModel && this._zkDesign) {\r\n const scene = this.getDefaultModelScene();\r\n if (scene) {\r\n let meshDesignManager = null;\r\n let mesh = null;\r\n let meshSide = null;\r\n // Removed sceneID check otherwise it will not work when creating the scene in the customizer\r\n // backoffice\r\n //let sceneID = scene.get(\"sceneID\");\r\n // Per ogni collegamento Mesh-Side aggiorno il corrispondente gestore\r\n for (let j = 0; j < scene.get(\"meshSides\").length; j++) {\r\n meshSide = scene.get(\"meshSides\").at(j);\r\n const meshID = meshSide.get(\"meshID\");\r\n const submeshIdx = meshSide.get(\"subMeshID\");\r\n if (meshID)\r\n yield this.refreshMeshDesignAsync(meshID, submeshIdx);\r\n }\r\n // Elimino tutti i gestori non più necessari\r\n for (let j = 0; j < this._meshDesignManagers.length; j++) {\r\n meshDesignManager = this._meshDesignManagers[j];\r\n let found = false;\r\n for (let k = 0; k < scene.get(\"meshSides\").length; k++) {\r\n meshSide = scene.get(\"meshSides\").at(k);\r\n if (meshSide.get(\"meshID\") == meshDesignManager.getMeshID() &&\r\n meshSide.get(\"subMeshID\") == meshDesignManager.getSubMeshIdx()) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n let meshVisible = true;\r\n if (found) {\r\n let meshID = meshDesignManager.getMeshID();\r\n if (meshID) {\r\n mesh = this._scene.getMeshByID(meshID);\r\n if (mesh)\r\n meshVisible = mesh.isVisible;\r\n }\r\n }\r\n if (!found || !meshVisible) {\r\n meshDesignManager.dispose();\r\n this._meshDesignManagers.splice(j--, 1);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n isValidEffectForMesh(meshID, submeshID, effect) {\r\n // lascio i controlli in modo che finiscano nel javascript\r\n if (effect && effect instanceof MPlaza.ModelSceneMeshDesignEffect) {\r\n const modelScene = effect.getParentModel();\r\n if (modelScene && modelScene instanceof MPlaza.ModelScene) {\r\n return modelScene.isEffectForMesh(meshID, submeshID, effect.get(\"effectID\"));\r\n }\r\n }\r\n return false;\r\n }\r\n refreshMeshDesignAsync(meshID, submeshID = 0, effect) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let validEffect = effect;\r\n if (effect && !this.isValidEffectForMesh(meshID, submeshID, effect))\r\n validEffect = undefined;\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh && mesh.isVisible) {\r\n let subMesh = null;\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && submeshID >= 0 && submeshID < mesh.subMeshes.length) {\r\n subMesh = mesh.subMeshes[submeshID];\r\n }\r\n let meshDesignManager = this.getMeshDesignMananger(mesh, subMesh);\r\n if (!meshDesignManager) {\r\n meshDesignManager = yield _MeshDesignManager__WEBPACK_IMPORTED_MODULE_0__.MeshDesignManager.createMeshDesignManagerAsync(this._scene, this._zkScene, mesh, subMesh, this._zkModel, this._zkDesign, this._showDesign, validEffect);\r\n meshDesignManager.addRenderingNeededListener(() => this.fireRenderingNeededEvent());\r\n meshDesignManager.setCustomizerGrids(this._grids);\r\n meshDesignManager.setEventMessages(this._designEventMessages);\r\n for (let listener of this._designNotifyMessageListeners)\r\n meshDesignManager.addNotifyMessageListener(listener);\r\n for (let listener of this._designRemoveMessageListeners)\r\n meshDesignManager.addRemoveMessageListener(listener);\r\n this._meshDesignManagers.push(meshDesignManager);\r\n }\r\n else {\r\n meshDesignManager.showDesign = this._showDesign;\r\n yield meshDesignManager.refreshAsync(validEffect);\r\n }\r\n }\r\n });\r\n }\r\n getMeshDesignMananger(mesh, subMesh) {\r\n for (let i = 0; i < this._meshDesignManagers.length; i++) {\r\n const meshDesignManager = this._meshDesignManagers[i];\r\n if (meshDesignManager.isForMesh(mesh, subMesh))\r\n return meshDesignManager;\r\n }\r\n return null;\r\n }\r\n clearMeshDesignManagers() {\r\n this._meshDesignManagers = [];\r\n }\r\n setCustomizerGrids(grids) {\r\n this._grids = grids;\r\n this._meshDesignManagers.forEach(meshDesignMangaer => meshDesignMangaer.setCustomizerGrids(grids));\r\n }\r\n getItemsInfo() {\r\n let infoArray = [];\r\n for (let i = 0; i < this._meshDesignManagers.length; i++) {\r\n const meshDesignManager = this._meshDesignManagers[i];\r\n const tempArray = meshDesignManager.getItemsInfo();\r\n for (let j = 0; j < tempArray.length; j++) {\r\n const info = tempArray[j];\r\n let found = false;\r\n for (let k = 0; k < infoArray.length; k++) {\r\n if (infoArray[k].itemGuid == info.itemGuid) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found)\r\n infoArray.push(info);\r\n }\r\n }\r\n return infoArray;\r\n }\r\n execOnMeshManagersContainingItem(guid, func) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n for (const manager of this._meshDesignManagers) {\r\n if (manager.containsItem(guid))\r\n yield func(manager);\r\n }\r\n });\r\n }\r\n removeItem(guid) {\r\n this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.removeItem(guid); }));\r\n }\r\n addItemText(settings, sideID) {\r\n let meshDesignManager = this._meshDesignManagers.find(x => x.side != null && x.side.get(\"sideID\") === sideID);\r\n if (meshDesignManager)\r\n meshDesignManager.addItemText(settings);\r\n }\r\n addItemImage(imageID, sideID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshDesignManager = this._meshDesignManagers.find(x => x.side != null && x.side.get(\"sideID\") === sideID);\r\n if (meshDesignManager)\r\n yield meshDesignManager.addItemImage(imageID);\r\n });\r\n }\r\n setItemText(guid, text) {\r\n this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.setItemText(guid, text); }));\r\n }\r\n setItemItalic(guid, italic) {\r\n this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.setItemItalic(guid, italic); }));\r\n }\r\n setItemBold(guid, bold) {\r\n this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.setItemBold(guid, bold); }));\r\n }\r\n setItemColor(guid, color) {\r\n this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.setItemColor(guid, color); }));\r\n }\r\n setItemFontFamily(guid, fontFamily) {\r\n this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.setItemFontFamily(guid, fontFamily); }));\r\n }\r\n setItemImage(guid, image) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.setItemImage(guid, image); }));\r\n });\r\n }\r\n setItemTextOnPath(guid, areaId, value) {\r\n const meshDesignManager = this._meshDesignManagers.find(x => x.side != null && x.side.get(\"sideID\") === areaId);\r\n if (meshDesignManager)\r\n meshDesignManager.setItemTextOnPath(guid, value);\r\n }\r\n removeItemImage(guid) {\r\n this.execOnMeshManagersContainingItem(guid, (manager) => __awaiter(this, void 0, void 0, function* () { return manager.removeItemImage(guid); }));\r\n }\r\n setDesignVisibility(meshId, visibile) {\r\n const mesh = this._scene.getMeshByID(meshId);\r\n if (mesh) {\r\n const manager = this.getMeshDesignMananger(mesh, mesh.subMeshes.length > 0 ? mesh.subMeshes[0] : null);\r\n if (manager)\r\n manager.setDesignMeshVisibility(visibile);\r\n }\r\n }\r\n getDesignItemsJson() {\r\n let json = \"\";\r\n for (let i = 0; i < this._zkDesign.get(\"designItems\").length; i++) {\r\n if (json)\r\n json += \"\\n\";\r\n json += this._zkDesign.get(\"designItems\").at(i).get(\"json\");\r\n }\r\n return json;\r\n }\r\n getDesignID() {\r\n return this._zkDesign.getDesignID();\r\n }\r\n // -------------------------------------------------------------\r\n // Events \r\n // -------------------------------------------------------------\r\n fireRenderingNeededEvent() {\r\n for (let i = 0; i < this._renderingNeededListeners.length; ++i) {\r\n this._renderingNeededListeners[i]();\r\n }\r\n }\r\n addRenderingNeededListener(listenerFunction) {\r\n this._renderingNeededListeners.push(listenerFunction);\r\n }\r\n addNotifyMessageListener(listener) {\r\n this._designNotifyMessageListeners.push(listener);\r\n for (let meshDesignManager of this._meshDesignManagers)\r\n meshDesignManager.addNotifyMessageListener(listener);\r\n }\r\n addRemoveMessageListener(listener) {\r\n this._designRemoveMessageListeners.push(listener);\r\n for (let meshDesignManager of this._meshDesignManagers)\r\n meshDesignManager.addRemoveMessageListener(listener);\r\n }\r\n setEventMessages(eventMessages) {\r\n this._designEventMessages = eventMessages;\r\n for (let meshDesignManager of this._meshDesignManagers)\r\n meshDesignManager.setEventMessages(eventMessages);\r\n }\r\n // -------------------------------------------------------------\r\n // Design view transformation\r\n // -------------------------------------------------------------\r\n translateDesignView(mesh, submesh, dx, dy) {\r\n const meshDesignManager = this.getMeshDesignMananger(mesh, submesh);\r\n if (meshDesignManager)\r\n meshDesignManager.translateDesignView(dx, dy);\r\n }\r\n rotateDesignView(mesh, submesh, angle, centerX, centerY) {\r\n const meshDesignManager = this.getMeshDesignMananger(mesh, submesh);\r\n if (meshDesignManager)\r\n meshDesignManager.rotateDesignView(angle, centerX, centerY);\r\n }\r\n scaleDesignView(mesh, submesh, hor, ver, centerX, centerY) {\r\n const meshDesignManager = this.getMeshDesignMananger(mesh, submesh);\r\n if (meshDesignManager)\r\n meshDesignManager.scaleDesignView(hor, ver, centerX, centerY);\r\n }\r\n setDesignViewTextureUVChannelAsync(mesh, submesh, uvChannel) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshDesignManager = this.getMeshDesignMananger(mesh, submesh);\r\n if (meshDesignManager)\r\n yield meshDesignManager.setDesignViewTextureUVChannelAsync(uvChannel);\r\n });\r\n }\r\n setDesignViewFormFactorAsync(mesh, submesh, percWidth, percHeight) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshDesignManager = this.getMeshDesignMananger(mesh, submesh);\r\n if (meshDesignManager)\r\n yield meshDesignManager.setDesignViewFormFactorAsync(percWidth, percHeight);\r\n });\r\n }\r\n // -------------------------------------------------------------\r\n // Mesh - Side connection\r\n // -------------------------------------------------------------\r\n connectMeshToModelSideAsync(meshID, submeshID, sideID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshSide = this.getModelSceneMeshSide(meshID, submeshID);\r\n if (!meshSide && this._scene && this._zkModel) {\r\n let mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n let subMesh = null;\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && submeshID >= 0 && submeshID < mesh.subMeshes.length) {\r\n subMesh = mesh.subMeshes[submeshID];\r\n let scene = this.getDefaultModelScene();\r\n if (scene) {\r\n meshSide = new MPlaza.ModelSceneMeshSide();\r\n meshSide.set(\"meshID\", meshID);\r\n meshSide.set(\"subMeshID\", submeshID);\r\n meshSide.set(\"sideID\", sideID);\r\n scene.get(\"meshSides\").add(meshSide);\r\n yield this.refreshAsync();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n expandCanvasMeshes() {\r\n this._meshDesignManagers.forEach(m => m.expandCanvasMesh());\r\n }\r\n contractCanvasMeshes() {\r\n this._meshDesignManagers.forEach(m => m.contractCanvasMesh());\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/Draco/DracoCompression.ts\":\n/*!*********************************************************!*\\\n !*** ../../3D/src/Components/Draco/DracoCompression.ts ***!\n \\*********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DracoCompression\": () => (/* binding */ DracoCompression)\n/* harmony export */ });\n/* harmony import */ var _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Misc/WorkerPool */ \"../../3D/src/Misc/WorkerPool.ts\");\n\r\nfunction loadScriptAsync(url) {\r\n if (typeof importScripts === \"function\") {\r\n importScripts(url);\r\n return Promise.resolve();\r\n }\r\n else {\r\n return new Promise((resolve, reject) => {\r\n BABYLON.Tools.LoadScript(url, () => {\r\n resolve();\r\n }, (message) => {\r\n reject(new Error(message));\r\n });\r\n });\r\n }\r\n}\r\nfunction loadFileAsync(url) {\r\n return new Promise((resolve, reject) => {\r\n BABYLON.Tools.LoadFile(url, (data) => {\r\n resolve(data);\r\n }, undefined, undefined, true, (request, exception) => {\r\n reject(exception);\r\n });\r\n });\r\n}\r\nfunction createDecoderAsync(wasmUrl, wasmBinary, fallbackUrl) {\r\n const decoderUrl = (wasmBinary && wasmUrl) || fallbackUrl;\r\n if (decoderUrl) {\r\n return loadScriptAsync(decoderUrl).then(() => {\r\n return new Promise((resolve) => {\r\n DracoDecoderModule({ wasmBinary: wasmBinary }).then((module) => {\r\n resolve({ module: module });\r\n });\r\n });\r\n });\r\n }\r\n return undefined;\r\n}\r\nfunction decodeMesh(decoderModule, dataView, attributes, onIndicesData, onAttributeData) {\r\n const buffer = new decoderModule.DecoderBuffer();\r\n buffer.Init(dataView, dataView.byteLength);\r\n const decoder = new decoderModule.Decoder();\r\n let geometry;\r\n let status;\r\n try {\r\n const type = decoder.GetEncodedGeometryType(buffer);\r\n switch (type) {\r\n case decoderModule.TRIANGULAR_MESH:\r\n geometry = new decoderModule.Mesh();\r\n status = decoder.DecodeBufferToMesh(buffer, geometry);\r\n break;\r\n case decoderModule.POINT_CLOUD:\r\n geometry = new decoderModule.PointCloud();\r\n status = decoder.DecodeBufferToPointCloud(buffer, geometry);\r\n break;\r\n default:\r\n throw new Error(\"Invalid geometry type \" + type);\r\n }\r\n if (!status.ok() || !geometry.ptr) {\r\n throw new Error(status.error_msg());\r\n }\r\n const numPoints = geometry.num_points();\r\n if (type === decoderModule.TRIANGULAR_MESH) {\r\n const numFaces = geometry.num_faces();\r\n const faceIndices = new decoderModule.DracoInt32Array();\r\n try {\r\n const indices = new Uint32Array(numFaces * 3);\r\n for (let i = 0; i < numFaces; i++) {\r\n decoder.GetFaceFromMesh(geometry, i, faceIndices);\r\n const offset = i * 3;\r\n indices[offset + 0] = faceIndices.GetValue(0);\r\n indices[offset + 1] = faceIndices.GetValue(1);\r\n indices[offset + 2] = faceIndices.GetValue(2);\r\n }\r\n onIndicesData(indices);\r\n }\r\n finally {\r\n decoderModule.destroy(faceIndices);\r\n }\r\n }\r\n // Positions\r\n const posAttId = decoder.GetAttributeId(geometry, decoderModule.POSITION);\r\n const posAttribute = decoder.GetAttributeByUniqueId(geometry, posAttId);\r\n const posDracoData = new decoderModule.DracoFloat32Array();\r\n try {\r\n decoder.GetAttributeFloatForAllPoints(geometry, posAttribute, posDracoData);\r\n const babylonData = new Float32Array(numPoints * posAttribute.num_components());\r\n for (let i = 0; i < babylonData.length; i++) {\r\n babylonData[i] = posDracoData.GetValue(i);\r\n }\r\n onAttributeData(\"position\", babylonData);\r\n }\r\n finally {\r\n decoderModule.destroy(posDracoData);\r\n }\r\n // Normals\r\n const normAttId = decoder.GetAttributeId(geometry, decoderModule.NORMAL);\r\n if (normAttId !== -1) {\r\n const normAttribute = decoder.GetAttributeByUniqueId(geometry, normAttId);\r\n const normDracoData = new decoderModule.DracoFloat32Array();\r\n try {\r\n decoder.GetAttributeFloatForAllPoints(geometry, normAttribute, normDracoData);\r\n const babylonData = new Float32Array(numPoints * normAttribute.num_components());\r\n for (var i = 0; i < babylonData.length; i++) {\r\n babylonData[i] = normDracoData.GetValue(i);\r\n }\r\n onAttributeData(\"normal\", babylonData);\r\n }\r\n finally {\r\n decoderModule.destroy(normDracoData);\r\n }\r\n }\r\n // Colors\r\n const colorAttId = decoder.GetAttributeId(geometry, decoderModule.COLOR);\r\n if (colorAttId !== -1) {\r\n const colorAttribute = decoder.GetAttributeByUniqueId(geometry, colorAttId);\r\n //var colorDracoData = new decoderModule.DracoUInt32Array();\r\n const colorDracoData = new decoderModule.DracoFloat32Array();\r\n try {\r\n decoder.GetAttributeFloatForAllPoints(geometry, colorAttribute, colorDracoData);\r\n const babylonData = new Float32Array(numPoints * colorAttribute.num_components());\r\n for (var i = 0; i < babylonData.length; i++) {\r\n babylonData[i] = colorDracoData.GetValue(i);\r\n }\r\n onAttributeData(\"color\", babylonData);\r\n }\r\n finally {\r\n decoderModule.destroy(colorDracoData);\r\n }\r\n }\r\n // uvs\r\n var uvsAttId = decoder.GetAttributeId(geometry, decoderModule.TEX_COORD);\r\n if (uvsAttId !== -1) {\r\n const uvsAttribute = decoder.GetAttributeByUniqueId(geometry, uvsAttId);\r\n const uvsDracoData = new decoderModule.DracoFloat32Array();\r\n try {\r\n decoder.GetAttributeFloatForAllPoints(geometry, uvsAttribute, uvsDracoData);\r\n const babylonData = new Float32Array(numPoints * uvsAttribute.num_components());\r\n for (var i = 0; i < babylonData.length; i++) {\r\n babylonData[i] = uvsDracoData.GetValue(i);\r\n }\r\n onAttributeData(\"uv\", babylonData);\r\n }\r\n finally {\r\n decoderModule.destroy(uvsDracoData);\r\n }\r\n // uv2s\r\n const uv2sAttribute = decoder.GetAttributeByUniqueId(geometry, uvsAttId + 1);\r\n if (uv2sAttribute && uv2sAttribute.size() > 0) {\r\n const uv2sDracoData = new decoderModule.DracoFloat32Array();\r\n try {\r\n decoder.GetAttributeFloatForAllPoints(geometry, uv2sAttribute, uv2sDracoData);\r\n const babylonData = new Float32Array(numPoints * uv2sAttribute.num_components());\r\n for (var i = 0; i < babylonData.length; i++) {\r\n babylonData[i] = uv2sDracoData.GetValue(i);\r\n }\r\n onAttributeData(\"uv2\", babylonData);\r\n }\r\n finally {\r\n decoderModule.destroy(uv2sDracoData);\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n if (geometry) {\r\n decoderModule.destroy(geometry);\r\n }\r\n decoderModule.destroy(decoder);\r\n decoderModule.destroy(buffer);\r\n }\r\n}\r\nfunction decodeMesh_OLD(decoderModule, dataView, attributes, onIndicesData, onAttributeData) {\r\n const buffer = new decoderModule.DecoderBuffer();\r\n buffer.Init(dataView, dataView.byteLength);\r\n const decoder = new decoderModule.Decoder();\r\n let geometry;\r\n let status;\r\n try {\r\n const type = decoder.GetEncodedGeometryType(buffer);\r\n switch (type) {\r\n case decoderModule.TRIANGULAR_MESH:\r\n geometry = new decoderModule.Mesh();\r\n status = decoder.DecodeBufferToMesh(buffer, geometry);\r\n break;\r\n case decoderModule.POINT_CLOUD:\r\n geometry = new decoderModule.PointCloud();\r\n status = decoder.DecodeBufferToPointCloud(buffer, geometry);\r\n break;\r\n default:\r\n throw new Error(`Invalid geometry type ${type}`);\r\n }\r\n if (!status.ok() || !geometry.ptr) {\r\n throw new Error(status.error_msg());\r\n }\r\n const numPoints = geometry.num_points();\r\n if (type === decoderModule.TRIANGULAR_MESH) {\r\n const numFaces = geometry.num_faces();\r\n const faceIndices = new decoderModule.DracoInt32Array();\r\n try {\r\n const indices = new Uint32Array(numFaces * 3);\r\n for (let i = 0; i < numFaces; i++) {\r\n decoder.GetFaceFromMesh(geometry, i, faceIndices);\r\n const offset = i * 3;\r\n indices[offset + 0] = faceIndices.GetValue(0);\r\n indices[offset + 1] = faceIndices.GetValue(1);\r\n indices[offset + 2] = faceIndices.GetValue(2);\r\n }\r\n onIndicesData(indices);\r\n }\r\n finally {\r\n decoderModule.destroy(faceIndices);\r\n }\r\n }\r\n const processAttribute = (kind, attribute) => {\r\n const dracoData = new decoderModule.DracoFloat32Array();\r\n try {\r\n decoder.GetAttributeFloatForAllPoints(geometry, attribute, dracoData);\r\n const babylonData = new Float32Array(numPoints * attribute.num_components());\r\n for (let i = 0; i < babylonData.length; i++) {\r\n babylonData[i] = dracoData.GetValue(i);\r\n }\r\n onAttributeData(kind, babylonData);\r\n }\r\n finally {\r\n decoderModule.destroy(dracoData);\r\n }\r\n };\r\n if (attributes) {\r\n for (const kind in attributes) {\r\n const id = attributes[kind];\r\n const attribute = decoder.GetAttributeByUniqueId(geometry, id);\r\n processAttribute(kind, attribute);\r\n }\r\n }\r\n else {\r\n const nativeAttributeTypes = {\r\n \"position\": \"POSITION\",\r\n \"normal\": \"NORMAL\",\r\n \"color\": \"COLOR\",\r\n \"uv\": \"TEX_COORD\"\r\n };\r\n for (const kind in nativeAttributeTypes) {\r\n const id = decoder.GetAttributeId(geometry, decoderModule[nativeAttributeTypes[kind]]);\r\n if (id !== -1) {\r\n const attribute = decoder.GetAttribute(geometry, id);\r\n processAttribute(kind, attribute);\r\n // generalmente le uv2 sono codificate dopo le uv\r\n if (kind === \"uv\") {\r\n try {\r\n // uv2\r\n const uv2sAttribute = decoder.GetAttribute(geometry, id + 1);\r\n if (uv2sAttribute && uv2sAttribute.size() > 0 && decoder.GetAttributeId(uv2sAttribute) >= 0) {\r\n processAttribute(\"uv2\", uv2sAttribute);\r\n }\r\n }\r\n catch (e) {\r\n console.log(\"Unable to decode UV2 draco data: \", e);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n if (geometry) {\r\n decoderModule.destroy(geometry);\r\n }\r\n decoderModule.destroy(decoder);\r\n decoderModule.destroy(buffer);\r\n }\r\n}\r\n/**\r\n * The worker function that gets converted to a blob url to pass into a worker.\r\n */\r\nfunction worker() {\r\n let decoderPromise;\r\n onmessage = (event) => {\r\n const data = event.data;\r\n switch (data.id) {\r\n case \"init\": {\r\n const decoder = data.decoder;\r\n decoderPromise = createDecoderAsync(decoder.wasmUrl, decoder.wasmBinary, decoder.fallbackUrl);\r\n postMessage(\"done\");\r\n break;\r\n }\r\n case \"decodeMesh\": {\r\n if (!decoderPromise) {\r\n throw new Error(\"Draco decoder module is not available\");\r\n }\r\n decoderPromise.then((decoder) => {\r\n decodeMesh(decoder.module, data.dataView, data.attributes, (indices) => {\r\n postMessage({ id: \"indices\", value: indices }, [indices.buffer]);\r\n }, (kind, data) => {\r\n postMessage({ id: kind, value: data }, [data.buffer]);\r\n });\r\n postMessage(\"done\");\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nfunction getAbsoluteUrl(url) {\r\n if (typeof document !== \"object\" || typeof url !== \"string\") {\r\n return url;\r\n }\r\n return BABYLON.Tools.GetAbsoluteUrl(url);\r\n}\r\n/**\r\n * Draco compression (https://google.github.io/draco/)\r\n *\r\n * This class wraps the Draco module.\r\n *\r\n * **Encoder**\r\n *\r\n * The encoder is not currently implemented.\r\n *\r\n * **Decoder**\r\n *\r\n * By default, the configuration points to a copy of the Draco decoder files for glTF from the babylon.js preview cdn https://preview.babylonjs.com/draco_wasm_wrapper_gltf.js.\r\n *\r\n * To update the configuration, use the following code:\r\n * ```javascript\r\n * DracoCompression.Configuration = {\r\n * decoder: {\r\n * wasmUrl: \"\",\r\n * wasmBinaryUrl: \"\",\r\n * fallbackUrl: \"\",\r\n * }\r\n * };\r\n * ```\r\n *\r\n * Draco has two versions, one for WebAssembly and one for JavaScript. The decoder configuration can be set to only support Webssembly or only support the JavaScript version.\r\n * Decoding will automatically fallback to the JavaScript version if WebAssembly version is not configured or if WebAssembly is not supported by the browser.\r\n * Use `DracoCompression.DecoderAvailable` to determine if the decoder configuration is available for the current context.\r\n *\r\n * To decode Draco compressed data, get the default DracoCompression object and call decodeMeshAsync:\r\n * ```javascript\r\n * var vertexData = await DracoCompression.Default.decodeMeshAsync(data);\r\n * ```\r\n *\r\n * @see https://www.babylonjs-playground.com/#N3EK4B#0\r\n */\r\nclass DracoCompression {\r\n /**\r\n * Constructor\r\n * @param numWorkers The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.\r\n */\r\n constructor(numWorkers = DracoCompression.DefaultNumWorkers) {\r\n const decoder = DracoCompression.Configuration.decoder;\r\n const decoderWasmBinaryPromise = (decoder.wasmUrl && decoder.wasmBinaryUrl && typeof WebAssembly === \"object\")\r\n ? loadFileAsync(getAbsoluteUrl(decoder.wasmBinaryUrl))\r\n : Promise.resolve(undefined);\r\n if (numWorkers && typeof Worker === \"function\") {\r\n this._workerPoolPromise = decoderWasmBinaryPromise.then((decoderWasmBinary) => {\r\n const workerContent = `${loadScriptAsync}${createDecoderAsync}${decodeMesh}(${worker})()`;\r\n const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: \"application/javascript\" }));\r\n const workerPromises = new Array(numWorkers);\r\n for (let i = 0; i < workerPromises.length; i++) {\r\n workerPromises[i] = new Promise((resolve, reject) => {\r\n const worker = new Worker(workerBlobUrl);\r\n const onError = (error) => {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n reject(error);\r\n };\r\n const onMessage = (message) => {\r\n if (message.data === \"done\") {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n resolve(worker);\r\n }\r\n };\r\n worker.addEventListener(\"error\", onError);\r\n worker.addEventListener(\"message\", onMessage);\r\n worker.postMessage({\r\n id: \"init\",\r\n decoder: {\r\n wasmUrl: getAbsoluteUrl(decoder.wasmUrl),\r\n wasmBinary: decoderWasmBinary,\r\n fallbackUrl: getAbsoluteUrl(decoder.fallbackUrl)\r\n }\r\n });\r\n });\r\n }\r\n return Promise.all(workerPromises).then((workers) => {\r\n return new _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_0__.WorkerPool(workers);\r\n });\r\n });\r\n }\r\n else {\r\n this._decoderModulePromise = decoderWasmBinaryPromise.then((decoderWasmBinary) => {\r\n return createDecoderAsync(decoder.wasmUrl, decoderWasmBinary, decoder.fallbackUrl);\r\n });\r\n }\r\n }\r\n /**\r\n * Returns true if the decoder configuration is available.\r\n */\r\n static get DecoderAvailable() {\r\n const decoder = DracoCompression.Configuration.decoder;\r\n return !!((decoder.wasmUrl && decoder.wasmBinaryUrl && typeof WebAssembly === \"object\") || decoder.fallbackUrl);\r\n }\r\n static GetDefaultNumWorkers() {\r\n if (typeof navigator !== \"object\" || !navigator.hardwareConcurrency) {\r\n return 1;\r\n }\r\n // Use 50% of the available logical processors but capped at 4.\r\n return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 1);\r\n }\r\n /**\r\n * Default instance for the draco compression object.\r\n */\r\n static get Default() {\r\n if (!DracoCompression._Default) {\r\n DracoCompression._Default = new DracoCompression();\r\n }\r\n return DracoCompression._Default;\r\n }\r\n /**\r\n * Stop all async operations and release resources.\r\n */\r\n dispose() {\r\n //if (this._workerPoolPromise) {\r\n // this._workerPoolPromise.then((workerPool) => {\r\n // workerPool.dispose();\r\n // });\r\n //}\r\n //delete this._workerPoolPromise;\r\n //delete this._decoderModulePromise;\r\n }\r\n /**\r\n * Returns a promise that resolves when ready. Call this manually to ensure draco compression is ready before use.\r\n * @returns a promise that resolves when ready\r\n */\r\n whenReadyAsync() {\r\n if (this._workerPoolPromise) {\r\n return this._workerPoolPromise.then(() => { });\r\n }\r\n if (this._decoderModulePromise) {\r\n return this._decoderModulePromise.then(() => { });\r\n }\r\n return Promise.resolve();\r\n }\r\n /**\r\n * Decode Draco compressed mesh data to vertex data.\r\n * @param data The ArrayBuffer or ArrayBufferView for the Draco compression data\r\n * @param attributes A map of attributes from vertex buffer kinds to Draco unique ids\r\n * @returns A promise that resolves with the decoded vertex data\r\n */\r\n decodeMeshAsync(data, attributes) {\r\n const dataView = data instanceof ArrayBuffer ? new Uint8Array(data) : data;\r\n if (this._workerPoolPromise) {\r\n return this._workerPoolPromise.then((workerPool) => {\r\n return new Promise((resolve, reject) => {\r\n workerPool.push((worker, onComplete) => {\r\n const vertexData = new BABYLON.VertexData();\r\n const onError = (error) => {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n reject(error);\r\n onComplete();\r\n };\r\n const onMessage = (message) => {\r\n if (message.data === \"done\") {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n resolve(vertexData);\r\n onComplete();\r\n }\r\n else if (message.data.id === \"indices\") {\r\n vertexData.indices = message.data.value;\r\n }\r\n else {\r\n vertexData.set(message.data.value, message.data.id);\r\n }\r\n };\r\n worker.addEventListener(\"error\", onError);\r\n worker.addEventListener(\"message\", onMessage);\r\n const dataViewCopy = new Uint8Array(dataView.byteLength);\r\n dataViewCopy.set(new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength));\r\n worker.postMessage({ id: \"decodeMesh\", dataView: dataViewCopy, attributes: attributes }, [dataViewCopy.buffer]);\r\n });\r\n });\r\n });\r\n }\r\n if (this._decoderModulePromise) {\r\n return this._decoderModulePromise.then((decoder) => {\r\n const vertexData = new BABYLON.VertexData();\r\n decodeMesh(decoder.module, dataView, attributes, (indices) => {\r\n vertexData.indices = indices;\r\n }, (kind, data) => {\r\n vertexData.set(data, kind);\r\n });\r\n return vertexData;\r\n });\r\n }\r\n throw new Error(\"Draco decoder module is not available\");\r\n }\r\n}\r\n/**\r\n * The configuration. Defaults to the following urls:\r\n * - wasmUrl: \"https://zakekecdn.azureedge.net/cdn/Scripts/draco/1.3.4/rev.1/draco_wasm_wrapper.js\"\r\n * - wasmBinaryUrl: \"https://zakekecdn.azureedge.net/cdn/Scripts/draco/1.3.4/rev.1/draco_decoder.wasm\"\r\n * - fallbackUrl: \"https://zakekecdn.azureedge.net/cdn/Scripts/draco/1.3.4/rev.1/draco_decoder.js\"\r\n */\r\nDracoCompression.Configuration = {\r\n decoder: {\r\n //wasmUrl: getAbsoluteUrl(\"/Scripts/libs/draco/draco_wasm_wrapper.js\"),\r\n //wasmBinaryUrl: getAbsoluteUrl(\"/Scripts/libs/draco/draco_decoder.wasm\"),\r\n //fallbackUrl: getAbsoluteUrl(\"/Scripts/libs/draco/draco_decoder.js\")\r\n /*\r\n wasmUrl: \"https://preview.babylonjs.com/draco_wasm_wrapper_gltf.js\",\r\n wasmBinaryUrl: \"https://preview.babylonjs.com/draco_decoder_gltf.wasm\",\r\n fallbackUrl: \"https://preview.babylonjs.com/draco_decoder_gltf.js\"\r\n */\r\n wasmUrl: \"https://zakekecdn.azureedge.net/cdn/Scripts/draco/1.3.4/rev.1/draco_wasm_wrapper.js\",\r\n wasmBinaryUrl: \"https://zakekecdn.azureedge.net/cdn/Scripts/draco/1.3.4/rev.1/draco_decoder.wasm\",\r\n fallbackUrl: \"https://zakekecdn.azureedge.net/cdn/Scripts/draco/1.3.4/rev.1/draco_decoder.js\"\r\n }\r\n};\r\n/**\r\n * Default number of workers to create when creating the draco compression object.\r\n */\r\nDracoCompression.DefaultNumWorkers = DracoCompression.GetDefaultNumWorkers();\r\nDracoCompression._Default = null;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/Environment/EnvironmentManager.ts\":\n/*!*****************************************************************!*\\\n !*** ../../3D/src/Components/Environment/EnvironmentManager.ts ***!\n \\*****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EnvironmentManager\": () => (/* binding */ EnvironmentManager)\n/* harmony export */ });\n/* harmony import */ var _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Misc/DefaultAssetUrls */ \"../../3D/src/Misc/DefaultAssetUrls.ts\");\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n\r\n\r\nclass EnvironmentManager {\r\n constructor(zkScene, scene, isHologram = false) {\r\n this._originalSceneClearColor = null;\r\n this._originalCameraAutoRotate = null;\r\n this._environmentHelper = null;\r\n this._shadowLight = null;\r\n this._isHologram = false;\r\n this._zkScene = zkScene;\r\n this._scene = scene;\r\n this._sceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_1__.SceneHelper(this._scene);\r\n this._isHologram = isHologram;\r\n }\r\n get scene() {\r\n return this._scene;\r\n }\r\n get isHologram() {\r\n return this._isHologram;\r\n }\r\n set isHologram(value) {\r\n this._isHologram = value;\r\n this.update();\r\n }\r\n dispose() {\r\n if (this._shadowLight)\r\n this._shadowLight.dispose();\r\n if (this._environmentHelper) {\r\n this._environmentHelper.dispose();\r\n this._environmentHelper = null;\r\n }\r\n ;\r\n this.removeOldSkybox();\r\n }\r\n update() {\r\n this.configureScene();\r\n this.configureCamera();\r\n this.configureSkybox();\r\n }\r\n configureSkybox() {\r\n this.removeOldSkybox();\r\n if (!this._isHologram)\r\n this.createSkybox();\r\n }\r\n removeOldSkybox() {\r\n const mesh = this.getSkyboxMesh();\r\n const material = this.getSkyboxMaterial();\r\n if (mesh)\r\n mesh.dispose();\r\n if (material)\r\n material.dispose();\r\n }\r\n createSkybox() {\r\n var _a, _b;\r\n const generalConfig = this.getGeneralConfig();\r\n const environmentConfig = this.getEnvironmentConfig();\r\n const skyboxConfig = this.getSkyboxConfig();\r\n if (skyboxConfig && skyboxConfig.get(\"createSkybox\") != undefined && skyboxConfig.get(\"createSkybox\")) {\r\n let sizeAuto = true;\r\n if (environmentConfig &&\r\n environmentConfig.get(\"sizeAuto\") != undefined &&\r\n environmentConfig.get(\"sizeAuto\") != null &&\r\n typeof (environmentConfig.get(\"sizeAuto\")) === \"boolean\")\r\n sizeAuto = environmentConfig.get(\"sizeAuto\");\r\n let skyboxSize = null;\r\n if (skyboxConfig.get(\"size\") != undefined && typeof (skyboxConfig.get(\"size\")) === 'number')\r\n skyboxSize = skyboxConfig.get(\"size\");\r\n let url = null;\r\n if (skyboxConfig.get(\"texture\") != undefined && typeof (skyboxConfig.get(\"texture\")) === \"string\")\r\n url = skyboxConfig.get(\"texture\");\r\n let blur = 0;\r\n if (skyboxConfig.get(\"blur\") > 0)\r\n blur = skyboxConfig.get(\"blur\");\r\n let extensions = null;\r\n if (skyboxConfig.get(\"extensions\") != undefined && skyboxConfig.get(\"extensions\") != null &&\r\n Object.prototype.toString.call(skyboxConfig.get(\"extensions\")) === '[object Array]' &&\r\n ((_a = skyboxConfig.get(\"extensions\")) === null || _a === void 0 ? void 0 : _a.length) === 6) {\r\n extensions = skyboxConfig.get(\"extensions\");\r\n }\r\n let files = null;\r\n if (skyboxConfig.get(\"files\") != undefined && skyboxConfig.get(\"files\") != null &&\r\n Object.prototype.toString.call(skyboxConfig.get(\"files\")) === '[object Array]' &&\r\n ((_b = skyboxConfig.get(\"files\")) === null || _b === void 0 ? void 0 : _b.length) === 6) {\r\n files = skyboxConfig.get(\"files\");\r\n }\r\n if (url) {\r\n let texture = null;\r\n if (url.endsWith(\".dds\"))\r\n texture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene);\r\n else if (url.endsWith(\".hdr\"))\r\n texture = new BABYLON.HDRCubeTexture(url, this._scene, 256, false, true, false, true);\r\n else if (url.endsWith(\".env\")) {\r\n texture = new BABYLON.CubeTexture(url, this._scene, null, false, null, undefined, null, undefined, true, undefined, true);\r\n }\r\n else if (url.endsWith(\".basis\")) {\r\n texture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene);\r\n }\r\n else if (extensions && files) {\r\n texture = new BABYLON.CubeTexture(url, this._scene, extensions, false, files, undefined);\r\n }\r\n else {\r\n texture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene);\r\n }\r\n if (texture) {\r\n let scale = 1000;\r\n if (skyboxSize != null && skyboxSize > 0)\r\n scale = skyboxSize;\r\n else\r\n scale = (this._scene.activeCamera.maxZ - this._scene.activeCamera.minZ) / 2;\r\n const hdrSkybox = this._scene.createDefaultSkybox(texture, true, scale, blur, false);\r\n if (hdrSkybox) {\r\n hdrSkybox.metadata = { isSkyboxMesh: true, isRealMesh: false };\r\n hdrSkybox.doNotSerialize = true;\r\n const material = hdrSkybox.material;\r\n if (material) {\r\n material.metadata = { isSkyboxMaterial: true, isRealMaterial: false };\r\n material.doNotSerialize = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n getSkyboxMesh() {\r\n let mesh = this._scene.meshes.find(m => m.metadata && m.metadata.isSkyboxMesh);\r\n return mesh || null;\r\n }\r\n getSkyboxMaterial() {\r\n let material = this._scene.materials.find(m => m.metadata && m.metadata.isSkyboxMaterial);\r\n if (!material)\r\n return null;\r\n return material;\r\n }\r\n getSkyboxTexture() {\r\n const material = this.getSkyboxMaterial();\r\n if (material)\r\n return material.reflectionTexture;\r\n return null;\r\n }\r\n update_OLD() {\r\n this.configureScene();\r\n this.configureCamera();\r\n this.configureEnvironment();\r\n }\r\n configureScene() {\r\n if (!this._scene)\r\n return;\r\n this._originalSceneClearColor = this._scene.clearColor.clone();\r\n if (this._isHologram) {\r\n this._scene.clearColor = new BABYLON.Color4(0, 0, 0, 1);\r\n return;\r\n }\r\n var generalConfig = this.getGeneralConfig();\r\n if (generalConfig) {\r\n let alpha = null;\r\n if (generalConfig.get(\"backgroundAlpha\") != undefined && generalConfig.get(\"backgroundAlpha\") != null && typeof (generalConfig.get(\"backgroundAlpha\")) === 'number')\r\n alpha = generalConfig.get(\"backgroundAlpha\");\r\n let color = null;\r\n if (generalConfig.get(\"backgroundColor\") != undefined && typeof (generalConfig.get(\"backgroundColor\")) === \"string\" && this.isValidHexColor(generalConfig.get(\"backgroundColor\")))\r\n color = generalConfig.get(\"backgroundColor\");\r\n // Clear color\r\n if (alpha || color) {\r\n this._originalSceneClearColor = this._scene.clearColor;\r\n let oldcc = this._scene.clearColor;\r\n if (color != null) {\r\n let cc = BABYLON.Color3.FromHexString(color);\r\n oldcc.r = cc.r;\r\n oldcc.g = cc.g;\r\n oldcc.b = cc.b;\r\n }\r\n if (alpha != null) {\r\n oldcc.a = alpha;\r\n }\r\n }\r\n }\r\n }\r\n configureEnvironment() {\r\n if (this._environmentHelper) {\r\n this._environmentHelper.dispose();\r\n this._environmentHelper = null;\r\n }\r\n ;\r\n if (this._shadowLight) {\r\n this._shadowLight.dispose();\r\n this._shadowLight = null;\r\n }\r\n if (this._sceneHelper.countSceneMeshes() == 0)\r\n return;\r\n var options = this.buildEnvironmentHelperOptions();\r\n if (options) {\r\n this._environmentHelper = this._scene.createDefaultEnvironment(options);\r\n /*if (this._environmentHelper && options.mainColor != undefined)\r\n this._environmentHelper.setMainColor(options.mainColor);*/\r\n // Make all environment not serializable\r\n const nodes = this.getEnvironmentSceneNodes();\r\n for (let i = 0; i < nodes.length; i++) {\r\n const node = nodes[i];\r\n if (node) {\r\n this.setDoNotSerialize(node);\r\n if (!node.metadata)\r\n node.metadata = {};\r\n node.metadata.isEnvironmentNode = true;\r\n if (node instanceof BABYLON.AbstractMesh) {\r\n node.isPickable = false;\r\n node.metadata.isRealMesh = false;\r\n }\r\n if (node instanceof BABYLON.Material)\r\n node.metadata.isRealMaterial = false;\r\n }\r\n }\r\n }\r\n }\r\n buildEnvironmentHelperOptions() {\r\n let options = null;\r\n const generalConfig = this.getGeneralConfig();\r\n const environmentConfig = this.getEnvironmentConfig();\r\n const skyboxConfig = this.getSkyboxConfig();\r\n const groundConfig = this.getGroundConfig();\r\n const cameraConfig = this.getCameraConfig();\r\n // La environment non viene più gestita come parametro del viewer,\r\n // bensì come impostazione generale della scena\r\n /*\r\n if (generalConfig && generalConfig.get(\"environmentTexture\") != undefined) {\r\n options = options || {};\r\n options.environmentTexture = generalConfig.get(\"environmentTexture\");\r\n }\r\n */\r\n let environmentTexture = null;\r\n if (generalConfig && generalConfig.get(\"environmentTexture\") != undefined && generalConfig.get(\"environmentTexture\") != null)\r\n environmentTexture = generalConfig.get(\"environmentTexture\");\r\n let contrast = null;\r\n if (cameraConfig && cameraConfig.get(\"contrast\") != undefined && typeof (cameraConfig.get(\"contrast\")) === 'number')\r\n contrast = cameraConfig.get(\"contrast\");\r\n let exposure = null;\r\n if (cameraConfig && cameraConfig.get(\"exposure\") != undefined && typeof (cameraConfig.get(\"exposure\")) === 'number')\r\n exposure = cameraConfig.get(\"exposure\");\r\n let toneMappingEnabled = null;\r\n if (cameraConfig && cameraConfig.get(\"toneMappingEnabled\") != undefined && typeof (cameraConfig.get(\"toneMappingEnabled\")) === 'boolean')\r\n toneMappingEnabled = cameraConfig.get(\"toneMappingEnabled\");\r\n let sizeAuto = null;\r\n if (environmentConfig &&\r\n environmentConfig.get(\"sizeAuto\") != undefined &&\r\n environmentConfig.get(\"sizeAuto\") != null &&\r\n typeof (environmentConfig.get(\"sizeAuto\")) === \"boolean\")\r\n sizeAuto = environmentConfig.get(\"sizeAuto\");\r\n let mainColor = null;\r\n if (environmentConfig && environmentConfig.get(\"mainColor\") != undefined && typeof (environmentConfig.get(\"mainColor\")) === \"string\" && this.isValidHexColor(environmentConfig.get(\"mainColor\")))\r\n mainColor = environmentConfig.get(\"mainColor\");\r\n let groundSize = null;\r\n if (groundConfig && groundConfig.get(\"size\") != undefined && typeof (groundConfig.get(\"size\")) === 'number')\r\n groundSize = groundConfig.get(\"size\");\r\n let groundColor = null;\r\n if (groundConfig && groundConfig.get(\"color\") != undefined && typeof (groundConfig.get(\"color\")) === \"string\" && this.isValidHexColor(groundConfig.get(\"color\")))\r\n groundColor = groundConfig.get(\"color\");\r\n let enableShadow = null;\r\n if (groundConfig && groundConfig.get(\"enableShadow\") != undefined && typeof (groundConfig.get(\"enableShadow\")) === \"boolean\")\r\n enableShadow = groundConfig.get(\"enableShadow\");\r\n let shadowLevel = null;\r\n if (groundConfig && groundConfig.get(\"shadowLevel\") != undefined && typeof (groundConfig.get(\"shadowLevel\")) === 'number')\r\n shadowLevel = groundConfig.get(\"shadowLevel\");\r\n let enableMirror = null;\r\n if (groundConfig && groundConfig.get(\"enableMirror\") != undefined && typeof (groundConfig.get(\"enableMirror\")) === \"boolean\")\r\n enableMirror = groundConfig.get(\"enableMirror\");\r\n let groundTexture = null;\r\n if (groundConfig && groundConfig.get(\"texture\") != undefined && typeof (groundConfig.get(\"texture\")) === \"string\")\r\n groundTexture = groundConfig.get(\"texture\");\r\n let groundOpacity = null;\r\n if (groundConfig && groundConfig.get(\"opacity\") != undefined && typeof (groundConfig.get(\"opacity\")) === 'number')\r\n groundOpacity = groundConfig.get(\"opacity\");\r\n let mirrorBlurKernel = null;\r\n if (groundConfig && groundConfig.get(\"mirrorBlurKernel\") != undefined && typeof (groundConfig.get(\"mirrorBlurKernel\")) === 'number')\r\n mirrorBlurKernel = groundConfig.get(\"mirrorBlurKernel\");\r\n let skyboxSize = null;\r\n if (skyboxConfig && skyboxConfig.get(\"size\") != undefined && typeof (skyboxConfig.get(\"size\")) === 'number')\r\n skyboxSize = skyboxConfig.get(\"size\");\r\n let skyboxColor = null;\r\n if (skyboxConfig && skyboxConfig.get(\"color\") != undefined && typeof (skyboxConfig.get(\"color\")) === \"string\" && this.isValidHexColor(skyboxConfig.get(\"color\")))\r\n skyboxColor = skyboxConfig.get(\"color\");\r\n let skyboxTexture = null;\r\n if (skyboxConfig && skyboxConfig.get(\"texture\") != undefined && typeof (skyboxConfig.get(\"texture\")) === \"string\")\r\n skyboxTexture = skyboxConfig.get(\"texture\");\r\n let setupImageProcessing = environmentTexture != null ||\r\n contrast != null ||\r\n exposure != null ||\r\n toneMappingEnabled;\r\n if (skyboxConfig || groundConfig || setupImageProcessing) {\r\n options = options || {\r\n createSkybox: skyboxConfig && skyboxConfig.get(\"createSkybox\"),\r\n createGround: groundConfig && groundConfig.get(\"createGround\")\r\n };\r\n // Disabilitato per il momento perché da problemi nel rendering di alcuni material\r\n options.setupImageProcessing = false;\r\n if (environmentTexture != null) {\r\n options.environmentTexture = environmentTexture;\r\n }\r\n if (options.createSkybox || options.createGround) {\r\n // General Environment options\r\n if (sizeAuto != null) {\r\n options.sizeAuto = sizeAuto;\r\n }\r\n if (mainColor != null) {\r\n options.mainColor = BABYLON.Color3.FromHexString(mainColor);\r\n }\r\n // Ground options\r\n if (options.createGround) {\r\n if (!options.sizeAuto && groundSize != null) {\r\n options.groundSize = groundSize;\r\n }\r\n if (!options.mainColor && groundColor != null)\r\n options.groundColor = BABYLON.Color3.FromHexString(groundColor);\r\n if (enableShadow != null) {\r\n options.enableGroundShadow = enableShadow;\r\n }\r\n if (options.enableGroundShadow) {\r\n this.createShadowLight();\r\n }\r\n if (shadowLevel != null) {\r\n options.groundShadowLevel = shadowLevel;\r\n }\r\n if (enableMirror != null) {\r\n options.enableGroundMirror = enableMirror;\r\n }\r\n if (groundTexture != null) {\r\n options.groundTexture = groundTexture;\r\n }\r\n if (groundOpacity != null) {\r\n options.groundOpacity = groundOpacity;\r\n }\r\n if (options.enableGroundMirror && mirrorBlurKernel != null) {\r\n options.groundMirrorBlurKernel = mirrorBlurKernel;\r\n }\r\n }\r\n // Skybox options\r\n if (options.createSkybox) {\r\n if (!options.sizeAuto && skyboxSize != null) {\r\n options.skyboxSize = skyboxSize;\r\n }\r\n if (!options.mainColor && skyboxColor != null)\r\n options.skyboxColor = BABYLON.Color3.FromHexString(skyboxColor);\r\n if (skyboxTexture != null) {\r\n options.skyboxTexture = skyboxTexture;\r\n }\r\n }\r\n // test\r\n if (cameraConfig) {\r\n if (contrast != null) {\r\n options.cameraContrast = contrast;\r\n }\r\n if (exposure != null) {\r\n options.cameraExposure = exposure;\r\n }\r\n if (toneMappingEnabled != null) {\r\n options.toneMappingEnabled = toneMappingEnabled;\r\n }\r\n }\r\n }\r\n }\r\n // TEST\r\n // Imposto gli url di default, se necessario. Così evito che vengano usati gli url \r\n // di default di babylon\r\n if (options) {\r\n if (!options.environmentTexture && !this._scene.environmentTexture)\r\n options.environmentTexture = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_0__.DefaultAssetUrls.Environment.EnvironmentTextureCDNUrl;\r\n if (options.createGround != undefined && options.createGround && !options.groundTexture) {\r\n options.groundTexture = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_0__.DefaultAssetUrls.Environment.GroundTextureCDNUrl;\r\n }\r\n if (options.createSkybox != undefined && options.createSkybox && !options.skyboxTexture) {\r\n options.skyboxTexture = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_0__.DefaultAssetUrls.Environment.SkyboxTextureCDNUrl;\r\n }\r\n }\r\n return options;\r\n }\r\n createShadowLight() {\r\n if (this._shadowLight) {\r\n this._shadowLight.dispose();\r\n this._shadowLight = null;\r\n }\r\n if (this._scene && this._sceneHelper) {\r\n var bounds = this._sceneHelper.getSceneBoundingInfo();\r\n if (bounds && bounds.boundingBox) {\r\n const vectorsWorld = bounds.boundingBox.vectorsWorld;\r\n const width = Number(vectorsWorld[1].x - (vectorsWorld[0].x));\r\n const height = Number(vectorsWorld[1].y - (vectorsWorld[0].y));\r\n const depth = Number(vectorsWorld[1].z - (vectorsWorld[0].z));\r\n const center = bounds.boundingBox.centerWorld;\r\n const max = bounds.boundingBox.maximumWorld;\r\n const x = center.x + width * 2.67;\r\n const y = center.y + height * 4.5;\r\n const z = center.z + depth * 1;\r\n const origin = new BABYLON.Vector3(x, y, z);\r\n const target = center;\r\n let direction = target.subtract(origin);\r\n direction = BABYLON.Vector3.Normalize(direction);\r\n direction = new BABYLON.Vector3(-2, -3, 1);\r\n this._shadowLight = new BABYLON.DirectionalLight(\"shadowLight\", direction, this._scene);\r\n this._shadowLight.position = origin;\r\n this._shadowLight.intensity = 0.1;\r\n var generator = new BABYLON.ShadowGenerator(512, this._shadowLight);\r\n generator.useBlurExponentialShadowMap = true;\r\n generator.useKernelBlur = true;\r\n generator.usePercentageCloserFiltering = true;\r\n generator.blurKernel = 32;\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (!this.isEnvironmentNode(mesh) &&\r\n this._sceneHelper.isRealMesh(mesh)) {\r\n mesh.receiveShadows = false;\r\n generator.addShadowCaster(mesh);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n configureCamera() {\r\n if (!this._scene || !this._scene.activeCamera || !(this._scene.activeCamera instanceof BABYLON.ArcRotateCamera))\r\n return;\r\n const cameraConfig = this.getCameraConfig();\r\n if (cameraConfig) {\r\n const camera = this._scene.activeCamera;\r\n this._originalCameraAutoRotate = camera.useAutoRotationBehavior;\r\n let autoRotate = cameraConfig.get(\"autoRotate\");\r\n camera.useAutoRotationBehavior = autoRotate != undefined && autoRotate;\r\n }\r\n }\r\n sanityCheck() {\r\n return this._scene &&\r\n this._scene instanceof BABYLON.Scene &&\r\n this._zkScene &&\r\n this._zkScene instanceof Zakeke.Scene &&\r\n this._zkScene.get(\"config\") != undefined &&\r\n this._zkScene.get(\"config\") != null &&\r\n this._zkScene.get(\"config\") instanceof Zakeke.SceneConfig;\r\n }\r\n getSceneConfig() {\r\n if (this.sanityCheck()) {\r\n let config = this._zkScene.getSceneConfig();\r\n if (config != undefined && config != null)\r\n return config;\r\n }\r\n return null;\r\n }\r\n getGeneralConfig() {\r\n if (this.sanityCheck()) {\r\n let config = this._zkScene.getGeneralConfig();\r\n if (config != undefined && config != null)\r\n return config;\r\n }\r\n return null;\r\n }\r\n getEnvironmentConfig() {\r\n if (this.sanityCheck()) {\r\n let config = this._zkScene.getEnvironmentConfig();\r\n if (config != undefined && config != null)\r\n return config;\r\n }\r\n return null;\r\n }\r\n getSkyboxConfig() {\r\n if (this.sanityCheck()) {\r\n let config = this._zkScene.getSkyboxConfig();\r\n if (config != undefined && config != null)\r\n return config;\r\n }\r\n return null;\r\n }\r\n getGroundConfig() {\r\n if (this.sanityCheck()) {\r\n let config = this._zkScene.getGroundConfig();\r\n if (config != undefined && config != null)\r\n return config;\r\n }\r\n return null;\r\n }\r\n getCameraConfig() {\r\n if (this.sanityCheck()) {\r\n let config = this._zkScene.getCameraConfig();\r\n if (config != undefined && config != null)\r\n return config;\r\n }\r\n return null;\r\n }\r\n isValidHexColor(hexColor) {\r\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hexColor);\r\n }\r\n getEnvironmentSceneNodes() {\r\n const nodes = [];\r\n if (this._environmentHelper) {\r\n if (this._environmentHelper.rootMesh)\r\n nodes.push(this._environmentHelper.rootMesh);\r\n if (this._environmentHelper.skybox)\r\n nodes.push(this._environmentHelper.skybox);\r\n if (this._environmentHelper.skyboxMaterial)\r\n nodes.push(this._environmentHelper.skyboxMaterial);\r\n if (this._environmentHelper.skyboxTexture)\r\n nodes.push(this._environmentHelper.skyboxTexture);\r\n if (this._environmentHelper.ground)\r\n nodes.push(this._environmentHelper.ground);\r\n if (this._environmentHelper.groundMaterial)\r\n nodes.push(this._environmentHelper.groundMaterial);\r\n if (this._environmentHelper.groundTexture)\r\n nodes.push(this._environmentHelper.groundTexture);\r\n if (this._environmentHelper.groundMirror)\r\n nodes.push(this._environmentHelper.groundMirror);\r\n if (this._shadowLight)\r\n nodes.push(this._shadowLight);\r\n }\r\n return nodes;\r\n }\r\n isEnvironmentNode(node) {\r\n const nodes = this.getEnvironmentSceneNodes();\r\n for (let i = 0; i < nodes.length; i++) {\r\n if (node == nodes[i])\r\n return true;\r\n }\r\n return false;\r\n }\r\n setDoNotSerialize(node) {\r\n if (node instanceof BABYLON.AbstractMesh ||\r\n node instanceof BABYLON.Material ||\r\n node instanceof BABYLON.Light) {\r\n node.doNotSerialize = true;\r\n }\r\n }\r\n reset() {\r\n if (!this._scene)\r\n return;\r\n if (this._originalSceneClearColor)\r\n this._scene.clearColor = this._originalSceneClearColor;\r\n if (this._originalCameraAutoRotate != null && this._scene.activeCamera && this._scene.activeCamera instanceof BABYLON.ArcRotateCamera)\r\n this._scene.activeCamera.useAutoRotationBehavior = this._originalCameraAutoRotate;\r\n if (this._environmentHelper)\r\n this._environmentHelper.updateOptions({});\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/Glow/GlowManager.ts\":\n/*!***************************************************!*\\\n !*** ../../3D/src/Components/Glow/GlowManager.ts ***!\n \\***************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"GlowManager\": () => (/* binding */ GlowManager)\n/* harmony export */ });\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n\r\nclass GlowManager {\r\n constructor(zkScene, scene) {\r\n this._glowLayer = null;\r\n this._zkScene = zkScene;\r\n this._scene = scene;\r\n this._sceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper(this._scene);\r\n this._glowLayer = this._scene.getGlowLayerByName(\"glow\");\r\n }\r\n get enabled() {\r\n const glowConfig = this.getGlowConfig();\r\n let enabled = null;\r\n if (glowConfig && glowConfig.get(\"enabled\") != undefined && typeof (glowConfig.get(\"enabled\")) === 'boolean')\r\n enabled = glowConfig.get(\"enabled\");\r\n return false;\r\n }\r\n set enabled(value) {\r\n var glowConfig = this.getOrCreateGlowConfig();\r\n if (glowConfig)\r\n glowConfig.set(\"enabled\", value);\r\n this.update();\r\n }\r\n get intensity() {\r\n const glowConfig = this.getGlowConfig();\r\n let intensity = null;\r\n if (glowConfig && glowConfig.get(\"intensity\") != undefined && typeof (glowConfig.get(\"intensity\")) === 'number')\r\n intensity = glowConfig.get(\"intensity\");\r\n return 1;\r\n }\r\n set intensity(value) {\r\n var glowConfig = this.getOrCreateGlowConfig();\r\n if (glowConfig)\r\n glowConfig.set(\"intensity\", value);\r\n this.update();\r\n }\r\n get blurSize() {\r\n const glowConfig = this.getGlowConfig();\r\n let intensity = null;\r\n if (glowConfig && glowConfig.get(\"blurSize\") != undefined && typeof (glowConfig.get(\"blurSize\")) === 'number')\r\n intensity = glowConfig.get(\"blurSize\");\r\n return 1;\r\n }\r\n set blurSize(value) {\r\n var glowConfig = this.getOrCreateGlowConfig();\r\n if (glowConfig)\r\n glowConfig.set(\"blurSize\", value);\r\n this.update();\r\n }\r\n dispose() {\r\n this.destroyGlowLayer();\r\n }\r\n destroyGlowLayer() {\r\n if (this._glowLayer) {\r\n this._glowLayer.dispose();\r\n this._glowLayer = null;\r\n }\r\n }\r\n createOrUpdateGlowLayer(intensity, blurSize) {\r\n if (!this._glowLayer)\r\n this._glowLayer = new BABYLON.GlowLayer(\"glow\", this._scene);\r\n if (this._glowLayer) {\r\n this._glowLayer.intensity = intensity;\r\n this._glowLayer.blurKernelSize = blurSize;\r\n }\r\n }\r\n update() {\r\n if (!this._scene)\r\n return;\r\n var glowConfig = this.getGlowConfig();\r\n if (glowConfig) {\r\n const enabled = this.enabled;\r\n const intensity = this.intensity;\r\n const blurSize = this.blurSize;\r\n if (enabled) {\r\n this.createOrUpdateGlowLayer(intensity, blurSize);\r\n }\r\n else {\r\n this.destroyGlowLayer();\r\n }\r\n }\r\n else {\r\n this.destroyGlowLayer();\r\n }\r\n }\r\n turnOffGlow() {\r\n this.destroyGlowLayer();\r\n }\r\n turnOnGlow() {\r\n this.update();\r\n }\r\n sanityCheck() {\r\n return this._scene &&\r\n this._scene instanceof BABYLON.Scene &&\r\n this._zkScene &&\r\n this._zkScene instanceof Zakeke.Scene &&\r\n this._zkScene.get(\"config\") != undefined &&\r\n this._zkScene.get(\"config\") != null &&\r\n this._zkScene.get(\"config\") instanceof Zakeke.SceneConfig;\r\n }\r\n isGlowEnabledForMesh(mesh) {\r\n if (mesh)\r\n return mesh.metadata && mesh.metadata.enableGlow;\r\n return false;\r\n }\r\n // La possibilità di abilitare solo alcune mesh al glow viene disabilitata\r\n // perché c'è il problema che l'effetto glow è visibile attraverso le mesh\r\n // per cui il glow è diabilitato\r\n enableGlowForMesh(mesh) {\r\n }\r\n disableGlowForMesh(mesh) {\r\n }\r\n getGlowConfig() {\r\n if (this.sanityCheck()) {\r\n let config = this._zkScene.getGlowConfig();\r\n if (config)\r\n return config;\r\n }\r\n return null;\r\n }\r\n getOrCreateGlowConfig() {\r\n if (this.sanityCheck()) {\r\n return this._zkScene.getOrCreateGlowConfig();\r\n }\r\n return null;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/IncrementalFiles/IncrementalFiles.ts\":\n/*!********************************************************************!*\\\n !*** ../../3D/src/Components/IncrementalFiles/IncrementalFiles.ts ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"IncrementalFiles\": () => (/* binding */ IncrementalFiles)\n/* harmony export */ });\n/* harmony import */ var _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Misc/WorkerPool */ \"../../3D/src/Misc/WorkerPool.ts\");\n\r\nfunction loadScriptAsync(url) {\r\n if (typeof importScripts === \"function\") {\r\n importScripts(url);\r\n return Promise.resolve();\r\n }\r\n else {\r\n return new Promise((resolve, reject) => {\r\n BABYLON.Tools.LoadScript(url, () => {\r\n resolve();\r\n }, (message) => {\r\n reject(new Error(message));\r\n });\r\n });\r\n }\r\n}\r\nfunction importWorkerScriptsAsync(urls) {\r\n if (urls.length == 0)\r\n return Promise.resolve();\r\n let promises = [];\r\n for (let i = 0; i < urls.length; i++) {\r\n promises.push(loadScriptAsync(urls[i]));\r\n }\r\n return new Promise((resolve) => {\r\n Promise.all(promises).then(() => resolve());\r\n });\r\n}\r\nfunction makeIncrementalFiles(sceneJson, version, options) {\r\n const makeIncremental = new MakeIncremental();\r\n const files = makeIncremental.getSceneIncrementalFiles(sceneJson, version, options);\r\n return files;\r\n}\r\n/**\r\n * The worker function that gets converted to a blob url to pass into a worker.\r\n */\r\nfunction worker() {\r\n let initializerPromise;\r\n onmessage = (event) => {\r\n const data = event.data;\r\n switch (data.id) {\r\n case \"init\": {\r\n const urls = data.urls;\r\n initializerPromise = importWorkerScriptsAsync(urls);\r\n postMessage(\"done\");\r\n break;\r\n }\r\n case \"makeIncremental\": {\r\n if (!initializerPromise) {\r\n throw new Error(\"Worker not initialized\");\r\n }\r\n initializerPromise.then(() => {\r\n const sceneJson = data.sceneJson;\r\n const version = data.version;\r\n const options = data.options;\r\n const files = makeIncrementalFiles(sceneJson, version, options);\r\n postMessage({ id: \"result\", files: files });\r\n postMessage(\"done\");\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nfunction getAbsoluteUrl(url) {\r\n if (typeof document !== \"object\" || typeof url !== \"string\") {\r\n return url;\r\n }\r\n return BABYLON.Tools.GetAbsoluteUrl(url);\r\n}\r\n// La classe si occupa di eseguire la suddivisione (ed eventuale compressione Draco)\r\n// in un worker thread. Per la reale suddivisione utilizza la classe MakeIncrmental\r\nclass IncrementalFiles {\r\n /**\r\n * Constructor\r\n * @param numWorkers The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.\r\n */\r\n constructor(numWorkers = IncrementalFiles.DefaultNumWorkers) {\r\n const scriptUrls = ['/Scripts/libs/underscore/underscore.js',\r\n '/Scripts/libs/backbone/backbone.js',\r\n '/Scripts/libs/backbone/backbone-associations.js',\r\n '/Scripts/libs/msgpack/msgpack.min.js',\r\n '/Scripts/libs/draco/draco_encoder.js',\r\n '/Scripts/composer/models/model.js',\r\n '/Scripts/composer/helpers/utils.js',\r\n '/Scripts/3D/dist/MakeIncremental.js'\r\n ].map(url => getAbsoluteUrl(url));\r\n if (numWorkers && typeof Worker === \"function\") {\r\n const workerContent = `${loadScriptAsync}${importWorkerScriptsAsync}${makeIncrementalFiles}(${worker})()`;\r\n const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: \"application/javascript\" }));\r\n const workerPromises = new Array(numWorkers);\r\n for (let i = 0; i < workerPromises.length; i++) {\r\n workerPromises[i] = new Promise((resolve, reject) => {\r\n const worker = new Worker(workerBlobUrl);\r\n const onError = (error) => {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n reject(error);\r\n };\r\n const onMessage = (message) => {\r\n if (message.data === \"done\") {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n resolve(worker);\r\n }\r\n };\r\n worker.addEventListener(\"error\", onError);\r\n worker.addEventListener(\"message\", onMessage);\r\n worker.postMessage({\r\n id: \"init\",\r\n urls: scriptUrls\r\n });\r\n });\r\n }\r\n this._workerPoolPromise = Promise.all(workerPromises).then((workers) => {\r\n return new _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_0__.WorkerPool(workers);\r\n });\r\n }\r\n }\r\n static GetDefaultNumWorkers() {\r\n if (typeof navigator !== \"object\" || !navigator.hardwareConcurrency) {\r\n return 1;\r\n }\r\n // Use 50% of the available logical processors but capped at 4.\r\n return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 2);\r\n }\r\n /**\r\n * Default instance for the incremental file maker\r\n */\r\n static get Default() {\r\n if (!IncrementalFiles._Default) {\r\n IncrementalFiles._Default = new IncrementalFiles();\r\n }\r\n return IncrementalFiles._Default;\r\n }\r\n dispose() {\r\n //if (this._workerPoolPromise) {\r\n // this._workerPoolPromise.then((workerPool) => {\r\n // workerPool.dispose();\r\n // });\r\n //}\r\n //delete this._workerPoolPromise;\r\n }\r\n /**\r\n * Returns a promise that resolves when ready. Call this manually to ensure draco compression is ready before use.\r\n * @returns a promise that resolves when ready\r\n */\r\n whenReadyAsync() {\r\n if (this._workerPoolPromise) {\r\n return this._workerPoolPromise.then(() => { });\r\n }\r\n return Promise.resolve();\r\n }\r\n getIncrementalFilesAsync(sceneJson, version, options) {\r\n if (this._workerPoolPromise) {\r\n return this._workerPoolPromise.then((workerPool) => {\r\n return new Promise((resolve, reject) => {\r\n workerPool.push((worker, onComplete) => {\r\n let files = [];\r\n const onError = (error) => {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n reject(error);\r\n onComplete();\r\n };\r\n const onMessage = (message) => {\r\n if (message.data === \"done\") {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n resolve(files);\r\n onComplete();\r\n }\r\n else if (message.data.id === \"result\") {\r\n files = message.data.files;\r\n }\r\n };\r\n worker.addEventListener(\"error\", onError);\r\n worker.addEventListener(\"message\", onMessage);\r\n worker.postMessage({ id: \"makeIncremental\", sceneJson: sceneJson, version: version, options: options });\r\n });\r\n });\r\n });\r\n }\r\n throw new Error(\"Incremental file worker is not available\");\r\n }\r\n}\r\n/**\r\n * Default number of workers to create when splitting files\r\n */\r\nIncrementalFiles.DefaultNumWorkers = IncrementalFiles.GetDefaultNumWorkers();\r\nIncrementalFiles._Default = null;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/IncrementalFiles/MakeIncremental.ts\":\n/*!*******************************************************************!*\\\n !*** ../../3D/src/Components/IncrementalFiles/MakeIncremental.ts ***!\n \\*******************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MakeIncremental\": () => (/* binding */ MakeIncremental)\n/* harmony export */ });\n// Classe che si occupa di spezzare il file di scena in tanti file più piccoli\r\n// per il caricamento incrementale. Un file può essere ottenuto sia dalla geometria\r\n// di una mesh che da un materiale. Nel caso di geometria, se abilitata, avverrà\r\n// la compressione Draco dei dati.\r\nclass MakeIncremental {\r\n // Spezzo la scena in tanti file per un caricamento incrementale delle mesh\r\n // la funzione accetta il JSON ottenuto dalla serializzazione della scena\r\n // e restituisce un elenco di oggetti Zakeke.IncrementalFileInfo\r\n // Se abilitata la codifica Draco, la proprietà \"data\" conterrà l'ArrayBuffer\r\n // con i byte dell'oggetto serializzato contenente, tra l'altro, i dati codificati con Draco\r\n getSceneIncrementalFiles(sceneJson, version, options) {\r\n const files = [];\r\n const dracoOptions = {\r\n useDraco: options.useDraco || false,\r\n dracoEncodingSpeed: options.dracoEncodingSpeed || 5,\r\n dracoDecodingSpeed: options.dracoDecodingSpeed || 5\r\n };\r\n const excludedMeshes = options.excludedMeshes || [];\r\n sceneJson.autoClear = true;\r\n // Test -\r\n //sceneJson.useDelayedTextureLoading = false;\r\n // lascio il valore impostato sulla scena\r\n const doNotDelayLoadingForGeometries = [];\r\n // Parsing meshes\r\n sceneJson.meshes.forEach(mesh => {\r\n if (!excludedMeshes.some(meshCheck => meshCheck.test(mesh.name))) {\r\n // Do not delay load visibile object\r\n // TEST Ritardo il caricamento anche degli oggetti visibili\r\n /*\r\n if (mesh.isVisible) {\r\n if (mesh.geometryId)\r\n doNotDelayLoadingForGeometries.push(mesh.geometryId);\r\n return;\r\n }\r\n */\r\n // Escludo le mesh con submesh per un bug di Babylon JS in fase di caricamento\r\n if (mesh.subMeshes && mesh.subMeshes.length > 1) {\r\n if (mesh.geometryId)\r\n doNotDelayLoadingForGeometries.push(mesh.geometryId);\r\n return;\r\n }\r\n // Do not delay load collisions object\r\n if (mesh.checkCollisions) {\r\n if (mesh.geometryId) {\r\n doNotDelayLoadingForGeometries.push(mesh.geometryId);\r\n }\r\n }\r\n else {\r\n const incrementalFileInfo = this.extractIncrementalFile(version, mesh, true, dracoOptions);\r\n if (incrementalFileInfo)\r\n files.push(incrementalFileInfo);\r\n }\r\n }\r\n });\r\n // Parsing vertexData\r\n const geometries = sceneJson.geometries;\r\n if (geometries) {\r\n const vertexData = geometries.vertexData;\r\n vertexData.forEach(geometry => {\r\n const id = geometry.id;\r\n if (!doNotDelayLoadingForGeometries.some(g => g === id)) {\r\n const incrementalFileInfo = this.extractIncrementalFile(version, geometry, false, dracoOptions);\r\n if (incrementalFileInfo)\r\n files.push(incrementalFileInfo);\r\n }\r\n });\r\n }\r\n // Delayed Material Loading\r\n // I materiali non indicati vengono salvati in file a parte per un cricamento ritardato\r\n if (sceneJson.metadata && sceneJson.metadata.delayedMaterials) {\r\n const ids = Object.keys(sceneJson.metadata.delayedMaterials);\r\n for (let i = 0; i < sceneJson.materials.length; i++) {\r\n const material = sceneJson.materials[i];\r\n if (ids.some(id => id === material.id)) {\r\n const info = sceneJson.metadata.delayedMaterials[material.id];\r\n const incrementalFileInfo = this.extractIncrementalMaterialFile(version, material, info.file);\r\n if (incrementalFileInfo) {\r\n files.push(incrementalFileInfo);\r\n sceneJson.materials.splice(i--, 1);\r\n }\r\n }\r\n }\r\n }\r\n // Creo il file principale della scena incrementale con quel che resta\r\n // dopo aver inserito i dati delle mesh in file separati\r\n var file = new Zakeke.IncrementalFileInfo();\r\n file.name = \"scene_\" + version + \".incremental.babylon\";\r\n file.isScene = true;\r\n file.dracoEncoded = false;\r\n file.data = JSON.stringify(sceneJson, null, 0);\r\n files.push(file);\r\n return files;\r\n }\r\n extractIncrementalFile(version, meshOrGeometry, isMesh, dracoOptions) {\r\n let file = null;\r\n //Logger.info(\"Extracting \" + isMesh ? meshOrGeometry.name : meshOrGeometry.id);\r\n if (meshOrGeometry.positions && meshOrGeometry.normals && meshOrGeometry.indices) {\r\n // Create delay loading file\r\n file = this.createDelayLoadingFile(version, meshOrGeometry, isMesh, dracoOptions);\r\n if (file && file.data) {\r\n meshOrGeometry.delayLoadingFile = file.name;\r\n //Logger.info(\"Delay loading file: \" + meshOrGeometry.delayLoadingFile);\r\n // Compute bounding boxes\r\n let positions = meshOrGeometry.positions.map(v => parseFloat(v));\r\n let minimum = [Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE];\r\n let maximum = [Number.MIN_VALUE, Number.MIN_VALUE, Number.MIN_VALUE];\r\n for (let index = 0; index < positions.length; index += 3) {\r\n let x = positions[index];\r\n let y = positions[index + 1];\r\n let z = positions[index + 2];\r\n if (x < minimum[0]) {\r\n minimum[0] = x;\r\n }\r\n if (x > maximum[0]) {\r\n maximum[0] = x;\r\n }\r\n if (y < minimum[1]) {\r\n minimum[1] = y;\r\n }\r\n if (y > maximum[1]) {\r\n maximum[1] = y;\r\n }\r\n if (z < minimum[2]) {\r\n minimum[2] = z;\r\n }\r\n if (z > maximum[2]) {\r\n maximum[2] = z;\r\n }\r\n }\r\n meshOrGeometry.boundingBoxMinimum = minimum;\r\n meshOrGeometry.boundingBoxMaximum = maximum;\r\n // Erasing infos\r\n meshOrGeometry.positions = null;\r\n meshOrGeometry.normals = null;\r\n meshOrGeometry.indices = null;\r\n if (meshOrGeometry.uvs) {\r\n meshOrGeometry.hasUVs = true;\r\n meshOrGeometry.uvs = null;\r\n }\r\n if (meshOrGeometry.uv2s) {\r\n meshOrGeometry.hasUVs2 = true;\r\n meshOrGeometry.uv2s = null;\r\n }\r\n if (meshOrGeometry.colors) {\r\n meshOrGeometry.hasColors = true;\r\n meshOrGeometry.colors = null;\r\n }\r\n // Added tangents\r\n if (meshOrGeometry.tangents) {\r\n meshOrGeometry.hasTangents = true;\r\n meshOrGeometry.tangents = null;\r\n }\r\n if (meshOrGeometry.matricesIndices) {\r\n meshOrGeometry.hasMatricesIndices = true;\r\n meshOrGeometry.matricesIndices = null;\r\n }\r\n if (meshOrGeometry.matricesWeights) {\r\n meshOrGeometry.hasMatricesWeights = true;\r\n meshOrGeometry.matricesWeights = null;\r\n }\r\n if (isMesh && meshOrGeometry.subMeshes) {\r\n meshOrGeometry.subMeshes = null;\r\n }\r\n }\r\n }\r\n if (file && file.data)\r\n return file;\r\n else\r\n return null;\r\n }\r\n createDelayLoadingFile(version, meshOrGeometry, isMesh, dracoOptions) {\r\n var file = new Zakeke.IncrementalFileInfo();\r\n file.isScene = false;\r\n // Per ora uso la codifica draco, se abilitata, solo nel caso di geometria\r\n // e se la geometria ha un solo canale per le texture\r\n //var dracoEncode = dracoOptions.useDraco && !isMesh && !meshOrGeometry.uv2s && !(meshOrGeometry.matricesIndices || meshOrGeometry.matricesWeights);\r\n var dracoEncode = dracoOptions.useDraco && !isMesh &&\r\n !(meshOrGeometry.matricesIndices || meshOrGeometry.matricesWeights || meshOrGeometry.tangents) &&\r\n meshOrGeometry.indices.length > 0 &&\r\n meshOrGeometry.positions.length > 0 &&\r\n meshOrGeometry.normals.length > 0;\r\n file.dracoEncoded = dracoEncode;\r\n var encodedName = (isMesh ? meshOrGeometry.name : meshOrGeometry.id).replace(\"+\", \"_\").replace(\" \", \"_\");\r\n var namepart = dracoEncode ? \"draco\" : \"\";\r\n file.name = \"scene_\" + version + \".\" + encodedName + (isMesh ? \".babylonmesh\" + namepart + \"data\" : \".babylongeometry\" + namepart + \"data\");\r\n if (dracoEncode)\r\n file.data = this.createDracoDelayLoadingFileData(meshOrGeometry, dracoOptions);\r\n else\r\n file.data = this.createPlainDelayLoadingFileData(meshOrGeometry, isMesh);\r\n return file;\r\n }\r\n createPlainDelayLoadingFileData(meshOrGeometry, isMesh) {\r\n var result = {\r\n positions: meshOrGeometry.positions,\r\n indices: meshOrGeometry.indices,\r\n normals: meshOrGeometry.normals,\r\n };\r\n if (meshOrGeometry.uvs) {\r\n result.uvs = meshOrGeometry.uvs;\r\n }\r\n if (meshOrGeometry.uv2s) {\r\n result.uv2s = meshOrGeometry.uv2s;\r\n }\r\n if (meshOrGeometry.colors) {\r\n result.colors = meshOrGeometry.colors;\r\n }\r\n if (meshOrGeometry.tangents) {\r\n result.tangents = meshOrGeometry.tangents;\r\n }\r\n if (meshOrGeometry.matricesIndices) {\r\n result.matricesIndices = meshOrGeometry.matricesIndices;\r\n }\r\n if (meshOrGeometry.matricesWeights) {\r\n result.matricesWeights = meshOrGeometry.matricesWeights;\r\n }\r\n if (isMesh && meshOrGeometry.subMeshes) {\r\n result.subMeshes = meshOrGeometry.subMeshes;\r\n }\r\n var json = JSON.stringify(result, null, 0);\r\n return json;\r\n }\r\n createDracoDelayLoadingFileData(geometry, dracoOptions) {\r\n const start = new Date().getTime();\r\n const dracoData = this.getDracoEncodedGeometry(geometry, dracoOptions);\r\n const elapsed = new Date().getTime() - start;\r\n //Logger.info(\"Draco Encoding - \" + geometry.id + \"\\t\" + elapsed + \" ms\");\r\n if (dracoData) {\r\n var result = {\r\n type: \"draco\",\r\n data: dracoData\r\n };\r\n // Serializzo tutto in formato binario\r\n return msgpack.encode(result);\r\n }\r\n return null;\r\n }\r\n getDracoEncodedGeometry(geometry, dracoOptions) {\r\n if (!geometry)\r\n return null;\r\n const positions = geometry.positions;\r\n const normals = geometry.normals;\r\n const colors = geometry.colors;\r\n const uvs = geometry.uvs;\r\n const uv2s = geometry.uv2s;\r\n const indices = geometry.indices;\r\n const mesh = {\r\n indices: new Uint32Array(indices),\r\n positions: new Float32Array(positions),\r\n normals: new Float32Array(normals),\r\n };\r\n if (uvs)\r\n mesh.uvs = new Float32Array(uvs);\r\n if (uv2s)\r\n mesh.uv2s = new Float32Array(uv2s);\r\n if (colors)\r\n mesh.colors = new Float32Array(colors);\r\n const encoderModule = DracoEncoderModule();\r\n const encoder = new encoderModule.Encoder();\r\n const meshBuilder = new encoderModule.MeshBuilder();\r\n const dracoMesh = new encoderModule.Mesh();\r\n const numFaces = mesh.indices.length / 3;\r\n const numPoints = mesh.positions.length / 3;\r\n meshBuilder.AddFacesToMesh(dracoMesh, numFaces, mesh.indices);\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.POSITION, numPoints, 3, mesh.positions);\r\n if (mesh.normals) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.NORMAL, numPoints, 3, mesh.normals);\r\n }\r\n if (mesh.colors) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.COLOR, numPoints, 4, mesh.colors);\r\n }\r\n if (mesh.uvs) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.TEX_COORD, numPoints, 2, mesh.uvs);\r\n }\r\n // Attenzione! E' importante passare il secondo canale per ultimo e subito dopo il primo\r\n // In fase di decoding si supporrà che questa sia la posizione.\r\n if (mesh.uv2s) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.TEX_COORD, numPoints, 2, mesh.uv2s);\r\n }\r\n encoder.SetSpeedOptions(dracoOptions.dracoEncodingSpeed, dracoOptions.dracoDecodingSpeed);\r\n encoder.SetAttributeQuantization(encoderModule.POSITION, 14);\r\n encoder.SetAttributeQuantization(encoderModule.TEX_COORD, 12);\r\n encoder.SetAttributeQuantization(encoderModule.NORMAL, 10);\r\n encoder.SetAttributeQuantization(encoderModule.COLOR, 10);\r\n encoder.SetAttributeQuantization(encoderModule.GENERIC, 8);\r\n encoder.SetEncodingMethod(encoderModule.MESH_EDGEBREAKER_ENCODING);\r\n const encodedData = new encoderModule.DracoInt8Array();\r\n const encodedLen = encoder.EncodeMeshToDracoBuffer(dracoMesh, encodedData);\r\n var outputBuffer = new ArrayBuffer(encodedLen);\r\n var outputData = new Int8Array(outputBuffer);\r\n for (let i = 0; i < encodedLen; ++i) {\r\n outputData[i] = encodedData.GetValue(i);\r\n }\r\n encoderModule.destroy(dracoMesh);\r\n encoderModule.destroy(encodedData);\r\n encoderModule.destroy(encoder);\r\n encoderModule.destroy(meshBuilder);\r\n return outputBuffer;\r\n }\r\n extractIncrementalMaterialFile(version, material, fileName) {\r\n //Logger.info(\"Extracting material \" + material.id);\r\n var file = this.createDelayLoadingMaterialFile(version, material, fileName);\r\n //Logger.info(\"Delay loading material file: \" + file.name);\r\n return file;\r\n }\r\n createDelayLoadingMaterialFile(version, material, fileName) {\r\n var file = new Zakeke.IncrementalFileInfo();\r\n file.isScene = false;\r\n file.dracoEncoded = false;\r\n file.name = fileName;\r\n file.data = this.createMaterialFileData(material);\r\n return file;\r\n }\r\n createMaterialFileData(material) {\r\n var json = JSON.stringify(material, null, 0);\r\n return json;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/InfoPointsManager/InfoPointsManager.ts\":\n/*!**********************************************************************!*\\\n !*** ../../3D/src/Components/InfoPointsManager/InfoPointsManager.ts ***!\n \\**********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"InfoPointsManager\": () => (/* binding */ InfoPointsManager)\n/* harmony export */ });\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n\r\n// Classe che ha la responsabilità di gestire gli info points della scena\r\n// Nella presente implementazione, gli info points sono \"agganciati\" alle mesh\r\n// e hanno la possibilità di visualizzare le eventuali immagini di anteprima dei materiali\r\nclass InfoPointsManager {\r\n constructor(zkScene, scene, style) {\r\n this._meshesInfoPoints = {};\r\n this._infoPoints = [];\r\n this._imageUrls = [];\r\n this._currentIdx = 0;\r\n this._imagePanel = null;\r\n this._loadingText = null;\r\n this._image = null;\r\n this._closeImageButton = null;\r\n this._moveNextImageButton = null;\r\n this._movePrevImageButton = null;\r\n this._isOnMoveNextButton = false;\r\n this._isOnMovePrevButton = false;\r\n this._lastCameraPosition = null;\r\n this.onBeforeShowImages = null;\r\n this.onAfterShowImages = null;\r\n this._infoPointsShown = true;\r\n this._canShowInfoPointsContent = true;\r\n // Eventi\r\n this._infoPointPickedListeners = [];\r\n this._infoPointContentShownListeners = [];\r\n this._infoPointContentHiddenListeners = [];\r\n this._renderingNeededListeners = [];\r\n this.CLOSE_SVG = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cg id='mdi-close' style='fill:§color§'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/g%3E%3C/svg%3E\";\r\n this.CHEVRON_LEFT_SVG = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cg id='mdi-chevron-left'%3E%3Cpath fill='§color§' d='M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z' /%3E%3C/g%3E%3C/svg%3E\";\r\n this.CHEVRON_RIGHT_SVG = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cg id='mdi-chevron-right'%3E%3Cpath fill='§color§' d='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z' /%3E%3C/g%3E%3C/svg%3E\";\r\n this._zkScene = zkScene;\r\n this._scene = scene;\r\n this._sceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper(scene);\r\n this._style = {};\r\n this.setDefaultStyle();\r\n if (style)\r\n this.setStyle(style);\r\n this._rootContainer = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI(\"UI\", true, this._scene);\r\n }\r\n get infoPointsShown() {\r\n return this._infoPointsShown;\r\n }\r\n get canShowInfoPointsContent() {\r\n return this._canShowInfoPointsContent;\r\n }\r\n set canShowInfoPointsContent(value) {\r\n this._canShowInfoPointsContent = value;\r\n this.hideImages();\r\n }\r\n dispose() {\r\n this._renderingNeededListeners = [];\r\n this._rootContainer.dispose();\r\n }\r\n setDefaultStyle() {\r\n this._style.infoPointsStyle = {\r\n borderColor: \"#ffffff\",\r\n innerPointColor: \"#ffffff\",\r\n color: \"#a01c20\",\r\n highlightColor: \"#bb2025\"\r\n };\r\n this._style.imagePanelStyle = {\r\n backgroundColor: this._scene.clearColor.toHexString(),\r\n loadingTextColor: \"#ffffff\",\r\n buttonsBorderColor: \"#a01c20\",\r\n buttonsColor: \"#a01c20\",\r\n buttonsBorderHighlightColor: \"#bb2025\",\r\n buttonsHighlightColor: \"#bb2025\",\r\n buttonsIconColor: \"white\"\r\n };\r\n }\r\n setStyle(style) {\r\n if (style) {\r\n if (style.infoPointsStyle) {\r\n if (!this._style.infoPointsStyle)\r\n this._style.infoPointsStyle = {};\r\n if (style.infoPointsStyle.borderColor)\r\n this._style.infoPointsStyle.borderColor = style.infoPointsStyle.borderColor;\r\n if (style.infoPointsStyle.innerPointColor)\r\n this._style.infoPointsStyle.innerPointColor = style.infoPointsStyle.innerPointColor;\r\n if (style.infoPointsStyle.color)\r\n this._style.infoPointsStyle.color = style.infoPointsStyle.color;\r\n if (style.infoPointsStyle.highlightColor)\r\n this._style.infoPointsStyle.highlightColor = style.infoPointsStyle.highlightColor;\r\n }\r\n if (style.imagePanelStyle) {\r\n if (!this._style.imagePanelStyle)\r\n this._style.imagePanelStyle = {};\r\n if (style.imagePanelStyle.backgroundColor)\r\n this._style.imagePanelStyle.backgroundColor = style.imagePanelStyle.backgroundColor;\r\n if (style.imagePanelStyle.loadingTextColor)\r\n this._style.imagePanelStyle.loadingTextColor = style.imagePanelStyle.loadingTextColor;\r\n if (style.imagePanelStyle.buttonsBorderColor)\r\n this._style.imagePanelStyle.buttonsBorderColor = style.imagePanelStyle.buttonsBorderColor;\r\n if (style.imagePanelStyle.buttonsColor)\r\n this._style.imagePanelStyle.buttonsColor = style.imagePanelStyle.buttonsColor;\r\n if (style.imagePanelStyle.buttonsBorderHighlightColor)\r\n this._style.imagePanelStyle.buttonsBorderHighlightColor = style.imagePanelStyle.buttonsBorderHighlightColor;\r\n if (style.imagePanelStyle.buttonsHighlightColor)\r\n this._style.imagePanelStyle.buttonsHighlightColor = style.imagePanelStyle.buttonsHighlightColor;\r\n if (style.imagePanelStyle.buttonsIconColor)\r\n this._style.imagePanelStyle.buttonsIconColor = style.imagePanelStyle.buttonsIconColor;\r\n }\r\n }\r\n else {\r\n this.setDefaultStyle();\r\n }\r\n }\r\n applyStyle(style) {\r\n this.setStyle(style);\r\n this.refresh();\r\n }\r\n showInfoPoints() {\r\n this.hideImages();\r\n this.getAllInfoPoints().forEach(i => i.isVisible = true);\r\n this._infoPointsShown = true;\r\n this.fireRenderingNeededEvent();\r\n }\r\n hideInfoPoints() {\r\n this.hideImages();\r\n this.getAllInfoPoints().forEach(i => i.isVisible = false);\r\n this._infoPointsShown = false;\r\n this.fireRenderingNeededEvent();\r\n }\r\n refresh() {\r\n this.hideImages();\r\n this.refreshInfoPoints();\r\n this.updateGuiElementsStyle();\r\n this.fireRenderingNeededEvent();\r\n }\r\n getAllInfoPoints() {\r\n const infoPoints = [];\r\n for (const prop in this._meshesInfoPoints)\r\n infoPoints.push(this._meshesInfoPoints[prop]);\r\n return infoPoints;\r\n }\r\n refreshInfoPoints() {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n const canShowOnMesh = mesh.metadata && mesh.metadata.showInfoPoints && (mesh.isVisible || mesh.metadata.forceShowInfoPoints);\r\n const material = mesh.material;\r\n const urls = material ? this.getMaterialPhotoUrls(material) : [];\r\n if (canShowOnMesh && urls.length > 0) {\r\n const infoPoint = this.getOrCreateMeshInfoPoint(mesh);\r\n this.updateInfoPointUrls(infoPoint, urls);\r\n }\r\n else {\r\n this.removeMeshInfoPoints(mesh);\r\n }\r\n }\r\n }\r\n removeMeshInfoPoints(mesh) {\r\n if (this._meshesInfoPoints.hasOwnProperty(mesh.id)) {\r\n const infoPoint = this._meshesInfoPoints[mesh.id];\r\n infoPoint.dispose();\r\n delete this._meshesInfoPoints[mesh.id];\r\n }\r\n }\r\n getOrCreateMeshInfoPoint(mesh) {\r\n if (this._meshesInfoPoints.hasOwnProperty(mesh.id))\r\n return this._meshesInfoPoints[mesh.id];\r\n const meshInfoPoint = this.createMeshInfoPoint(mesh);\r\n this._meshesInfoPoints[mesh.id] = meshInfoPoint;\r\n return meshInfoPoint;\r\n }\r\n updateInfoPointUrls(infoPoint, urls) {\r\n if (!infoPoint.metadata)\r\n infoPoint.metadata = {};\r\n infoPoint.metadata.urls = urls;\r\n }\r\n createMeshInfoPoint(mesh) {\r\n var _a, _b, _c, _d;\r\n const circleOut = new BABYLON.GUI.Ellipse(\"infoPoint\");\r\n circleOut.width = \"29px\";\r\n circleOut.height = \"29px\";\r\n circleOut.color = ((_a = this._style.infoPointsStyle) === null || _a === void 0 ? void 0 : _a.borderColor) || \"#dddddd\";\r\n circleOut.thickness = 4;\r\n circleOut.background = ((_b = this._style.infoPointsStyle) === null || _b === void 0 ? void 0 : _b.color) || \"#a01c20\";\r\n circleOut.alpha = 1;\r\n circleOut.onPointerEnterObservable.add((data) => {\r\n var _a;\r\n circleOut.background = ((_a = this._style.infoPointsStyle) === null || _a === void 0 ? void 0 : _a.highlightColor) || \"#bb2025\";\r\n this.fireRenderingNeededEvent();\r\n });\r\n circleOut.onPointerOutObservable.add((data) => {\r\n var _a;\r\n circleOut.background = ((_a = this._style.infoPointsStyle) === null || _a === void 0 ? void 0 : _a.color) || \"#a01c20\";\r\n this.fireRenderingNeededEvent();\r\n });\r\n this._rootContainer.addControl(circleOut);\r\n const circleIn = new BABYLON.GUI.Ellipse(\"innerPoint\");\r\n circleIn.width = 0.29;\r\n circleIn.height = 0.29;\r\n circleIn.color = ((_c = this._style.infoPointsStyle) === null || _c === void 0 ? void 0 : _c.innerPointColor) || \"White\";\r\n circleIn.thickness = 0;\r\n circleIn.background = ((_d = this._style.infoPointsStyle) === null || _d === void 0 ? void 0 : _d.innerPointColor) || \"White\";\r\n circleOut.addControl(circleIn);\r\n circleOut.linkWithMesh(mesh);\r\n circleOut.linkOffsetY = 0;\r\n circleOut.shadowBlur = 6;\r\n circleOut.shadowOffsetX = 2;\r\n circleOut.shadowOffsetY = 2;\r\n circleOut.isPointerBlocker = true;\r\n circleOut.hoverCursor = \"pointer\";\r\n circleOut.onPointerClickObservable.add((data) => {\r\n if (circleOut.metadata && circleOut.metadata.urls) {\r\n const args = {\r\n meshID: mesh.id,\r\n materialID: mesh.material ? mesh.material.id : null,\r\n materialPhotoUrl: circleOut.metadata.urls\r\n };\r\n this.fireInfoPointPickedEvent(args);\r\n this.showImages(circleOut.metadata.urls);\r\n }\r\n this.fireRenderingNeededEvent();\r\n });\r\n return circleOut;\r\n }\r\n getMaterialInfoPoint(materialID) {\r\n for (let i = 0; i < this._infoPoints.length; i++) {\r\n const infoPoint = this._infoPoints[i];\r\n if (infoPoint.metadata && infoPoint.metadata.materialID && infoPoint.metadata.materialID === materialID)\r\n return infoPoint;\r\n }\r\n return null;\r\n }\r\n getMaterialPhotoUrls(material) {\r\n return this._zkScene.get(\"materialPhotos\").getMaterialPhotoUrls(material.id);\r\n }\r\n getOrCreateImagePanel() {\r\n if (!this._imagePanel)\r\n this.createImagePanel();\r\n return this._imagePanel;\r\n }\r\n createImagePanel() {\r\n var _a;\r\n const imagePanel = new BABYLON.GUI.Rectangle(\"imagePanel\");\r\n imagePanel.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.backgroundColor) || this._scene.clearColor.toHexString();\r\n imagePanel.width = 1;\r\n imagePanel.height = 1;\r\n imagePanel.zIndex = 10000;\r\n imagePanel.isVisible = false;\r\n this._imagePanel = imagePanel;\r\n this._rootContainer.addControl(imagePanel);\r\n this.addCloseButton(imagePanel);\r\n this.addMoveNextImageButton(imagePanel);\r\n this.addMovePrevImageButton(imagePanel);\r\n return imagePanel;\r\n }\r\n addCloseButton(imagePanel) {\r\n var _a, _b, _c;\r\n const closePanel = new BABYLON.GUI.StackPanel(\"closePanel\");\r\n closePanel.height = \"48px\";\r\n closePanel.width = \"48px\";\r\n closePanel.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;\r\n closePanel.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;\r\n closePanel.isVertical = false;\r\n closePanel.zIndex = 10003;\r\n imagePanel.addControl(closePanel);\r\n const closeRect = new BABYLON.GUI.Rectangle(\"closeRect\");\r\n closeRect.width = \"24px\";\r\n closeRect.height = \"24px\";\r\n closeRect.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n closeRect.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n closeRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsColor) || \"#a01c20\";\r\n closeRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderColor) || \"#a01c20\";\r\n closeRect.isPointerBlocker = true;\r\n closeRect.hoverCursor = \"pointer\";\r\n closeRect.onPointerEnterObservable.add((data) => {\r\n var _a, _b;\r\n closeRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsHighlightColor) || \"#bb2025\";\r\n closeRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderHighlightColor) || \"#bb2025\";\r\n this.fireRenderingNeededEvent();\r\n });\r\n closeRect.onPointerOutObservable.add((data) => {\r\n var _a, _b;\r\n closeRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsColor) || \"#a01c20\";\r\n closeRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderColor) || \"#a01c20\";\r\n this.fireRenderingNeededEvent();\r\n });\r\n closeRect.onPointerClickObservable.add((data) => {\r\n this.hideImages();\r\n this.fireRenderingNeededEvent();\r\n });\r\n closePanel.addControl(closeRect);\r\n const closeIcon = new BABYLON.GUI.Image(\"close\", this.getCloseSvg(((_c = this._style.imagePanelStyle) === null || _c === void 0 ? void 0 : _c.buttonsIconColor) || \"white\"));\r\n closeIcon.width = 1;\r\n closeIcon.height = 1;\r\n closeIcon.stretch = BABYLON.GUI.Image.STRETCH_UNIFORM;\r\n closeRect.addControl(closeIcon);\r\n this._closeImageButton = closePanel;\r\n }\r\n addMoveNextImageButton(imagePanel) {\r\n var _a, _b, _c;\r\n const rightPanel = new BABYLON.GUI.StackPanel(\"rightPanel\");\r\n rightPanel.width = \"48px\";\r\n rightPanel.height = \"48px\";\r\n rightPanel.paddingRight = \"24px\";\r\n rightPanel.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;\r\n rightPanel.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n rightPanel.isVertical = false;\r\n rightPanel.zIndex = 10003;\r\n rightPanel.alpha = 0.3;\r\n rightPanel.isVisible = false;\r\n imagePanel.addControl(rightPanel);\r\n const rightRect = new BABYLON.GUI.Rectangle(\"rightRect\");\r\n rightRect.width = \"24px\";\r\n rightRect.height = \"48px\";\r\n rightRect.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n rightRect.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n rightRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsColor) || \"#a01c20\";\r\n rightRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderColor) || \"#a01c20\";\r\n rightRect.isPointerBlocker = true;\r\n rightRect.hoverCursor = \"pointer\";\r\n rightRect.onPointerEnterObservable.add((data) => {\r\n var _a, _b;\r\n this._isOnMoveNextButton = true;\r\n rightRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsHighlightColor) || \"#bb2025\";\r\n rightRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderHighlightColor) || \"#bb2025\";\r\n this.updateMoveNextImageButton();\r\n this.fireRenderingNeededEvent();\r\n });\r\n rightRect.onPointerOutObservable.add((data) => {\r\n var _a, _b;\r\n this._isOnMoveNextButton = false;\r\n rightRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsColor) || \"#a01c20\";\r\n rightRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderColor) || \"#a01c20\";\r\n this.updateMoveNextImageButton();\r\n this.fireRenderingNeededEvent();\r\n });\r\n rightRect.onPointerClickObservable.add((data) => {\r\n this.moveNextImage();\r\n this.fireRenderingNeededEvent();\r\n });\r\n rightPanel.addControl(rightRect);\r\n const rightIcon = new BABYLON.GUI.Image(\"move-next\", this.getChevronRightSvg(((_c = this._style.imagePanelStyle) === null || _c === void 0 ? void 0 : _c.buttonsIconColor) || \"white\"));\r\n rightIcon.width = 1;\r\n rightIcon.height = 1;\r\n rightIcon.stretch = BABYLON.GUI.Image.STRETCH_UNIFORM;\r\n rightIcon.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n rightRect.addControl(rightIcon);\r\n this._moveNextImageButton = rightPanel;\r\n }\r\n addMovePrevImageButton(imagePanel) {\r\n var _a, _b, _c;\r\n const leftPanel = new BABYLON.GUI.StackPanel(\"leftPanel\");\r\n leftPanel.width = \"48px\";\r\n leftPanel.height = \"48px\";\r\n leftPanel.paddingLeft = \"24px\";\r\n leftPanel.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n leftPanel.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n leftPanel.isVertical = false;\r\n leftPanel.alpha = 0.3;\r\n leftPanel.zIndex = 10003;\r\n leftPanel.isVisible = false;\r\n imagePanel.addControl(leftPanel);\r\n const leftRect = new BABYLON.GUI.Rectangle(\"leftRect\");\r\n leftRect.width = \"24px\";\r\n leftRect.height = \"48px\";\r\n leftRect.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n leftRect.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_RIGHT;\r\n leftRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsColor) || \"#a01c20\";\r\n leftRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderColor) || \"#a01c20\";\r\n leftRect.isPointerBlocker = true;\r\n leftRect.hoverCursor = \"pointer\";\r\n leftRect.onPointerEnterObservable.add((data) => {\r\n var _a, _b;\r\n this._isOnMovePrevButton = true;\r\n leftRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsHighlightColor) || \"#bb2025\";\r\n leftRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderHighlightColor) || \"#bb2025\";\r\n this.updateMovePrevImageButton();\r\n this.fireRenderingNeededEvent();\r\n });\r\n leftRect.onPointerOutObservable.add((data) => {\r\n var _a, _b;\r\n this._isOnMovePrevButton = false;\r\n leftRect.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.buttonsColor) || \"#a01c20\";\r\n leftRect.color = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsBorderColor) || \"#a01c20\";\r\n this.updateMovePrevImageButton();\r\n this.fireRenderingNeededEvent();\r\n });\r\n leftRect.onPointerClickObservable.add((data) => {\r\n this.movePrevImage();\r\n this.fireRenderingNeededEvent();\r\n });\r\n leftPanel.addControl(leftRect);\r\n const leftIcon = new BABYLON.GUI.Image(\"move-prev\", this.getChevronLeftSvg(((_c = this._style.imagePanelStyle) === null || _c === void 0 ? void 0 : _c.buttonsIconColor) || \"white\"));\r\n leftIcon.width = 1;\r\n leftIcon.height = 1;\r\n leftIcon.stretch = BABYLON.GUI.Image.STRETCH_UNIFORM;\r\n leftIcon.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_CENTER;\r\n leftRect.addControl(leftIcon);\r\n this._movePrevImageButton = leftPanel;\r\n }\r\n updateMoveNextImageButton() {\r\n if (this._moveNextImageButton) {\r\n if (this._imageUrls.length <= 1)\r\n this._moveNextImageButton.isVisible = false;\r\n else {\r\n this._moveNextImageButton.isVisible = true;\r\n this._moveNextImageButton.alpha = this.canMoveNextImage() ? (this._isOnMoveNextButton ? 1 : 0.3) : 0.1;\r\n }\r\n }\r\n }\r\n updateMovePrevImageButton() {\r\n if (this._movePrevImageButton) {\r\n if (this._imageUrls.length <= 1)\r\n this._movePrevImageButton.isVisible = false;\r\n else {\r\n this._movePrevImageButton.isVisible = true;\r\n this._movePrevImageButton.alpha = this.canMovePrevImage() ? (this._isOnMovePrevButton ? 1 : 0.3) : 0.1;\r\n }\r\n }\r\n }\r\n showImages(urls) {\r\n if (!this._canShowInfoPointsContent)\r\n return;\r\n this._currentIdx = 0;\r\n this._imageUrls = urls;\r\n this._isOnMoveNextButton = false;\r\n this._isOnMovePrevButton = false;\r\n this.getOrCreateImagePanel();\r\n if (this._imagePanel) {\r\n if (this.onBeforeShowImages)\r\n this.onBeforeShowImages();\r\n this.updateMoveNextImageButton();\r\n this.updateMovePrevImageButton();\r\n this._imagePanel.isVisible = true;\r\n this.showCurrentImage();\r\n this.fireInfoPointContentShownEvent();\r\n }\r\n this.fireRenderingNeededEvent();\r\n }\r\n moveNextImage() {\r\n if (this.canMoveNextImage()) {\r\n this._currentIdx++;\r\n this.showCurrentImage();\r\n this.updateMoveNextImageButton();\r\n this.updateMovePrevImageButton();\r\n this.fireRenderingNeededEvent();\r\n }\r\n }\r\n movePrevImage() {\r\n if (this.canMovePrevImage()) {\r\n this._currentIdx--;\r\n this.showCurrentImage();\r\n this.updateMoveNextImageButton();\r\n this.updateMovePrevImageButton();\r\n this.fireRenderingNeededEvent();\r\n }\r\n }\r\n showCurrentImage() {\r\n if (this._currentIdx >= 0 && this._currentIdx < this._imageUrls.length)\r\n this.showImage(this._imageUrls[this._currentIdx]);\r\n }\r\n canMoveNextImage() {\r\n return this._imageUrls.length > 0 && this._currentIdx < (this._imageUrls.length - 1);\r\n }\r\n canMovePrevImage() {\r\n return this._imageUrls.length > 0 && this._currentIdx > 0;\r\n }\r\n hideImages() {\r\n if (this._imagePanel) {\r\n this._imagePanel.isVisible = false;\r\n if (this.onAfterShowImages)\r\n this.onAfterShowImages();\r\n this.fireInfoPointContentHiddenEvent();\r\n this.fireRenderingNeededEvent();\r\n }\r\n }\r\n showImage(url) {\r\n if (this._imagePanel) {\r\n if (this._image) {\r\n this._imagePanel.removeControl(this._image);\r\n this._image.isVisible = false;\r\n this._image.dispose();\r\n this._image = null;\r\n }\r\n this.showLoadingText();\r\n const image = new BABYLON.GUI.Image(\"but\", url);\r\n image.width = 1;\r\n image.height = 1;\r\n image.isVisible = true;\r\n image.zIndex = 10002;\r\n image.stretch = BABYLON.GUI.Image.STRETCH_UNIFORM;\r\n image.onImageLoadedObservable.add(data => {\r\n this.hideLoadingText();\r\n });\r\n this._imagePanel.addControl(image);\r\n this._image = image;\r\n this.fireRenderingNeededEvent();\r\n }\r\n /*\r\n if (this._imagePanel) {\r\n const image = new BABYLON.GUI.Image(\"but\", url);\r\n image.width = 1;\r\n image.height = 1;\r\n image.isVisible = true;\r\n image.stretch = BABYLON.GUI.Image.STRETCH_UNIFORM;\r\n this._imagePanel.addControl(image);\r\n if (this._image) {\r\n this._imagePanel.removeControl(this._image);\r\n this._image.isVisible = false;\r\n this._image.dispose();\r\n this._image = null;\r\n }\r\n this._image = image;\r\n }\r\n */\r\n }\r\n /**\r\n * Update info points visibility and return true if at least one info point has been updated.\r\n *\r\n * @return {boolean} Return true if any info point has been updated.\r\n */\r\n updateInfoPointsVisibility() {\r\n let ret = false;\r\n if (this._scene.activeCamera) {\r\n if (!this._lastCameraPosition || !this._lastCameraPosition.equals(this._scene.activeCamera.position)) {\r\n this._lastCameraPosition = this._scene.activeCamera.position.clone();\r\n for (const meshID in this._meshesInfoPoints) {\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n this.updateMeshInfoPointVisibility(mesh, this._meshesInfoPoints[meshID]);\r\n ret = true;\r\n }\r\n }\r\n }\r\n }\r\n return ret;\r\n }\r\n drawRay(origin, forward) {\r\n let direction = forward.subtract(origin);\r\n direction = direction.normalize();\r\n const length = forward.subtract(origin).length() * 2;\r\n const ray = new BABYLON.Ray(origin, direction, length);\r\n // debug\r\n BABYLON.RayHelper.CreateAndShow(ray, this._scene, new BABYLON.Color3(1, 1, 0.1));\r\n }\r\n updateMeshInfoPointVisibility(mesh, infoPoint) {\r\n if (this._scene.activeCamera) {\r\n const forward = this._sceneHelper.getMeshHierarchyCenter(mesh);\r\n const origin = this._scene.activeCamera.position;\r\n let direction = forward.subtract(origin);\r\n direction = direction.normalize();\r\n const length = forward.subtract(origin).length() * 2;\r\n const ray = new BABYLON.Ray(origin, direction, length);\r\n const hit = this._scene.pickWithRay(ray);\r\n if (hit && hit.pickedMesh) {\r\n infoPoint.alpha = hit.pickedMesh === mesh ? 1 : 0.2;\r\n }\r\n }\r\n }\r\n getCloseSvg(color) {\r\n return this.getSvg(this.CLOSE_SVG, color);\r\n }\r\n getChevronLeftSvg(color) {\r\n return this.getSvg(this.CHEVRON_LEFT_SVG, color);\r\n }\r\n getChevronRightSvg(color) {\r\n return this.getSvg(this.CHEVRON_RIGHT_SVG, color);\r\n }\r\n getSvg(svg, color) {\r\n return svg.replace(\"§color§\", encodeURIComponent(color));\r\n }\r\n // -------------------------------------------------------------\r\n // Events \r\n // -------------------------------------------------------------\r\n // picked\r\n fireInfoPointPickedEvent(e) {\r\n for (let i = 0; i < this._infoPointPickedListeners.length; i++)\r\n this._infoPointPickedListeners[i](e);\r\n }\r\n addInfoPointPickedListener(listenerFunction) {\r\n this._infoPointPickedListeners.push(listenerFunction);\r\n }\r\n addInfoPointPickedListenerRange(listenerFunctions) {\r\n this._infoPointPickedListeners.push(...listenerFunctions);\r\n }\r\n // Content shown\r\n fireInfoPointContentShownEvent() {\r\n for (let i = 0; i < this._infoPointContentShownListeners.length; i++)\r\n this._infoPointContentShownListeners[i]();\r\n }\r\n addInfoPointContentShownListener(listenerFunction) {\r\n this._infoPointContentShownListeners.push(listenerFunction);\r\n }\r\n addInfoPointContentShownListenerRange(listenerFunctions) {\r\n this._infoPointContentShownListeners.push(...listenerFunctions);\r\n }\r\n // content hidden\r\n fireInfoPointContentHiddenEvent() {\r\n for (let i = 0; i < this._infoPointContentHiddenListeners.length; i++)\r\n this._infoPointContentHiddenListeners[i]();\r\n }\r\n addInfoPointContentHiddenListener(listenerFunction) {\r\n this._infoPointContentHiddenListeners.push(listenerFunction);\r\n }\r\n addInfoPointContentHiddenListenerRange(listenerFunctions) {\r\n this._infoPointContentHiddenListeners.push(...listenerFunctions);\r\n }\r\n // Rendering Needed\r\n fireRenderingNeededEvent() {\r\n for (let i = 0; i < this._renderingNeededListeners.length; ++i) {\r\n this._renderingNeededListeners[i]();\r\n }\r\n }\r\n addRenderingNeededListener(listenerFunction) {\r\n this._renderingNeededListeners.push(listenerFunction);\r\n }\r\n showLoadingText() {\r\n var _a;\r\n if (this._loadingText) {\r\n this._loadingText.isVisible = true;\r\n return;\r\n }\r\n if (this._imagePanel) {\r\n this._loadingText = new BABYLON.GUI.TextBlock(\"loading\");\r\n this._loadingText.text = \"Loading...\";\r\n this._loadingText.left = 0.5;\r\n this._loadingText.top = 0.7;\r\n this._loadingText.zIndex = 10001;\r\n this._loadingText.color = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.loadingTextColor) || \"white\";\r\n this._imagePanel.addControl(this._loadingText);\r\n this.fireRenderingNeededEvent();\r\n }\r\n }\r\n hideLoadingText() {\r\n if (this._loadingText)\r\n this._loadingText.isVisible = false;\r\n this.fireRenderingNeededEvent();\r\n }\r\n updateGuiElementsStyle() {\r\n this.updateMeshInfoPointsStyle();\r\n this.updateImagePanelStyle();\r\n this.fireRenderingNeededEvent();\r\n }\r\n updateMeshInfoPointsStyle() {\r\n this.getAllInfoPoints().forEach(infoPoint => {\r\n var _a, _b, _c;\r\n infoPoint.color = ((_a = this._style.infoPointsStyle) === null || _a === void 0 ? void 0 : _a.borderColor) || \"#dddddd\";\r\n infoPoint.background = ((_b = this._style.infoPointsStyle) === null || _b === void 0 ? void 0 : _b.color) || \"#a01c20\";\r\n const circleIn = infoPoint.getChildByName(\"innerPoint\");\r\n if (circleIn && circleIn instanceof BABYLON.GUI.Container) {\r\n circleIn.background = ((_c = this._style.infoPointsStyle) === null || _c === void 0 ? void 0 : _c.innerPointColor) || \"White\";\r\n }\r\n });\r\n }\r\n updateImagePanelStyle() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (this._imagePanel) {\r\n this._imagePanel.background = ((_a = this._style.imagePanelStyle) === null || _a === void 0 ? void 0 : _a.backgroundColor) || this._scene.clearColor.toHexString();\r\n const closePanel = this._imagePanel.getChildByName(\"closePanel\");\r\n if (closePanel && closePanel instanceof BABYLON.GUI.Container) {\r\n const closeRect = closePanel.getChildByName(\"closeRect\");\r\n if (closeRect && closeRect instanceof BABYLON.GUI.Container) {\r\n closeRect.background = ((_b = this._style.imagePanelStyle) === null || _b === void 0 ? void 0 : _b.buttonsColor) || \"#a01c20\";\r\n closeRect.color = ((_c = this._style.imagePanelStyle) === null || _c === void 0 ? void 0 : _c.buttonsBorderColor) || \"#a01c20\";\r\n }\r\n }\r\n const rightPanel = this._imagePanel.getChildByName(\"rightPanel\");\r\n if (rightPanel && rightPanel instanceof BABYLON.GUI.Container) {\r\n const rightRect = rightPanel.getChildByName(\"rightRect\");\r\n if (rightRect && rightRect instanceof BABYLON.GUI.Container) {\r\n rightRect.background = ((_d = this._style.imagePanelStyle) === null || _d === void 0 ? void 0 : _d.buttonsColor) || \"#a01c20\";\r\n rightRect.color = ((_e = this._style.imagePanelStyle) === null || _e === void 0 ? void 0 : _e.buttonsBorderColor) || \"#a01c20\";\r\n }\r\n }\r\n const leftPanel = this._imagePanel.getChildByName(\"leftPanel\");\r\n if (leftPanel && leftPanel instanceof BABYLON.GUI.Container) {\r\n const leftRect = leftPanel.getChildByName(\"leftRect\");\r\n if (leftRect && leftRect instanceof BABYLON.GUI.Container) {\r\n leftRect.background = ((_f = this._style.imagePanelStyle) === null || _f === void 0 ? void 0 : _f.buttonsColor) || \"#a01c20\";\r\n leftRect.color = ((_g = this._style.imagePanelStyle) === null || _g === void 0 ? void 0 : _g.buttonsBorderColor) || \"#a01c20\";\r\n }\r\n }\r\n if (this._loadingText) {\r\n this._loadingText.color = ((_h = this._style.imagePanelStyle) === null || _h === void 0 ? void 0 : _h.loadingTextColor) || \"white\";\r\n }\r\n }\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/MaterialsPreview/MaterialsPreview.ts\":\n/*!********************************************************************!*\\\n !*** ../../3D/src/Components/MaterialsPreview/MaterialsPreview.ts ***!\n \\********************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MaterialPreviewData\": () => (/* binding */ MaterialPreviewData),\n/* harmony export */ \"MaterialsPreview\": () => (/* binding */ MaterialsPreview)\n/* harmony export */ });\n/* harmony import */ var _Helpers_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Helpers/utils */ \"../../3D/src/Helpers/utils.ts\");\n/* harmony import */ var _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Misc/DefaultAssetUrls */ \"../../3D/src/Misc/DefaultAssetUrls.ts\");\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\nclass MaterialPreviewData {\r\n constructor() {\r\n this.previewFiles = {};\r\n }\r\n downloadFiles() {\r\n function endsWith(str, suffix) {\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n }\r\n for (let key in this.previewFiles) {\r\n let blob = null;\r\n const data = this.previewFiles[key];\r\n if (typeof data == \"string\")\r\n blob = _Helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.dataURItoBlob(data);\r\n else\r\n blob = data;\r\n if (blob) {\r\n let mimeType = null;\r\n if (endsWith(key, \".jpeg\" || 0)) {\r\n mimeType = { type: \"image/jpeg\" };\r\n }\r\n else if (endsWith(key, \".png\")) {\r\n mimeType = { type: \"image/png\" };\r\n }\r\n if (mimeType) {\r\n let link = document.createElement('a');\r\n document.body.appendChild(link);\r\n link.setAttribute(\"type\", \"hidden\");\r\n link.download = key;\r\n link.href = window.URL.createObjectURL(new Blob([blob], mimeType));\r\n link.click();\r\n }\r\n }\r\n }\r\n }\r\n}\r\nclass MaterialsPreview {\r\n static getPreviewsAsync(scene, rootUrl, materialIDs, options, createBlobs = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield scene.whenReadyAsync();\r\n const previewMaker = new MaterialPreviewMaker(scene, rootUrl, materialIDs, options);\r\n const previews = yield previewMaker.getPreviewsAsync(createBlobs);\r\n previewMaker.dispose();\r\n return previews;\r\n });\r\n }\r\n static downloadPreviewsAsync(scene, rootUrl, materialsIDs, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const data = yield MaterialsPreview.getPreviewsAsync(scene, rootUrl, materialsIDs, options);\r\n data.downloadFiles();\r\n });\r\n }\r\n}\r\nclass MaterialPreviewMaker {\r\n constructor(scene, rootUrl, materialIDs, options) {\r\n this._width = 256;\r\n this._height = 256;\r\n this._crop = false;\r\n this._materials = [];\r\n this._localEngine = null;\r\n this._hostingScene = null;\r\n this._hostingSceneHelper = null;\r\n this._hostingMesh = null;\r\n this._scene = scene;\r\n this._rootUrl = rootUrl;\r\n this._materialIDs = materialIDs;\r\n this._options = options || {};\r\n this.setupPreviewSize();\r\n if (this._options.crop != undefined)\r\n this._crop = this._options.crop;\r\n this.readMaterials();\r\n }\r\n dispose() {\r\n this.disposeHostingScene();\r\n this.disposeLocalEngine();\r\n }\r\n getLocalEngine() {\r\n if (!this._localEngine) {\r\n const localCanvas = document.createElement('canvas');\r\n localCanvas.id = \"MaterialPreviewCanvas\";\r\n localCanvas.width = 1024;\r\n localCanvas.height = 1024;\r\n this._localEngine = new BABYLON.Engine(localCanvas, true, { premultipliedAlpha: false, preserveDrawingBuffer: true });\r\n this._localEngine.setSize(this._width, this._height);\r\n //this._localEngine.setViewport(new BABYLON.Viewport(0, 0, 1, 1));\r\n }\r\n return this._localEngine;\r\n }\r\n disposeLocalEngine() {\r\n if (this._localEngine)\r\n this._localEngine.dispose();\r\n }\r\n disposeHostingScene() {\r\n if (this._hostingSceneHelper) {\r\n this._hostingSceneHelper.dispose();\r\n this._hostingSceneHelper = null;\r\n }\r\n if (this._hostingScene) {\r\n this._hostingScene.dispose();\r\n this._hostingScene = null;\r\n }\r\n }\r\n setupPreviewSize() {\r\n let options = this._options;\r\n if (options.width != undefined && options.height == undefined) {\r\n this._width = options.width;\r\n this._height = options.width;\r\n }\r\n else if (options.width == undefined && options.height != undefined) {\r\n this._width = options.height;\r\n this._height = options.height;\r\n }\r\n else if (options.width != undefined && options.height != undefined) {\r\n this._width = options.width;\r\n this._height = options.height;\r\n }\r\n }\r\n readMaterials() {\r\n this._materialIDs.forEach(id => {\r\n const material = this._scene.getMaterialByID(id);\r\n if (material)\r\n this._materials.push(material);\r\n });\r\n }\r\n downloadPreviewsAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const container = yield this.getPreviewsAsync();\r\n container.downloadFiles();\r\n });\r\n }\r\n getPreviewsAsync(createBlobs = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const files = [];\r\n const engine = this.getLocalEngine();\r\n this._hostingScene = new BABYLON.Scene(engine);\r\n this._hostingSceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_2__.SceneHelper(this._hostingScene);\r\n this._hostingSceneHelper.setupCamera();\r\n // Antialiasing\r\n const camera = this._hostingScene.activeCamera;\r\n if (camera) {\r\n const is_firefox = /firefox/i.test(navigator.userAgent);\r\n if (!is_firefox)\r\n new BABYLON.PassPostProcess(\"scale_pass\", 4.0, camera, BABYLON.Texture.BILINEAR_SAMPLINGMODE);\r\n new BABYLON.PassPostProcess(\"scale_pass\", 2.0, camera, BABYLON.Texture.BILINEAR_SAMPLINGMODE);\r\n new BABYLON.PassPostProcess(\"scale_pass\", 1.0, camera, BABYLON.Texture.BILINEAR_SAMPLINGMODE);\r\n }\r\n return new Promise(resolve => {\r\n const environmentTexture = new BABYLON.CubeTexture(_Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Environment.EnvironmentTextureCDNUrl, this._hostingScene, null, false, null, () => __awaiter(this, void 0, void 0, function* () {\r\n if (!this._hostingScene || !this._hostingSceneHelper)\r\n return;\r\n this._hostingScene.environmentTexture = environmentTexture;\r\n this._hostingSceneHelper.setupLights();\r\n this._hostingMesh = this._hostingSceneHelper.createSphere(null);\r\n this._hostingSceneHelper.adjustCamera(undefined, undefined, undefined, false);\r\n const container = new MaterialPreviewData();\r\n for (let i = 0; i < this._materials.length; i++) {\r\n const sourceMaterial = this._materials[i];\r\n yield this.createMaterialPreviewFileAsync(sourceMaterial, container, createBlobs);\r\n }\r\n this.disposeHostingScene();\r\n this.disposeLocalEngine();\r\n resolve(container);\r\n }), null, undefined, true, undefined, true);\r\n });\r\n });\r\n }\r\n createMaterialPreviewFileAsync(sourceMaterial, container, createBlobs = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._hostingScene && this._hostingSceneHelper && this._hostingMesh) {\r\n const sourceJsonObj = sourceMaterial.serialize();\r\n const newMaterial = BABYLON.Material.Parse(sourceJsonObj, this._hostingScene, this._rootUrl);\r\n if (newMaterial) {\r\n this._hostingMesh.material = newMaterial;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_2__.SceneHelper.whenMeshMaterialIsReady(this._hostingMesh);\r\n this._hostingScene.render();\r\n let previewData = yield this._hostingSceneHelper.takeContentScreenshotAsync(this._width, this._height);\r\n if (this._crop) {\r\n const cropped = yield _Helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.trimImageAsync(previewData);\r\n if (cropped)\r\n previewData = cropped;\r\n }\r\n let filename = newMaterial.name.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n filename = this.getNextIncrementalName(filename, \".png\", container) + \".png\";\r\n Logger.info(\"preview: \" + filename);\r\n let data = previewData;\r\n if (createBlobs)\r\n data = _Helpers_utils__WEBPACK_IMPORTED_MODULE_0__.Utils.dataURItoBlob(previewData);\r\n container.previewFiles[filename] = data;\r\n }\r\n }\r\n });\r\n }\r\n getNextIncrementalName(name, ext, previewData) {\r\n let newName = name;\r\n if (name) {\r\n let nameWithoutSuffix;\r\n let incremental = 0;\r\n while (previewData.previewFiles.hasOwnProperty(newName + ext)) {\r\n if (!nameWithoutSuffix) {\r\n nameWithoutSuffix = name;\r\n var idx = name.lastIndexOf(\"_\");\r\n if (idx > 0) {\r\n var numText = name.substring(idx + 1);\r\n var num = parseInt(numText);\r\n if (num.toString() === numText) {\r\n nameWithoutSuffix = name.substring(0, idx);\r\n }\r\n }\r\n }\r\n incremental++;\r\n newName = nameWithoutSuffix + \"_\" + incremental;\r\n }\r\n }\r\n return newName;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/MeshExpander/MeshExpander.ts\":\n/*!************************************************************!*\\\n !*** ../../3D/src/Components/MeshExpander/MeshExpander.ts ***!\n \\************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MeshExpander\": () => (/* binding */ MeshExpander)\n/* harmony export */ });\n// La classe espande una mesh muovendo tutti i vertici della geometria lungo la tangente\r\n// risultante delle tangenti alle facce che hanno i vertici come spigoli\r\nclass MeshExpander {\r\n constructor() {\r\n this._mesh = null;\r\n this._scene = null;\r\n this._facesOfVertices = null;\r\n this._meshVerticesPositions = null;\r\n this._meshVerticesNormals = null;\r\n this._meshIndices = null;\r\n this._meshPositions = null;\r\n this._meshFacesNormals = null;\r\n this._sharedFacesOfVertices = {};\r\n }\r\n dispose() {\r\n // ...\r\n }\r\n resetDataModel() {\r\n this._facesOfVertices = null;\r\n this._meshVerticesPositions = null;\r\n this._meshVerticesNormals = null;\r\n this._meshIndices = null;\r\n this._meshPositions = null;\r\n this._meshFacesNormals = null;\r\n this._sharedFacesOfVertices = {};\r\n }\r\n prepareDataModel() {\r\n this.resetDataModel();\r\n if (this._mesh && this._scene) {\r\n this._facesOfVertices = [];\r\n this._sharedFacesOfVertices = {};\r\n this._meshVerticesPositions = this._mesh.getVerticesData(BABYLON.VertexBuffer.PositionKind);\r\n this._meshVerticesNormals = this._mesh.getVerticesData(BABYLON.VertexBuffer.NormalKind);\r\n this._meshIndices = this._mesh.getIndices();\r\n this._meshPositions = [];\r\n this._meshFacesNormals = [];\r\n if (this._meshVerticesPositions && this._meshVerticesNormals && this._meshIndices) {\r\n for (let index = 0; index < this._meshVerticesPositions.length; index += 3) {\r\n this._meshPositions.push(new BABYLON.Vector3(this._meshVerticesPositions[index], this._meshVerticesPositions[index + 1], this._meshVerticesPositions[index + 2]));\r\n }\r\n for (let index = 0; index < this._mesh.getTotalIndices() / 3; index++) {\r\n this._computeFaceNormal(index);\r\n }\r\n this._getFacesOfVertices();\r\n }\r\n }\r\n }\r\n _getFaceVerticesIndex(faceID) {\r\n if (this._meshIndices) {\r\n return {\r\n v1: this._meshIndices[faceID * 3],\r\n v2: this._meshIndices[faceID * 3 + 1],\r\n v3: this._meshIndices[faceID * 3 + 2]\r\n };\r\n }\r\n return null;\r\n }\r\n // La normale ad una faccia è calcolata come prodotto vettoriale (cross product)\r\n // tra i vettori che connettono gli spigoli\r\n _computeFaceNormal(face) {\r\n if (this._meshPositions && this._meshIndices && this._meshFacesNormals) {\r\n const faceInfo = this._getFaceVerticesIndex(face);\r\n if (faceInfo) {\r\n const v1v2 = this._meshPositions[faceInfo.v1].subtract(this._meshPositions[faceInfo.v2]);\r\n const v3v2 = this._meshPositions[faceInfo.v3].subtract(this._meshPositions[faceInfo.v2]);\r\n this._meshFacesNormals[face] = BABYLON.Vector3.Normalize(BABYLON.Vector3.Cross(v1v2, v3v2));\r\n }\r\n }\r\n }\r\n _getPositionKey(vector) {\r\n return `${vector.x}_${vector.y}_${vector.z}`;\r\n }\r\n // Determina le facce di ogni vertice sia considerando vertici uguali ripetuti più volte (_facesOfVertices)\r\n // che quelle condivise da uno stesso vertice ripetuto (_sharedFacesOfVertices). Queste ultime saranno\r\n // quelle che verranno considerate per il calcolo della normale risultante da tutte le facce che hanno\r\n // un vertice come spigolo.\r\n _getFacesOfVertices() {\r\n if (this._mesh && this._meshPositions && this._meshIndices) {\r\n this._sharedFacesOfVertices = {};\r\n this._facesOfVertices = [];\r\n for (let index = 0; index < this._meshPositions.length; index++) {\r\n this._facesOfVertices[index] = [];\r\n const position = this._meshPositions[index];\r\n const key = this._getPositionKey(position);\r\n if (!this._sharedFacesOfVertices.hasOwnProperty(key))\r\n this._sharedFacesOfVertices[key] = new Set();\r\n }\r\n for (let index = 0; index < this._meshIndices.length; index++) {\r\n const vertexIndex = this._meshIndices[index];\r\n const faceID = index / 3 | 0;\r\n this._facesOfVertices[vertexIndex].push(faceID);\r\n const position = this._meshPositions[vertexIndex];\r\n const key = this._getPositionKey(position);\r\n if (this._sharedFacesOfVertices.hasOwnProperty(key))\r\n this._sharedFacesOfVertices[key].add(faceID);\r\n }\r\n }\r\n }\r\n expandMesh(mesh, delta = 0.01) {\r\n if (mesh instanceof BABYLON.Mesh) {\r\n this._mesh = mesh;\r\n this._scene = mesh.getScene();\r\n this.prepareDataModel();\r\n if (this._meshPositions && this._meshVerticesPositions && this._meshVerticesNormals) {\r\n for (let index = 0; index < this._meshPositions.length; index++) {\r\n const position = this._meshPositions[index];\r\n // Qui avviene lo spostamento vero e proprio del vertice lungo la normale\r\n const normal = this._getVertexComputedNormal(index);\r\n if (normal) {\r\n const scaledNormal = normal.scale(delta);\r\n position.addInPlace(scaledNormal);\r\n this._meshVerticesPositions[index * 3] = position.x;\r\n this._meshVerticesPositions[index * 3 + 1] = position.y;\r\n this._meshVerticesPositions[index * 3 + 2] = position.z;\r\n }\r\n }\r\n //this._reComputeNormals();\r\n this._mesh.markVerticesDataAsUpdatable(BABYLON.VertexBuffer.PositionKind, true);\r\n //this._mesh.markVerticesDataAsUpdatable(BABYLON.VertexBuffer.NormalKind, true);\r\n this._mesh.updateVerticesData(BABYLON.VertexBuffer.PositionKind, this._meshVerticesPositions);\r\n //this._mesh.updateVerticesData(BABYLON.VertexBuffer.NormalKind, this._meshVerticesNormals);\r\n this._mesh.computeWorldMatrix(true);\r\n }\r\n }\r\n }\r\n _reComputeNormals() {\r\n const faces = [];\r\n if (this._meshPositions && this._facesOfVertices) {\r\n for (let vertexIndex = 0; vertexIndex < this._meshPositions.length; vertexIndex++) {\r\n const faceOfVertices = this._facesOfVertices[vertexIndex];\r\n for (let index = 0; index < faceOfVertices.length; index++) {\r\n faces[faceOfVertices[index]] = true;\r\n }\r\n }\r\n let face;\r\n for (face in faces) {\r\n this._computeFaceNormal(face);\r\n }\r\n for (face in faces) {\r\n const faceInfo = this._getFaceVerticesIndex(face);\r\n if (faceInfo) {\r\n this._computeNormal(faceInfo.v1);\r\n this._computeNormal(faceInfo.v2);\r\n this._computeNormal(faceInfo.v3);\r\n }\r\n }\r\n }\r\n }\r\n _getVertexComputedNormal(vertexIndex) {\r\n let normal = null;\r\n if (this._meshPositions && this._meshFacesNormals) {\r\n const meshPositions = this._meshPositions;\r\n const meshFacesNormals = this._meshFacesNormals;\r\n const position = meshPositions[vertexIndex];\r\n const key = this._getPositionKey(position);\r\n if (this._sharedFacesOfVertices.hasOwnProperty(key)) {\r\n const faces = this._sharedFacesOfVertices[key];\r\n normal = BABYLON.Vector3.Zero();\r\n faces.forEach(faceID => {\r\n const faceNormal = meshFacesNormals[faceID];\r\n if (normal && faceNormal) {\r\n normal = normal.add(faceNormal);\r\n }\r\n });\r\n normal = BABYLON.Vector3.Normalize(normal.scale(1 / faces.size));\r\n }\r\n }\r\n return normal;\r\n }\r\n _computeNormal(vertexIndex) {\r\n const normal = this._getVertexComputedNormal(vertexIndex);\r\n if (normal && this._meshVerticesNormals) {\r\n this._meshVerticesNormals[vertexIndex * 3] = normal.x;\r\n this._meshVerticesNormals[vertexIndex * 3 + 1] = normal.y;\r\n this._meshVerticesNormals[vertexIndex * 3 + 2] = normal.z;\r\n }\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/NormalMap/ProceduralNormalMap.ts\":\n/*!****************************************************************!*\\\n !*** ../../3D/src/Components/NormalMap/ProceduralNormalMap.ts ***!\n \\****************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ProceduralNormalMap\": () => (/* binding */ ProceduralNormalMap)\n/* harmony export */ });\n/* harmony import */ var _ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ProceduralTextures/BlurXProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurXProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ProceduralTextures/BlurYProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurYProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_NormalMapProceduralTexture__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ProceduralTextures/NormalMapProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/NormalMapProceduralTexture.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\nclass ProceduralNormalMap {\r\n constructor(baseTexture, size, config, scene) {\r\n this._bias = 50.0;\r\n this._invertR = false;\r\n this._invertG = false;\r\n this._preBlurEnabled = false;\r\n this._preBlur = 3;\r\n this._postBlurEnabled = false;\r\n this._postBlur = 3;\r\n this._bevel = true;\r\n this._intensity = 0.5;\r\n this._activeTextures = [];\r\n this._preBlurXTexture = null;\r\n this._preBlurYTexture = null;\r\n this._normalMapTexture = null;\r\n this._postBlurXTexture = null;\r\n this._postBlurYTexture = null;\r\n this._baseTexture = baseTexture;\r\n this._size = size;\r\n this._scene = scene;\r\n this.init(config);\r\n }\r\n init(config) {\r\n this._bias = config.get(\"bias\");\r\n this._invertR = config.get(\"invertR\");\r\n this._invertG = config.get(\"invertG\");\r\n this._bevel = config.get(\"bevel\");\r\n this._intensity = config.get(\"intensity\");\r\n this._preBlurEnabled = config.get(\"preBlurEnabled\");\r\n this._preBlur = config.get(\"preBlur\");\r\n this._postBlurEnabled = config.get(\"postBlurEnabled\");\r\n this._postBlur = config.get(\"postBlur\");\r\n while (this._activeTextures.length > 0) {\r\n this._activeTextures.pop();\r\n }\r\n this.updateTextures();\r\n }\r\n updateTextures() {\r\n let texture = this.updatePreBlurTexture();\r\n texture = this.updateNormalmapTexture(texture);\r\n texture = this.updatePostBlurTexture(texture);\r\n }\r\n updatePreBlurTexture() {\r\n let resultTexture = this._baseTexture;\r\n if (this._preBlurEnabled) {\r\n if (!this._preBlurXTexture)\r\n this._preBlurXTexture = new _ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BlurXProceduralTexture(\"preBlurX\", this._size, this._scene, this._baseTexture, undefined, false);\r\n else\r\n this._preBlurXTexture.baseTexture = this._baseTexture;\r\n this._preBlurXTexture.beginInit();\r\n this._preBlurXTexture.blur = this._preBlur;\r\n this._preBlurXTexture.refreshRate = 0;\r\n this._preBlurXTexture.endInit();\r\n this._activeTextures.push(this._preBlurXTexture);\r\n if (!this._preBlurYTexture)\r\n this._preBlurYTexture = new _ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_1__.BlurYProceduralTexture(\"preBlurY\", this._size, this._scene, this._preBlurXTexture, undefined, false);\r\n else\r\n this._preBlurYTexture.baseTexture = this._preBlurXTexture;\r\n this._preBlurYTexture.beginInit();\r\n this._preBlurYTexture.blur = this._preBlur;\r\n this._preBlurYTexture.refreshRate = 0;\r\n this._preBlurYTexture.endInit();\r\n this._activeTextures.push(this._preBlurYTexture);\r\n resultTexture = this._preBlurYTexture;\r\n }\r\n return resultTexture;\r\n }\r\n updateNormalmapTexture(baseTexture) {\r\n if (!this._normalMapTexture)\r\n this._normalMapTexture = new _ProceduralTextures_NormalMapProceduralTexture__WEBPACK_IMPORTED_MODULE_2__.NormalMapProceduralTexture(\"procNormal\", this._size, this._scene, baseTexture, undefined, false);\r\n else\r\n this._normalMapTexture.baseTexture = baseTexture;\r\n this._normalMapTexture.beginInit();\r\n this._normalMapTexture.bias = this._bias;\r\n this._normalMapTexture.invertR = this._invertR;\r\n this._normalMapTexture.invertG = this._invertG;\r\n this._normalMapTexture.bevel = this._bevel;\r\n this._normalMapTexture.intensity = this._intensity;\r\n this._normalMapTexture.refreshRate = 0;\r\n this._normalMapTexture.endInit();\r\n this._activeTextures.push(this._normalMapTexture);\r\n return this._normalMapTexture;\r\n }\r\n updatePostBlurTexture(baseTexture) {\r\n let resultTexture = baseTexture;\r\n if (this._postBlurEnabled) {\r\n if (!this._postBlurXTexture)\r\n this._postBlurXTexture = new _ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BlurXProceduralTexture(\"postBlurX\", this._size, this._scene, baseTexture, undefined, false);\r\n else\r\n this._postBlurXTexture.baseTexture = baseTexture;\r\n if (this._postBlurXTexture) {\r\n this._postBlurXTexture.beginInit();\r\n this._postBlurXTexture.blur = this._postBlur;\r\n this._postBlurXTexture.refreshRate = 0;\r\n this._postBlurXTexture.endInit();\r\n this._activeTextures.push(this._postBlurXTexture);\r\n if (!this._postBlurYTexture)\r\n this._postBlurYTexture = new _ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_1__.BlurYProceduralTexture(\"postBlurY\", this._size, this._scene, this._postBlurXTexture, undefined, false);\r\n else\r\n this._postBlurYTexture.baseTexture = this._postBlurXTexture;\r\n if (this._postBlurYTexture) {\r\n this._postBlurYTexture.beginInit();\r\n this._postBlurYTexture.blur = this._postBlur;\r\n this._postBlurYTexture.refreshRate = 0;\r\n this._postBlurYTexture.endInit();\r\n this._activeTextures.push(this._postBlurYTexture);\r\n resultTexture = this._postBlurYTexture;\r\n }\r\n }\r\n }\r\n return resultTexture;\r\n }\r\n dispose() {\r\n if (this._preBlurXTexture) {\r\n this._preBlurXTexture.dispose();\r\n this._preBlurXTexture = null;\r\n }\r\n if (this._preBlurYTexture) {\r\n this._preBlurYTexture.dispose();\r\n this._preBlurYTexture = null;\r\n }\r\n if (this._normalMapTexture) {\r\n this._normalMapTexture.dispose();\r\n this._normalMapTexture = null;\r\n }\r\n if (this._postBlurXTexture) {\r\n this._postBlurXTexture.dispose();\r\n this._postBlurXTexture = null;\r\n }\r\n if (this._postBlurYTexture) {\r\n this._postBlurYTexture.dispose();\r\n this._postBlurYTexture = null;\r\n }\r\n }\r\n getNormalMapTextureAsync(baseTexture, config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.updateAsync(baseTexture, config);\r\n if (this._activeTextures.length > 0)\r\n return this._activeTextures[this._activeTextures.length - 1];\r\n return null;\r\n });\r\n }\r\n updateAsync(baseTexture, config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.init(config);\r\n if (this._activeTextures.length > 0) {\r\n this._activeTextures[0].baseTexture = baseTexture;\r\n for (var i = 0; i < this._activeTextures.length; i++) {\r\n yield this._activeTextures[i].isReadyAsync();\r\n this._activeTextures[i].render();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/Preview3D/Preview3DConfigurationManager.ts\":\n/*!**************************************************************************!*\\\n !*** ../../3D/src/Components/Preview3D/Preview3DConfigurationManager.ts ***!\n \\**************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Preview3DConfigurationManager\": () => (/* binding */ Preview3DConfigurationManager)\n/* harmony export */ });\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n\r\nclass Preview3DConfigurationManager {\r\n constructor(zkModel, zkScene, scene) {\r\n this._zkModel = zkModel;\r\n this._zkScene = zkScene;\r\n this._scene = scene;\r\n this._sceneHelper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper(scene);\r\n }\r\n // restituisce tutti materiali della scena per cui è possibile specificare se sono\r\n // variabili o meno in base alle varianti del prodotto. Da tale elenco verranno esclusi\r\n // tutti i materiali che sono stati già clonati per rappresentare la variazione.\r\n // verranno esclusi anche tutti i materiali che comunque sono stati marcati (metadata)\r\n // come materiali creati ad hoc per una preview di prodotto (isForPreview = true)\r\n // e verranno esclusi tutti i materiali non assegnati a nessuna mesh. \r\n // Verranno considerati quindi tutti i materiali non clonati assegnati ad almeno una mesh (direttamente\r\n // o indirettamente)\r\n getPossibleVariableMaterials() {\r\n const allMaterials = this._sceneHelper.getAllMaterials();\r\n const variableMaterials = [];\r\n for (let i = 0; i < allMaterials.length; i++) {\r\n const material = allMaterials[i];\r\n const meshes = this.getMeshesUsingMaterial(material.id);\r\n const isForVariant = this.isSceneMaterialForVariant(material);\r\n if (meshes.length > 0 && !isForVariant) {\r\n variableMaterials.push(material);\r\n }\r\n }\r\n return variableMaterials;\r\n /*\r\n const allMaterials: BABYLON.Material[] = this._sceneHelper.getAllMaterials();\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D) {\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions) {\r\n const optionsMaterials = variantsAttributeOptions.getOptionsMaterialIDs();\r\n for (let i = 0; i < allMaterials.length; i++) {\r\n let material = allMaterials[i];\r\n if (optionsMaterials.indexOf(material.id) !== -1 ||\r\n this.isSceneMaterialForVariant(material))\r\n allMaterials.splice(i--, 1);\r\n }\r\n }\r\n }\r\n return allMaterials;\r\n */\r\n }\r\n // Restituisce l'elenco dei materiali della scena già selezionati come variabili\r\n getVariableMaterials() {\r\n const materials = [];\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D) {\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions) {\r\n for (let i = 0; i < variantsAttributeOptions.get(\"variableMaterials\").length; i++) {\r\n let materialID = variantsAttributeOptions.get(\"variableMaterials\").at(i).get(\"materialID\");\r\n let material = this._scene.getMaterialByID(materialID);\r\n if (material)\r\n materials.push(material);\r\n }\r\n }\r\n }\r\n return materials;\r\n }\r\n getVariableMaterialsSelection() {\r\n const variableMaterials = this.getVariableMaterials();\r\n const variableMaterialsIds = variableMaterials.map(m => m.id);\r\n const allMaterials = this.getPossibleVariableMaterials();\r\n const selection = allMaterials.map(m => {\r\n return {\r\n id: m.id,\r\n name: m.name,\r\n selected: variableMaterialsIds.indexOf(m.id) != -1\r\n };\r\n });\r\n return selection;\r\n }\r\n getVariantMaterialsWithOriginal(modelColor) {\r\n const materials = [];\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D && modelColor && modelColor instanceof MPlaza.Color) {\r\n const variantID = this.getVariantID(modelColor);\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions) {\r\n const variantOption = variantsAttributeOptions.getVariantOption(variantID);\r\n if (variantOption) {\r\n for (let i = 0; i < variantOption.get(\"materials\").length; i++) {\r\n const variantOptionMaterial = variantOption.get(\"materials\").at(i);\r\n const materialID = variantOptionMaterial.get(\"optionMaterialID\");\r\n const material = this._scene.getMaterialByID(materialID);\r\n const variableMaterialID = variantOptionMaterial.get(\"variableMaterialID\");\r\n const variableMaterial = this._scene.getMaterialByID(variableMaterialID);\r\n if (material && variableMaterial)\r\n materials.push({ material, variableMaterial });\r\n }\r\n }\r\n }\r\n }\r\n return materials;\r\n }\r\n // Per tutti i materiali impostati come variabili, verifica che questi materiali esistano ancora.\r\n // Se un materiale esiste, aggiorna l'indicazione delle mesh alle quali è impostato e le azioni per opzione.\r\n // Se un materiale non esiste, lo elimina tra i materiali variabili.\r\n updateVariableMaterials() {\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D) {\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions) {\r\n const materialsToSet = [];\r\n const materialsToUnset = [];\r\n for (let i = 0; i < variantsAttributeOptions.get(\"variableMaterials\").length; i++) {\r\n const variableMaterial = variantsAttributeOptions.get(\"variableMaterials\").at(i);\r\n const materialID = variableMaterial.get(\"materialID\");\r\n let material = this._scene.getMaterialByID(materialID);\r\n if (material)\r\n materialsToSet.push(materialID);\r\n else\r\n materialsToUnset.push(materialID);\r\n }\r\n materialsToSet.forEach(id => this.setVariableMaterialID(id));\r\n materialsToUnset.forEach(id => this.unsetVariableMaterialID(id));\r\n }\r\n }\r\n }\r\n // Imposta un materiale come NON variabile per variante. Questo significa che vanno eliminate\r\n // tutte le eventuali azioni relative al materiale ed eventualmente le opzioni\r\n unsetVariableMaterialID(materialID) {\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D) {\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions) {\r\n const attribute = this._zkModel.getAttributeByGuid(variantsAttributeOptions.get(\"attributeGuid\"));\r\n // ripristino il materiale originale sulle mesh di riferimento\r\n const variableMaterial = variantsAttributeOptions.get(\"variableMaterials\").getVariableMaterial(materialID);\r\n if (variableMaterial) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material) {\r\n for (let i = 0; i < variableMaterial.get(\"meshes\").length; i++) {\r\n const mesh = this._scene.getMeshByID(variableMaterial.get(\"meshes\")[i]);\r\n if (mesh)\r\n this._sceneHelper.applyMaterial(material, mesh);\r\n }\r\n }\r\n }\r\n // elimino dall'elenco dei materiali variabili\r\n variantsAttributeOptions.removeVariableMaterial(materialID);\r\n // elimino tutte le azioni, opzione per opzione\r\n const variantOptionsToRemove = [];\r\n for (let i = 0; i < variantsAttributeOptions.get(\"variantOptions\").length; i++) {\r\n const variantOption = variantsAttributeOptions.get(\"variantOptions\").at(i);\r\n let option = null;\r\n if (attribute)\r\n option = attribute.getOptionByGuid(variantOption.get(\"optionGuid\"));\r\n const variantOptionMaterialsToRemove = [];\r\n for (let j = 0; j < variantOption.get(\"materials\").length; j++) {\r\n const variantOptionMaterial = variantOption.get(\"materials\").at(j);\r\n if (variantOptionMaterial.get(\"variableMaterialID\") === materialID) {\r\n for (let k = 0; k < variantOptionMaterial.get(\"actions\").length; k++) {\r\n const variantOptionMaterialAction = variantOptionMaterial.get(\"actions\").at(k);\r\n if (option) {\r\n const action = option.get(\"actions\").getActionByGuid(variantOptionMaterialAction.get(\"actionGuid\"));\r\n if (action)\r\n option.get(\"actions\").remove(action);\r\n }\r\n }\r\n // Elimino il materiale creato proprio per l'azione dell'opzione\r\n this.deleteSceneMaterial(variantOptionMaterial.get(\"optionMaterialID\"));\r\n variantOptionMaterialsToRemove.push(variantOptionMaterial);\r\n }\r\n }\r\n variantOption.get(\"materials\").remove(variantOptionMaterialsToRemove);\r\n if (variantOption.get(\"materials\").length === 0) {\r\n variantOptionsToRemove.push(variantOption);\r\n }\r\n }\r\n for (let i = 0; i < variantOptionsToRemove.length; i++)\r\n this.removeVariantOption(variantsAttributeOptions, variantOptionsToRemove[i]);\r\n }\r\n }\r\n }\r\n // Imposta un materiale come variabile. Vengono generati i materiali cloni per le varie opzioni\r\n // e create le azioni di trasformazione della scena che impostano il materiale sulle varie mesh\r\n setVariableMaterialID(materialID) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material) {\r\n const meshes = this.getMeshesUsingMaterial(material.id);\r\n const meshIDs = meshes.map(m => m.id);\r\n const preview3D = this._zkModel.getOrCreatePreview3D();\r\n const variantsAttributeOptions = preview3D.getOrCreateVariantsAttributeOptions();\r\n const attribute = this.getOrCreateVariantAttribute(variantsAttributeOptions);\r\n // Imposto l'elenco delle mesh che hanno il materiale in questione\r\n variantsAttributeOptions.setVariableMaterial(materialID, meshIDs);\r\n // Variante per variante verifico l'opzione associata\r\n const variantIDs = [];\r\n for (let i = 0; i < this._zkModel.get(\"colors\").length; i++) {\r\n const modelColor = this._zkModel.get(\"colors\").at(i);\r\n const variantID = this.getVariantID(modelColor);\r\n variantIDs.push(variantID);\r\n this.checkVariantOption(variantsAttributeOptions, material, meshes, modelColor);\r\n }\r\n // elimino le opzioni associate a varianti non più esistenti\r\n for (let i = 0; i < variantsAttributeOptions.get(\"variantOptions\").length; i++) {\r\n const variantOption = variantsAttributeOptions.get(\"variantOptions\").at(i);\r\n if (variantIDs.indexOf(variantOption.get(\"variantID\")) === -1)\r\n this.removeVariantOption(variantsAttributeOptions, variantOption);\r\n }\r\n }\r\n }\r\n checkVariantOption(variantsAttributeOptions, material, meshes, modelColor) {\r\n const variantID = this.getVariantID(modelColor);\r\n let variantOption = variantsAttributeOptions.get(\"variantOptions\").getVariantOption(variantID);\r\n if (!variantOption) {\r\n variantOption = this.createVariantOption(variantsAttributeOptions, modelColor);\r\n }\r\n this.checkVariantOptionMaterial(variantsAttributeOptions, variantOption, material, meshes, modelColor);\r\n }\r\n createVariantOption(variantsAttributeOptions, modelColor) {\r\n const variantID = this.getVariantID(modelColor);\r\n const attribute = this.getOrCreateVariantAttribute(variantsAttributeOptions);\r\n const option = this.getOrCreateVariantAttributeOption(variantsAttributeOptions, modelColor, attribute);\r\n const variantOption = new MPlaza.VariantOption();\r\n variantOption.set(\"variantID\", variantID);\r\n variantOption.set(\"optionGuid\", option.get(\"optionGuid\"));\r\n variantsAttributeOptions.get(\"variantOptions\").push(variantOption);\r\n return variantOption;\r\n }\r\n removeVariantOption(variantsAttributeOptions, variantOption) {\r\n // Elimino l'opzione dall'attributo\r\n const attribute = this._zkModel.getAttributeByGuid(variantsAttributeOptions.get(\"attributeGuid\"));\r\n if (attribute) {\r\n const option = attribute.getOptionByGuid(variantOption.get(\"optionGuid\"));\r\n if (option) {\r\n attribute.get(\"options\").remove(option);\r\n }\r\n }\r\n // Elimino i materiali clonati dalla scena\r\n for (let i = 0; i < variantOption.get(\"materials\").length; i++) {\r\n const variantOptionMaterial = variantOption.get(\"materials\").at(i);\r\n const materialID = variantOptionMaterial.get(\"optionMaterialID\");\r\n this.deleteSceneMaterial(materialID);\r\n }\r\n variantsAttributeOptions.get(\"variantOptions\").remove(variantOption);\r\n }\r\n getOrCreateVariantAttribute(variantsAttributeOptions) {\r\n let attribute = null;\r\n if (variantsAttributeOptions.get(\"attributeGuid\"))\r\n attribute = this._zkModel.getAttributeByGuid(variantsAttributeOptions.get(\"attributeGuid\"));\r\n if (!attribute) {\r\n // verifico se già esite un attributo con codice variants_attribute\r\n attribute = this._zkModel.get(\"attributes\").getAttributeByCode(\"variants_attribute\");\r\n }\r\n if (!attribute) {\r\n // Per forza di cose elimino tutte le eventuali opzioni esistenti (non dovrebbero essercene)\r\n for (let i = 0; i < variantsAttributeOptions.get(\"variantOptions\").length; i++) {\r\n this.removeVariantOption(variantsAttributeOptions, variantsAttributeOptions.get(\"variantOptions\").at(i));\r\n }\r\n attribute = new MPlaza.Attribute();\r\n attribute.set(\"attributeGuid\", MPlaza.generateUUID());\r\n attribute.set(\"name\", \"Variants attribute\");\r\n attribute.set(\"attributeCode\", \"variants_attribute\");\r\n attribute.set(\"attributeTypeID\", MPlaza.AttributeType.Options);\r\n variantsAttributeOptions.set(\"attributeGuid\", attribute.get(\"attributeGuid\"));\r\n this._zkModel.get(\"attributes\").push(attribute);\r\n }\r\n return attribute;\r\n }\r\n getOrCreateVariantAttributeOption(variantsAttributeOptions, modelColor, attribute) {\r\n const variantID = this.getVariantID(modelColor);\r\n let option = attribute.getOptionByCode(variantID);\r\n if (!option) {\r\n option = new MPlaza.AttributeOption();\r\n option.set(\"optionCode\", variantID);\r\n option.set(\"name\", modelColor.get(\"name\"));\r\n attribute.get(\"options\").push(option);\r\n }\r\n return option;\r\n }\r\n getVariantID(modelColor) {\r\n return `${modelColor.getModelID()}_${modelColor.getColorID()}`;\r\n }\r\n checkVariantOptionMaterial(variantsAttributeOptions, variantOption, material, meshes, modelColor) {\r\n const variantID = this.getVariantID(modelColor);\r\n let variantOptionMaterial = null;\r\n for (let i = 0; i < variantOption.get(\"materials\").length; i++) {\r\n const mat = variantOption.get(\"materials\").at(i);\r\n if (mat.get(\"variableMaterialID\") === material.id) {\r\n variantOptionMaterial = mat;\r\n break;\r\n }\r\n }\r\n if (!variantOptionMaterial) {\r\n // verifico se esiste nella scena già un materiale predisposto per la variante\r\n // questo perme di creare un materiale manualmente ed utilizzarlo come materiale di variante,\r\n // ovviamente impostato opportunamente i metadati del materiale\r\n let optionMaterial = this.getSceneMaterialForVariant(variantID, material.id);\r\n if (!optionMaterial) {\r\n // creo il materiale per l'opzione come clone del material passato\r\n const name = `${material.name} - ${modelColor.get(\"name\")}`;\r\n optionMaterial = this.cloneSceneMaterial(material.id, undefined, name);\r\n if (optionMaterial)\r\n this.setupSceneMaterialForVariant(optionMaterial, variantID, material.id);\r\n }\r\n if (optionMaterial) {\r\n variantOptionMaterial = new MPlaza.VariantOptionMaterial();\r\n variantOptionMaterial.set(\"optionMaterialID\", optionMaterial.id);\r\n variantOptionMaterial.set(\"variableMaterialID\", material.id);\r\n variantOption.get(\"materials\").push(variantOptionMaterial);\r\n }\r\n }\r\n if (variantOptionMaterial)\r\n this.checkVariantOptionActions(variantsAttributeOptions, variantOption, variantOptionMaterial, material, meshes, modelColor);\r\n }\r\n // Una materiale creato per una variante viene marcato con dei metadati. Questo significa che i materiali creati in altro modo\r\n // e con i materiali giusti verrano riconosciuti e utilizzati per le azioni delle opzioni\r\n setupSceneMaterialForVariant(material, variantID, variableMaterialID) {\r\n const metadata = this.getOrCreateSceneMaterialMetadata(material.id);\r\n metadata.isForPreview = true;\r\n metadata.autoCreate = true;\r\n metadata.variantID = variantID;\r\n metadata.variableMaterialID = variableMaterialID;\r\n }\r\n getSceneMaterialForVariant(variantID, variableMaterialID) {\r\n const materials = this._sceneHelper.getAllMaterials();\r\n for (let i = 0; i < materials.length; i++) {\r\n const material = materials[i];\r\n const metadata = this.getSceneMaterialMetadata(material.id);\r\n if (metadata &&\r\n metadata.isForPreview &&\r\n metadata.variantID === variantID &&\r\n metadata.variableMaterialID === variableMaterialID) {\r\n return materials[i];\r\n }\r\n }\r\n return null;\r\n }\r\n isSceneMaterialForVariant(material) {\r\n if (!material)\r\n return false;\r\n const metadata = this.getSceneMaterialMetadata(material.id);\r\n return metadata && metadata.isForPreview;\r\n }\r\n canDeleteSceneMaterialForVariant(material) {\r\n if (!material)\r\n return false;\r\n const metadata = this.getSceneMaterialMetadata(material.id);\r\n if (!metadata)\r\n return true;\r\n if (metadata.isForPreview === undefined || metadata.isForPreview === null)\r\n return true;\r\n if (metadata.autoCreate === undefined || metadata.autoCreate === null)\r\n return true;\r\n return metadata.isForPreview && metadata.autoCreate;\r\n }\r\n getSceneMaterialMetadata(materialID) {\r\n return this._sceneHelper.getSceneMaterialMetadata(materialID);\r\n }\r\n getOrCreateSceneMaterialMetadata(materialID) {\r\n return this._sceneHelper.getOrCreateSceneMaterialMetadata(materialID);\r\n }\r\n removeSceneMaterialMetadata(materialID) {\r\n this._sceneHelper.removeSceneMaterialMetadata(materialID);\r\n }\r\n // Clona un materiale\r\n cloneSceneMaterial(id, newId, newName) {\r\n let material = this._scene.getMaterialByID(id);\r\n let newMaterial = null;\r\n if (material) {\r\n const materialName = newName || `${material.name} - clone`;\r\n newMaterial = material.clone(materialName);\r\n if (newMaterial) {\r\n const materialId = newId || MPlaza.generateUUID();\r\n newMaterial.id = materialId;\r\n // Verifico se il materiale originario deriva da un materiale di libreria.\r\n // Nel caso, devo impostare il mapping in modo da copiare anche le relative textures\r\n const mapping = this._zkScene.getMappingForSceneMaterial(material.id);\r\n if (mapping) {\r\n const libraryMaterialID = mapping.get(\"libraryMaterialID\");\r\n this._zkScene.mapLibraryMaterial(libraryMaterialID, newMaterial.id);\r\n const textures = this._sceneHelper.getTexturesForMaterial(newMaterial);\r\n for (let i = 0; i < textures.length; i++) {\r\n let texture = textures[i];\r\n texture[\"materialMapping\"] = { libraryMaterialID: libraryMaterialID, sceneMaterialID: newMaterial.id };\r\n }\r\n }\r\n }\r\n }\r\n return newMaterial;\r\n }\r\n deleteSceneMaterial(materialID) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material && this.canDeleteSceneMaterialForVariant(material)) {\r\n this.removeSceneMaterialMetadata(materialID);\r\n const libraryMaterialID = this._zkScene.getLibraryShaderMaterialIDForSceneMaterial(materialID);\r\n if (libraryMaterialID)\r\n this._zkScene.unregisterShaderMaterial(libraryMaterialID);\r\n this._zkScene.removeMappingForSceneMaterial(material.id);\r\n const textures = this._sceneHelper.getTexturesExclusivelyForMaterial(material);\r\n material.dispose();\r\n for (let i = 0; i < textures.length; i++)\r\n textures[i].dispose();\r\n }\r\n }\r\n checkVariantOptionActions(variantsAttributeOptions, variantOption, variantOptionMaterial, material, meshes, modelColor) {\r\n // verifico che ci siano tutte e solo le azioni per le mesh\r\n let meshIDs = [];\r\n meshes.forEach(m => meshIDs.push(m.id));\r\n let attribute = this.getOrCreateVariantAttribute(variantsAttributeOptions);\r\n let option = this.getOrCreateVariantAttributeOption(variantsAttributeOptions, modelColor, attribute);\r\n for (let i = 0; i < meshes.length; i++) {\r\n let mesh = meshes[i];\r\n let variantOptionMaterialAction = variantOptionMaterial.get(\"actions\").getActionForMesh(mesh.id);\r\n if (!variantOptionMaterialAction) {\r\n // creo l'azione\r\n let action = new MPlaza.AttributeSceneAction();\r\n action.set(\"name\", \"\");\r\n action.set(\"actionTypeID\", MPlaza.SceneActionType.SetMeshMaterial);\r\n action.set(\"sceneElementTypeID\", MPlaza.SceneElementType.Mesh);\r\n action.set(\"selector\", mesh.id);\r\n action.set(\"value\", variantOptionMaterial.get(\"optionMaterialID\"));\r\n option.get(\"actions\").push(action);\r\n variantOptionMaterialAction = new MPlaza.VariantOptionMaterialAction();\r\n variantOptionMaterialAction.set(\"actionGuid\", action.get(\"actionGuid\"));\r\n variantOptionMaterialAction.set(\"meshID\", mesh.id);\r\n variantOptionMaterial.get(\"actions\").push(variantOptionMaterialAction);\r\n }\r\n }\r\n // Elimino le azioni sulle mesh che non usano più il materiale dell'opzione\r\n let actionsToRemove = [];\r\n for (let i = 0; i < variantOptionMaterial.get(\"actions\").length; i++) {\r\n let variantOptionMaterialAction = variantOptionMaterial.get(\"actions\").at(i);\r\n if (meshIDs.indexOf(variantOptionMaterialAction.get(\"meshID\")) === -1) {\r\n // elimino l'azione tra quelle dell'opzione\r\n let action = option.getActionByGuid(variantOptionMaterialAction.get(\"actionGuid\"));\r\n if (action) {\r\n option.get(\"actions\").remove(action);\r\n }\r\n actionsToRemove.push(variantOptionMaterialAction);\r\n }\r\n }\r\n variantOptionMaterial.get(\"actions\").remove(actionsToRemove);\r\n }\r\n getVariantMaterials(modelColor) {\r\n let materials = [];\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D && modelColor && modelColor instanceof MPlaza.Color) {\r\n const variantID = this.getVariantID(modelColor);\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions) {\r\n const variantOption = variantsAttributeOptions.getVariantOption(variantID);\r\n if (variantOption) {\r\n for (let i = 0; i < variantOption.get(\"materials\").length; i++) {\r\n const variantOptionMaterial = variantOption.get(\"materials\").at(i);\r\n const materialID = variantOptionMaterial.get(\"optionMaterialID\");\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material)\r\n materials.push(material);\r\n }\r\n }\r\n }\r\n }\r\n return materials;\r\n }\r\n getSelectedAttributeOption(selectedModelColor) {\r\n let res = {\r\n attributeID: null,\r\n attributeGuid: null,\r\n optionID: null,\r\n optionGuid: null\r\n };\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D && selectedModelColor && selectedModelColor instanceof MPlaza.Color) {\r\n const variantID = this.getVariantID(selectedModelColor);\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions && variantsAttributeOptions.get(\"attributeGuid\")) {\r\n const attribute = this._zkModel.getAttributeByGuid(variantsAttributeOptions.get(\"attributeGuid\"));\r\n if (attribute) {\r\n const variantOption = variantsAttributeOptions.getVariantOption(variantID);\r\n if (variantOption) {\r\n const option = attribute.getOptionByGuid(variantOption.get(\"optionGuid\"));\r\n if (option) {\r\n res.attributeID = attribute.get(\"attributeID\");\r\n res.attributeGuid = attribute.get(\"attributeGuid\");\r\n res.optionID = option.get(\"optionID\");\r\n res.optionGuid = option.get(\"optionGuid\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n resetOriginaMaterialsOnMeshes() {\r\n const preview3D = this._zkModel.getPreview3D();\r\n if (preview3D) {\r\n const variantsAttributeOptions = preview3D.getVariantsAttributeOptions();\r\n if (variantsAttributeOptions) {\r\n for (let i = 0; i < variantsAttributeOptions.get(\"variableMaterials\").length; i++) {\r\n const variableMaterial = variantsAttributeOptions.get(\"variableMaterials\").at(i);\r\n const materialID = variableMaterial.get(\"materialID\");\r\n const meshes = variableMaterial.get(\"meshes\");\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material) {\r\n for (let j = 0; j < meshes.length; j++) {\r\n const mesh = this._scene.getMeshByID(variableMaterial.get(\"meshes\")[j]);\r\n if (mesh)\r\n this._sceneHelper.applyMaterial(material, mesh);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // Una mesh usa un materiale se sulla mesh è impostato direttamente quel materiale o se sulla mesh è\r\n // attualmente impostato un materiale creato ad hoc per la preview 3D e che deriva dal materiale in oggetto (clone)\r\n getMeshesUsingMaterial(materialID) {\r\n const meshes = [];\r\n const allMeshes = this._sceneHelper.getSceneMeshes();\r\n for (let i = 0; i < allMeshes.length; i++) {\r\n const mesh = allMeshes[i];\r\n if (this._sceneHelper.isMeshUsingMaterial(mesh, materialID)) {\r\n meshes.push(mesh);\r\n }\r\n else {\r\n const meshMaterials = this._sceneHelper.getMeshMaterials(mesh);\r\n for (let j = 0; j < meshMaterials.length; j++) {\r\n const meshMaterial = meshMaterials[j];\r\n const metadata = this.getSceneMaterialMetadata(meshMaterial.id);\r\n if (metadata && metadata.isForPreview &&\r\n metadata.variableMaterialID &&\r\n metadata.variableMaterialID === materialID) {\r\n meshes.push(mesh);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return meshes;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\":\n/*!***************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BaseProceduralTexture\": () => (/* binding */ BaseProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n\r\nclass BaseProceduralTexture extends BABYLON.ProceduralTexture {\r\n constructor(name, size, fragment, scene, baseTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, fragment, scene, fallbackTexture, generateMipMaps);\r\n this._initializing = false;\r\n this._baseTexture = baseTexture;\r\n this.updateShaderUniforms();\r\n }\r\n get initializing() {\r\n return this._initializing;\r\n }\r\n get baseTexture() {\r\n return this._baseTexture;\r\n }\r\n set baseTexture(texture) {\r\n this._baseTexture = texture;\r\n this.updateShaderUniforms();\r\n }\r\n isReadyAsync() {\r\n return _SceneHelper__WEBPACK_IMPORTED_MODULE_0__.SceneHelper.whenTextureIsReadyAsync(this);\r\n }\r\n dispose() {\r\n super.dispose();\r\n if (this._baseTexture)\r\n this._baseTexture.dispose();\r\n }\r\n beginInit() {\r\n this._initializing = true;\r\n }\r\n endInit() {\r\n this._initializing = false;\r\n this.updateShaderUniforms();\r\n }\r\n updateShaderUniforms() {\r\n if (this._initializing)\r\n return;\r\n this.setBaseTextureUniform();\r\n }\r\n setBaseTextureUniform() {\r\n this.setTexture(\"uSampler\", this._baseTexture);\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/BlendProceduralTexture.ts\":\n/*!****************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/BlendProceduralTexture.ts ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BlendProceduralTexture\": () => (/* binding */ BlendProceduralTexture)\n/* harmony export */ });\nclass BlendProceduralTexture extends BABYLON.ProceduralTexture {\r\n constructor(name, size, scene = null, fallbackTexture, generateMipMaps) {\r\n super(name, size, BlendProceduralTexture.FRAGMENT_SHADER, scene, fallbackTexture, generateMipMaps);\r\n this._baseTexture = null;\r\n this._blendTexture = null;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n if (this._baseTexture)\r\n this._baseTexture.dispose();\r\n if (this._blendTexture)\r\n this._blendTexture.dispose();\r\n }\r\n updateShaderUniforms() {\r\n if (this._baseTexture) {\r\n this.setTexture(\"uSampler\", this._baseTexture);\r\n this.setInt(\"hasSampler\", 1);\r\n this.setVector2(\"uSamplerScale\", new BABYLON.Vector2(this._baseTexture.uScale, this._baseTexture.vScale));\r\n }\r\n else {\r\n this.setInt(\"hasSampler\", 0);\r\n this.setVector2(\"uSamplerScale\", new BABYLON.Vector2(1, 1));\r\n }\r\n if (this._blendTexture) {\r\n this.setTexture(\"uBlendSampler\", this._blendTexture);\r\n this.setInt(\"hasBlend\", 1);\r\n this.setVector2(\"uBlendScale\", new BABYLON.Vector2(this._blendTexture.uScale, this._blendTexture.vScale));\r\n }\r\n else {\r\n this.setInt(\"hasBlend\", 0);\r\n this.setVector2(\"uBlendScale\", new BABYLON.Vector2(1, 1));\r\n }\r\n this.setFloat(\"size\", this.getRenderSize());\r\n }\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n isReady() {\r\n /*\r\n if (!this._baseTexture || !this._baseTexture.isReady()) {\r\n return false;\r\n }\r\n */\r\n if (this._baseTexture && !this._baseTexture.isReady())\r\n return false;\r\n if (this._blendTexture && !this._blendTexture.isReady())\r\n return false;\r\n return super.isReady();\r\n }\r\n //@BABYLON.serializeAsTexture()\r\n get baseTexture() {\r\n return this._baseTexture;\r\n }\r\n set baseTexture(texture) {\r\n this._baseTexture = texture;\r\n this.updateShaderUniforms();\r\n }\r\n //@BABYLON.serializeAsTexture()\r\n get blendTexture() {\r\n return this._blendTexture;\r\n }\r\n set blendTexture(texture) {\r\n this._blendTexture = texture;\r\n this.updateShaderUniforms();\r\n }\r\n /**\r\n * Serializes this normal map procedural texture\r\n * @returns a serialized normal map procedural texture object\r\n */\r\n serialize() {\r\n var serializationObject = BABYLON.SerializationHelper.Serialize(this, super.serialize());\r\n serializationObject.customType = BlendProceduralTexture.CUSTOM_TYPE;\r\n if (this.baseTexture)\r\n serializationObject.baseTexture = this.baseTexture.serialize();\r\n else\r\n serializationObject.baseTexture = null;\r\n if (this.blendTexture)\r\n serializationObject.blendTexture = this.blendTexture.serialize();\r\n else\r\n serializationObject.blendTexture = null;\r\n return serializationObject;\r\n }\r\n /**\r\n * Creates a Normal Map Procedural Texture from parsed normal map procedural texture data\r\n * @param parsedTexture defines parsed texture data\r\n * @param scene defines the current scene\r\n * @param rootUrl defines the root URL containing normal map procedural texture information\r\n * @returns a parsed Normal Map Procedural Texture\r\n */\r\n static Parse(parsedTexture, scene, rootUrl) {\r\n var texture = BABYLON.SerializationHelper.Parse(() => new BlendProceduralTexture(parsedTexture.name, parsedTexture._size, scene, undefined, parsedTexture._generateMipMaps), parsedTexture, scene, rootUrl);\r\n if (parsedTexture.baseTexture)\r\n texture.baseTexture = BABYLON.Texture.Parse(parsedTexture.baseTexture, scene, rootUrl);\r\n if (parsedTexture.blendTexture)\r\n texture.blendTexture = BABYLON.Texture.Parse(parsedTexture.blendTexture, scene, rootUrl);\r\n return texture;\r\n }\r\n}\r\nBlendProceduralTexture.FRAGMENT_SHADER = \"zakeke_BlendProceduralTexture\";\r\nBlendProceduralTexture.CUSTOM_TYPE = \"Zakeke.BlendProceduralTexture\";\r\nvar shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'uniform sampler2D uSampler;',\r\n 'uniform sampler2D uBlendSampler;',\r\n 'uniform vec2 uSamplerScale;',\r\n 'uniform vec2 uBlendScale;',\r\n 'uniform bool hasSampler;',\r\n 'uniform bool hasBlend;',\r\n 'float BlendOverlayf(float base, float blend)',\r\n '{',\r\n ' return (base < 0.5 ? (2.0 * base * blend) : (1.0 - 2.0 * (1.0 - base) * (1.0 - blend)));',\r\n '}',\r\n 'vec4 BlendOverlay(vec4 base, vec4 blend)',\r\n '{',\r\n ' return vec4(BlendOverlayf(base.r, blend.r), BlendOverlayf(base.g, blend.g), BlendOverlayf(base.b, blend.b), BlendOverlayf(base.a, blend.a));',\r\n '}',\r\n 'void main(void) {',\r\n ' if (!hasSampler && !hasBlend)',\r\n ' {',\r\n ' gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);',\r\n ' return;',\r\n ' }',\r\n ' if (hasSampler && !hasBlend)',\r\n ' {',\r\n ' gl_FragColor = texture2D(uSampler, vUV.xy*uSamplerScale);',\r\n ' return;',\r\n ' }',\r\n ' if (!hasSampler && hasBlend)',\r\n ' {',\r\n ' gl_FragColor = texture2D(uBlendSampler, vUV.xy*uBlendScale);',\r\n ' return;',\r\n ' }',\r\n ' vec4 base = texture2D(uSampler, vUV.xy*uSamplerScale);',\r\n ' vec4 blend = texture2D(uBlendSampler, vUV.xy*uBlendScale);',\r\n ' gl_FragColor = BlendOverlay(base, blend);',\r\n '}'\r\n];\r\nvar shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${BlendProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\nBABYLON.RegisterClass(\"Zakeke.BlendProceduralTexture\", BlendProceduralTexture);\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/BlurXProceduralTexture.ts\":\n/*!****************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/BlurXProceduralTexture.ts ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BlurXProceduralTexture\": () => (/* binding */ BlurXProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass BlurXProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, BlurXProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._blur = 1 / 512;\r\n this.updateShaderUniforms();\r\n }\r\n //@BABYLON.serialize()\r\n get blur() {\r\n return this._blur / (1 / 7000);\r\n }\r\n set blur(value) {\r\n this._blur = (1 / 7000) * value;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n const blur = this._blur != undefined ? this._blur : (1 / 512);\r\n this.setFloat(\"blur\", blur);\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nBlurXProceduralTexture.FRAGMENT_SHADER = \"zakeke_BlurXProceduralTexture\";\r\nBlurXProceduralTexture.CUSTOM_TYPE = \"Zakeke.BlurXProceduralTexture\";\r\nconst shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'varying vec4 vColor;',\r\n 'uniform float blur;',\r\n 'uniform sampler2D uSampler;',\r\n 'void main(void) {',\r\n ' vec4 sum = vec4(0.0);',\r\n ' sum += texture2D(uSampler, vec2(vUV.x - 4.0*blur, vUV.y)) * 0.05;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x - 3.0*blur, vUV.y)) * 0.09;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x - 2.0*blur, vUV.y)) * 0.12;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x - blur, vUV.y)) * 0.15;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y)) * 0.16;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x + blur, vUV.y)) * 0.15;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x + 2.0*blur, vUV.y)) * 0.12;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x + 3.0*blur, vUV.y)) * 0.09;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x + 4.0*blur, vUV.y)) * 0.05;',\r\n ' gl_FragColor = sum;',\r\n '}'\r\n];\r\nconst shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${BlurXProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/BlurYProceduralTexture.ts\":\n/*!****************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/BlurYProceduralTexture.ts ***!\n \\****************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BlurYProceduralTexture\": () => (/* binding */ BlurYProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass BlurYProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, BlurYProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._blur = 1 / 512;\r\n this.updateShaderUniforms();\r\n }\r\n get blur() {\r\n return this._blur / (1 / 7000);\r\n }\r\n set blur(value) {\r\n this._blur = (1 / 7000) * value;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n const blur = this._blur != undefined ? this._blur : (1 / 512);\r\n this.setFloat(\"blur\", blur);\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nBlurYProceduralTexture.FRAGMENT_SHADER = \"zakeke_BlurYProceduralTexture\";\r\nBlurYProceduralTexture.CUSTOM_TYPE = \"Zakeke.BlurYProceduralTexture\";\r\nconst shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'varying vec4 vColor;',\r\n 'uniform float blur;',\r\n 'uniform sampler2D uSampler;',\r\n 'void main(void) {',\r\n ' vec4 sum = vec4(0.0);',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y - 4.0*blur)) * 0.05;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y - 3.0*blur)) * 0.09;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y - 2.0*blur)) * 0.12;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y - blur)) * 0.15;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y)) * 0.16;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y + blur)) * 0.15;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y + 2.0*blur)) * 0.12;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y + 3.0*blur)) * 0.09;',\r\n ' sum += texture2D(uSampler, vec2(vUV.x, vUV.y + 4.0*blur)) * 0.05;',\r\n ' gl_FragColor = sum;',\r\n '}'\r\n];\r\nconst shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${BlurYProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/ForegroundBackgroundProceduralTexture.ts\":\n/*!*******************************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/ForegroundBackgroundProceduralTexture.ts ***!\n \\*******************************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ForegroundBackgroundProceduralTexture\": () => (/* binding */ ForegroundBackgroundProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass ForegroundBackgroundProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, ForegroundBackgroundProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._foreColor = new BABYLON.Vector3(1, 1, 1);\r\n this._backColor = new BABYLON.Vector3(0, 0, 0);\r\n this.updateShaderUniforms();\r\n }\r\n //@BABYLON.serializeAsVector3()\r\n get foreColor() {\r\n return this._foreColor;\r\n }\r\n set foreColor(value) {\r\n this._foreColor = value;\r\n this.updateShaderUniforms();\r\n }\r\n //@BABYLON.serializeAsVector3()\r\n get backColor() {\r\n return this._backColor;\r\n }\r\n set backColor(value) {\r\n this._backColor = value;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n const foreColor = this._foreColor || new BABYLON.Vector3(1, 1, 1);\r\n const backColor = this._backColor || new BABYLON.Vector3(0, 0, 0);\r\n this.setVector3(\"foreColor\", foreColor);\r\n this.setVector3(\"backColor\", backColor);\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nForegroundBackgroundProceduralTexture.FRAGMENT_SHADER = \"zakeke_ForegroundBackgroundProceduralTexture\";\r\nForegroundBackgroundProceduralTexture.CUSTOM_TYPE = \"Zakeke.ForegroundBackgroundProceduralTexture\";\r\nconst shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'uniform sampler2D uSampler;',\r\n 'uniform vec3 foreColor;',\r\n 'uniform vec3 backColor;',\r\n 'void main(void) {',\r\n ' // background color',\r\n ' vec4 background = vec4(backColor.xyz, 1);',\r\n ' vec4 foreground = vec4(foreColor.xyz, 1);',\r\n ' // texel',\r\n '\tvec4 t0 = texture2D(uSampler, vUV.xy);',\r\n ' // change in white',\r\n ' t0 = vec4(foreground.xyz, t0.a);',\r\n ' gl_FragColor = mix(background, t0, t0.a);',\r\n '}'\r\n];\r\nconst shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${ForegroundBackgroundProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/MoveProceduralTexture.ts\":\n/*!***************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/MoveProceduralTexture.ts ***!\n \\***************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MoveProceduralTexture\": () => (/* binding */ MoveProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass MoveProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, MoveProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._offset = new BABYLON.Vector2(0, 0);\r\n this.updateShaderUniforms();\r\n }\r\n //@BABYLON.serializeAsVector2()\r\n get offset() {\r\n return this._offset;\r\n }\r\n set offset(value) {\r\n this._offset = value;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n const size = this.getRenderSize();\r\n const offset = this._offset || new BABYLON.Vector2();\r\n this.setVector2(\"offset\", new BABYLON.Vector2(offset.x / size, offset.y / size));\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nMoveProceduralTexture.FRAGMENT_SHADER = \"zakeke_MoveProceduralTexture\";\r\nMoveProceduralTexture.CUSTOM_TYPE = \"Zakeke.MoveProceduralTexture\";\r\nconst shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'uniform sampler2D uSampler;',\r\n 'uniform vec2 offset;',\r\n 'void main(void) {',\r\n ' // translated texel',\r\n ' gl_FragColor = texture2D(uSampler, vec2(vUV.x - offset.x, vUV.y + offset.y));',\r\n //' gl_FragColor = texture2D(uSampler, vUV.xy - offset);',\r\n '}'\r\n];\r\nconst shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${MoveProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/MultiplyProceduralTexture.ts\":\n/*!*******************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/MultiplyProceduralTexture.ts ***!\n \\*******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MultiplyProceduralTexture\": () => (/* binding */ MultiplyProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass MultiplyProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, blendTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, MultiplyProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._blendTexture = blendTexture;\r\n this.updateShaderUniforms();\r\n }\r\n //@BABYLON.serializeAsTexture()\r\n get blendTexture() {\r\n return this._blendTexture;\r\n }\r\n set blendTexture(texture) {\r\n this._blendTexture = texture;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n if (this._blendTexture)\r\n this._blendTexture.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n var baseScale = new BABYLON.Vector2(1, 1);\r\n if (this.baseTexture)\r\n baseScale = new BABYLON.Vector2(this.baseTexture.uScale, this.baseTexture.vScale);\r\n this.setVector2(\"uSamplerScale\", baseScale);\r\n this.setTexture(\"uBlendSampler\", this._blendTexture);\r\n var blendScale = new BABYLON.Vector2(1, 1);\r\n if (this._blendTexture)\r\n blendScale = new BABYLON.Vector2(this._blendTexture.uScale, this._blendTexture.vScale);\r\n this.setVector2(\"uBlendScale\", blendScale);\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nMultiplyProceduralTexture.FRAGMENT_SHADER = \"zakeke_MultiplyProceduralTexture\";\r\nMultiplyProceduralTexture.CUSTOM_TYPE = \"Zakeke.MultiplyProceduralTexture\";\r\nconst shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'uniform sampler2D uSampler;',\r\n 'uniform sampler2D uBlendSampler;',\r\n 'uniform vec2 uSamplerScale;',\r\n 'uniform vec2 uBlendScale;',\r\n 'void main(void) {',\r\n '\tvec4 base = texture2D(uSampler, vUV.xy*uSamplerScale);',\r\n '\tvec4 blend = texture2D(uBlendSampler, vUV.xy*uBlendScale);',\r\n ' gl_FragColor = base * blend;',\r\n '}'\r\n];\r\nconst shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${MultiplyProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/NormalMapProceduralTexture.ts\":\n/*!********************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/NormalMapProceduralTexture.ts ***!\n \\********************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"NormalMapProceduralTexture\": () => (/* binding */ NormalMapProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass NormalMapProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, NormalMapProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._bias = 50.0;\r\n this._invertR = false;\r\n this._invertG = false;\r\n this._bevel = false;\r\n this._intensity = 0.5;\r\n this.updateShaderUniforms();\r\n }\r\n get bias() {\r\n if (this._bias == undefined)\r\n return 50.0;\r\n return this._bias;\r\n }\r\n set bias(value) {\r\n this._bias = value;\r\n this.updateShaderUniforms();\r\n }\r\n get invertR() {\r\n if (this._invertR == undefined)\r\n return false;\r\n return this._invertR;\r\n }\r\n set invertR(value) {\r\n this._invertR = value;\r\n this.updateShaderUniforms();\r\n }\r\n get invertG() {\r\n if (this._invertG == undefined)\r\n return false;\r\n return this._invertG;\r\n }\r\n set invertG(value) {\r\n this._invertG = value;\r\n this.updateShaderUniforms();\r\n }\r\n get bevel() {\r\n if (this._bevel == undefined)\r\n return false;\r\n return this._bevel;\r\n }\r\n set bevel(value) {\r\n this._bevel = value;\r\n this.updateShaderUniforms();\r\n }\r\n get intensity() {\r\n if (this._intensity == undefined)\r\n return 0.5;\r\n return this._intensity;\r\n }\r\n set intensity(value) {\r\n this._intensity = value;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n var size = this.getRenderSize();\r\n var dim = size < 1024 ? size * 2 : size;\r\n this.setFloat(\"size\", size);\r\n this.setVector2(\"u_textureSize\", new BABYLON.Vector2(size, size));\r\n this.setVector3(\"dimensions\", new BABYLON.Vector3(dim, dim, 0));\r\n this.setFloat(\"bias\", this.bias);\r\n this.setFloat(\"invertR\", this.invertR ? -1.0 : 1.0);\r\n this.setFloat(\"invertG\", this.invertG ? -1.0 : 1.0);\r\n this.setFloat(\"bevel\", this.bevel ? 1.0 : 0.0);\r\n this.setFloat(\"intensity\", this.intensity);\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nNormalMapProceduralTexture.FRAGMENT_SHADER = \"zakeke_normalMapProceduralTexture\";\r\nNormalMapProceduralTexture.CUSTOM_TYPE = \"Zakeke.NormalMapProceduralTexture\";\r\nconst shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'uniform vec3 dimensions;',\r\n 'uniform sampler2D uSampler;',\r\n 'uniform vec2 u_textureSize;',\r\n 'uniform float bias;',\r\n 'uniform float invertR;',\r\n 'uniform float invertG;',\r\n 'uniform float bevel;',\r\n 'uniform float intensity;',\r\n 'void main(void) {',\r\n ' vec2 step = vec2(1.0, 1.0) / dimensions.xy;',\r\n ' vec4 black = vec4(0, 0, 0, 1);',\r\n '\tvec4 bk = vec4(1, 1, 1, 1);',\r\n '\tvec4 t0 = texture2D(uSampler, vUV.xy + vec2(0.0, 0.0));',\r\n '\tvec4 t1 = texture2D(uSampler, vUV.xy + vec2(step.x, 0.0));',\r\n '\tvec4 t2 = texture2D(uSampler, vUV.xy + vec2(-step.x, 0.0));',\r\n '\tvec4 t3 = texture2D(uSampler, vUV.xy + vec2(0.0, step.y));',\r\n '\tvec4 t4 = texture2D(uSampler, vUV.xy + vec2(0.0, -step.y));',\r\n ' if (bevel != 0.0) ',\r\n ' {',\r\n ' t0 = vec4(0, 0, 0, t0.a);',\r\n ' t1 = vec4(0, 0, 0, t1.a);',\r\n ' t2 = vec4(0, 0, 0, t2.a);',\r\n ' t3 = vec4(0, 0, 0, t3.a);',\r\n ' t4 = vec4(0, 0, 0, t4.a);',\r\n ' }',\r\n '\tt0 = mix(bk, t0, t0.a);',\r\n '\tt1 = mix(bk, t1, t1.a);',\r\n '\tt2 = mix(bk, t2, t2.a);',\r\n '\tt3 = mix(bk, t3, t3.a);',\r\n '\tt4 = mix(bk, t4, t4.a);',\r\n '\tfloat d0 = abs(t0.r);',\r\n '\tfloat d1 = abs(t1.r);',\r\n '\tfloat d2 = abs(t2.r);',\r\n '\tfloat d3 = abs(t3.r);',\r\n '\tfloat d4 = abs(t4.r);',\r\n '\tfloat dx = ((d2 - d0) + (d0 - d1)) * intensity;',\r\n '\tfloat dy = ((d4 - d0) + (d0 - d3)) * intensity;',\r\n '\tvec4 normal = vec4(normalize(vec3(dx * invertR, dy * invertG, 1.0 - ((bias - 0.1) / 100.0))), 1.0);',\r\n '\tgl_FragColor = vec4(normal.xyz * 0.5 + 0.5, 1.0);',\r\n '}'\r\n];\r\nconst shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${NormalMapProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/OpacityProceduralTexture.ts\":\n/*!******************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/OpacityProceduralTexture.ts ***!\n \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"OpacityProceduralTexture\": () => (/* binding */ OpacityProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass OpacityProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, blendTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, OpacityProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._opacity = 1.0;\r\n this.updateShaderUniforms();\r\n }\r\n get opacity() {\r\n if (this._opacity == undefined)\r\n return 1.0;\r\n return this._opacity;\r\n }\r\n set opacity(value) {\r\n this._opacity = value;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n this.setFloat(\"opacity\", this.opacity);\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nOpacityProceduralTexture.FRAGMENT_SHADER = \"zakeke_OpacityProceduralTexture\";\r\nOpacityProceduralTexture.CUSTOM_TYPE = \"Zakeke.OpacityProceduralTexture\";\r\nconst shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'uniform sampler2D uSampler;',\r\n 'uniform float opacity;',\r\n 'void main(void) {',\r\n '\tvec4 color = texture2D(uSampler, vUV.xy);',\r\n ' color.a = opacity;',\r\n ' gl_FragColor = color;',\r\n '}'\r\n];\r\nconst shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${OpacityProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ProceduralTextures/OverlayProceduralTexture.ts\":\n/*!******************************************************************************!*\\\n !*** ../../3D/src/Components/ProceduralTextures/OverlayProceduralTexture.ts ***!\n \\******************************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"OverlayProceduralTexture\": () => (/* binding */ OverlayProceduralTexture)\n/* harmony export */ });\n/* harmony import */ var _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BaseProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BaseProceduralTexture.ts\");\n\r\nclass OverlayProceduralTexture extends _BaseProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.BaseProceduralTexture {\r\n constructor(name, size, scene, baseTexture, blendTexture, fallbackTexture, generateMipMaps) {\r\n super(name, size, OverlayProceduralTexture.FRAGMENT_SHADER, scene, baseTexture, fallbackTexture, generateMipMaps);\r\n this._blendTexture = blendTexture;\r\n this.updateShaderUniforms();\r\n }\r\n //@BABYLON.serializeAsTexture()\r\n get blendTexture() {\r\n return this._blendTexture;\r\n }\r\n set blendTexture(texture) {\r\n this._blendTexture = texture;\r\n this.updateShaderUniforms();\r\n }\r\n dispose() {\r\n super.dispose();\r\n if (this._blendTexture)\r\n this._blendTexture.dispose();\r\n }\r\n updateShaderUniforms() {\r\n super.updateShaderUniforms();\r\n if (this.initializing)\r\n return;\r\n var baseScale = new BABYLON.Vector2(1, 1);\r\n if (this.baseTexture)\r\n baseScale = new BABYLON.Vector2(this.baseTexture.uScale, this.baseTexture.vScale);\r\n this.setVector2(\"uSamplerScale\", baseScale);\r\n this.setTexture(\"uBlendSampler\", this._blendTexture);\r\n var blendScale = new BABYLON.Vector2(1, 1);\r\n if (this._blendTexture)\r\n blendScale = new BABYLON.Vector2(this._blendTexture.uScale, this._blendTexture.vScale);\r\n this.setVector2(\"uBlendScale\", blendScale);\r\n }\r\n /**\r\n * Render the texture to its associated render target.\r\n * @param useCameraPostProcess Define if camera post process should be applied to the texture\r\n */\r\n render(useCameraPostProcess) {\r\n super.render(useCameraPostProcess);\r\n }\r\n /**\r\n * Resize the texture to new value.\r\n * @param size Define the new size the texture should have\r\n * @param generateMipMaps Define whether the new texture should create mip maps\r\n */\r\n resize(size, generateMipMaps) {\r\n super.resize(size, generateMipMaps);\r\n // We need to update the \"size\" uniform\r\n this.updateShaderUniforms();\r\n }\r\n}\r\nOverlayProceduralTexture.FRAGMENT_SHADER = \"zakeke_OverlayProceduralTexture\";\r\nOverlayProceduralTexture.CUSTOM_TYPE = \"Zakeke.OverlayProceduralTexture\";\r\nvar shaderLines = [\r\n 'precision mediump float;',\r\n 'varying vec2 vUV;',\r\n 'uniform sampler2D uSampler;',\r\n 'uniform sampler2D uBlendSampler;',\r\n 'uniform vec2 uSamplerScale;',\r\n 'uniform vec2 uBlendScale;',\r\n 'float BlendOverlayf(float base, float blend)',\r\n '{',\r\n ' return (base < 0.5 ? (2.0 * base * blend) : (1.0 - 2.0 * (1.0 - base) * (1.0 - blend)));',\r\n '}',\r\n 'vec4 BlendOverlay(vec4 base, vec4 blend)',\r\n '{',\r\n ' return vec4(BlendOverlayf(base.r, blend.r), BlendOverlayf(base.g, blend.g), BlendOverlayf(base.b, blend.b), BlendOverlayf(base.a, blend.a));',\r\n '}',\r\n 'void main(void) {',\r\n '\tvec4 base = texture2D(uSampler, vUV.xy*uSamplerScale);',\r\n '\tvec4 blend = texture2D(uBlendSampler, vUV.xy*uBlendScale);',\r\n ' gl_FragColor = BlendOverlay(base, blend);',\r\n '}'\r\n];\r\nvar shader = shaderLines.join('\\n');\r\nBABYLON.Effect.ShadersStore[`${OverlayProceduralTexture.FRAGMENT_SHADER}PixelShader`] = shader;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/SceneHelper.ts\":\n/*!**********************************************!*\\\n !*** ../../3D/src/Components/SceneHelper.ts ***!\n \\**********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SceneHelper\": () => (/* binding */ SceneHelper)\n/* harmony export */ });\n/* harmony import */ var _gltf_transform_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @gltf-transform/core */ \"../../../node_modules/@gltf-transform/core/dist/core.modern.js\");\n/* harmony import */ var _composer_Components_ChunkedTask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../composer/Components/ChunkedTask */ \"../Components/ChunkedTask.ts\");\n/* harmony import */ var _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Misc/DefaultAssetUrls */ \"../../3D/src/Misc/DefaultAssetUrls.ts\");\n/* harmony import */ var _Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Misc/StringTools */ \"../../3D/src/Misc/StringTools.ts\");\n/* harmony import */ var _MeshExpander_MeshExpander__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MeshExpander/MeshExpander */ \"../../3D/src/Components/MeshExpander/MeshExpander.ts\");\n/* harmony import */ var _USDZ_UsdzHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./USDZ/UsdzHelper */ \"../../3D/src/Components/USDZ/UsdzHelper.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass SceneHelper {\r\n constructor(scene) {\r\n this._hemiLight = null;\r\n this._pointLight = null;\r\n this._onPrePointerObservableObserver = null;\r\n this._isPointerDown = false;\r\n this._radiusScale = 0.85;\r\n this._positionScale = 0.5;\r\n this._limitLowerRadius = true;\r\n this._zoomEnabled = true;\r\n this._minZoomPerc = null;\r\n this._maxZoomPerc = null;\r\n this._cameraPivot = null;\r\n this._defHemiLightID = \"f90aba65-3b60-44ac-87f4-1b6441aee44b\";\r\n this._defPointLightID = \"b6491635-c471-45a4-bbb8-3f08556e5b3c\";\r\n this._targetAnimationID = \"6225769c-0113-4236-ab17-c39d24013de4\";\r\n this._radiusAnimationID = \"6f946c2f-af8d-46ab-9bea-9e22dedc4e9d\";\r\n this._alphaAnimationID = \"10713520-fe06-4cbf-bc6a-bab881d516e6\";\r\n this._betaAnimationID = \"6096ba34-852a-4423-bab3-dc97c1a9268f\";\r\n this._dummyMaterialID = \"081796b8-0908-44dc-a38a-d786b14cA6fc\";\r\n // Dictionary per i materiali in stati di caricamento\r\n this._loadingMaterials = {};\r\n this._scene = scene;\r\n this._engine = scene.getEngine();\r\n this._camera = scene.activeCamera;\r\n this._canvas = scene.getEngine().getRenderingCanvas();\r\n this.init();\r\n }\r\n get camera() {\r\n return this._camera;\r\n }\r\n static checkAllMaterialTextureReady(material) {\r\n const textures = material.getActiveTextures();\r\n for (let i = 0; i < textures.length; i++) {\r\n const texture = textures[i];\r\n if (!texture.isReady())\r\n return false;\r\n else {\r\n if (texture instanceof BABYLON.ProceduralTexture)\r\n texture.getEffect();\r\n }\r\n }\r\n return true;\r\n }\r\n static whenAllMaterialTexturesAreReady(material) {\r\n return new Promise((resolve, reject) => {\r\n if (this.checkAllMaterialTextureReady(material))\r\n resolve();\r\n else {\r\n let t = setInterval(() => {\r\n if (this.checkAllMaterialTextureReady(material)) {\r\n clearInterval(t);\r\n resolve();\r\n }\r\n }, 5);\r\n }\r\n });\r\n }\r\n static whenTextureIsReadyAsync(texture) {\r\n return new Promise((resolve, reject) => {\r\n if (texture.isReady())\r\n resolve();\r\n else {\r\n let t = setInterval(() => {\r\n if (texture.isReady()) {\r\n clearInterval(t);\r\n if (texture instanceof BABYLON.ProceduralTexture)\r\n texture.getEffect();\r\n resolve();\r\n }\r\n }, 5);\r\n }\r\n });\r\n }\r\n static whenMeshMaterialIsReady(mesh) {\r\n return new Promise((resolve, reject) => {\r\n let t = setInterval(() => {\r\n if (!mesh.material || mesh.material.isReady(mesh)) {\r\n clearInterval(t);\r\n resolve();\r\n }\r\n }, 5);\r\n });\r\n }\r\n static whenMaterialIsReadyForSubMeshAsync(material, mesh, subMesh) {\r\n return new Promise((resolve, reject) => {\r\n if (material.isReadyForSubMesh(mesh, subMesh)) {\r\n Logger.info(`Material ${material.name} ready`);\r\n resolve();\r\n }\r\n else {\r\n Logger.info(`Material ${material.name} NOT ready`);\r\n let t = setInterval(() => {\r\n if (material.isReadyForSubMesh(mesh, subMesh) &&\r\n (!mesh.material || mesh.material != material || mesh.material.isReady(mesh))) {\r\n Logger.info(`Material ${material.name} ready`);\r\n clearInterval(t);\r\n resolve();\r\n }\r\n }, 5);\r\n }\r\n });\r\n }\r\n static getMeshGeometry(mesh) {\r\n if (mesh.geometry)\r\n return mesh.geometry;\r\n const scene = mesh.getScene();\r\n const geometries = scene.getGeometries();\r\n for (let i = 0; i < geometries.length; i++) {\r\n const geometry = geometries[i];\r\n if (geometry.meshes.find(m => m === mesh))\r\n return geometry;\r\n }\r\n return null;\r\n }\r\n static checkMeshIsReady(mesh) {\r\n if (mesh instanceof BABYLON.Mesh) {\r\n mesh._checkDelayState();\r\n if (mesh.delayLoadState === BABYLON.Constants.DELAYLOADSTATE_NOTLOADED)\r\n return false;\r\n if (!mesh.geometry) {\r\n const scene = mesh.getScene();\r\n const geometries = scene.getGeometries();\r\n for (let i = 0; i < geometries.length; i++) {\r\n const geometry = geometries[i];\r\n if (geometry.meshes.find(m => m === mesh) &&\r\n !geometry.isReady()) {\r\n return false;\r\n }\r\n }\r\n }\r\n if (mesh.geometry && !mesh.geometry.isReady())\r\n return false;\r\n for (let j = 0; j < mesh.getChildMeshes().length; j++) {\r\n const child = mesh.getChildMeshes()[j];\r\n if (!this.checkMeshIsReady(child))\r\n return false;\r\n }\r\n }\r\n return mesh.isReady(true);\r\n }\r\n static checkAllMeshesAreReady(meshes) {\r\n let ret = true;\r\n for (let i = 0; i < meshes.length; i++)\r\n if (!this.checkMeshIsReady(meshes[i]))\r\n ret = false;\r\n return ret;\r\n }\r\n static whenAllMeshesAreReadyAsync(meshes) {\r\n return new Promise((resolve, reject) => {\r\n if (this.checkAllMeshesAreReady(meshes)) {\r\n resolve();\r\n }\r\n else {\r\n let t = setInterval(() => {\r\n if (this.checkAllMeshesAreReady(meshes)) {\r\n clearInterval(t);\r\n resolve();\r\n }\r\n }, 5);\r\n }\r\n });\r\n }\r\n static whenAllVisibleMeshesAreReadyAsync(scene) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = scene.meshes.filter(m => m.isVisible);\r\n yield this.whenAllMeshesAreReadyAsync(meshes);\r\n });\r\n }\r\n static whenMeshIsReadyAsync(mesh) {\r\n return new Promise((resolve, reject) => {\r\n if (this.checkMeshIsReady(mesh)) {\r\n resolve();\r\n }\r\n else {\r\n let t = setInterval(() => {\r\n if (this.checkMeshIsReady(mesh)) {\r\n clearInterval(t);\r\n resolve();\r\n }\r\n }, 5);\r\n }\r\n });\r\n }\r\n static visibleMeshesRequireDelayedLoading(scene) {\r\n const meshes = scene.meshes.filter(m => m.isVisible);\r\n for (let i = 0; i < meshes.length; i++) {\r\n if (this.meshRequiresDelayedLoading(meshes[i]))\r\n return true;\r\n }\r\n return false;\r\n }\r\n static meshRequiresDelayedLoading(mesh) {\r\n if (mesh instanceof BABYLON.Mesh) {\r\n if (mesh.delayLoadState === BABYLON.Constants.DELAYLOADSTATE_NOTLOADED ||\r\n mesh.delayLoadState === BABYLON.Constants.DELAYLOADSTATE_LOADING)\r\n return true;\r\n const geometry = SceneHelper.getMeshGeometry(mesh);\r\n if (geometry &&\r\n (geometry.delayLoadState === BABYLON.Constants.DELAYLOADSTATE_LOADING ||\r\n geometry.delayLoadState === BABYLON.Constants.DELAYLOADSTATE_NOTLOADED))\r\n return true;\r\n }\r\n return false;\r\n }\r\n materialRequiresDelayedLoading(materialID) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material)\r\n return false;\r\n if (this._scene.metadata &&\r\n this._scene.metadata.delayedMaterials &&\r\n this._scene.metadata.delayedMaterials.hasOwnProperty(materialID))\r\n return true;\r\n if (this._scene.metadata &&\r\n this._scene.metadata.offloadedMaterials &&\r\n this._scene.metadata.offloadedMaterials.hasOwnProperty(materialID))\r\n return true;\r\n return false;\r\n }\r\n init() {\r\n this._onPrePointerObservableObserver = this._scene.onPrePointerObservable.add(pointerInfoPre => {\r\n if (pointerInfoPre.type === BABYLON.PointerEventTypes.POINTERDOWN) {\r\n this._isPointerDown = true;\r\n return;\r\n }\r\n if (pointerInfoPre.type === BABYLON.PointerEventTypes.POINTERUP) {\r\n this._isPointerDown = false;\r\n }\r\n });\r\n }\r\n dispose() {\r\n if (this._scene && this._onPrePointerObservableObserver) {\r\n this._scene.onPrePointerObservable.remove(this._onPrePointerObservableObserver);\r\n }\r\n }\r\n switchFullScreen(parent) {\r\n if (document.fullscreenElement ||\r\n document.webkitFullscreenElement ||\r\n document.mozFullScreenElement ||\r\n document.msFullscreenElement) {\r\n this.quitFullscreen(parent ? parent : this._canvas);\r\n }\r\n else {\r\n this.launchFullscreen(parent ? parent : this._canvas);\r\n }\r\n if (this._canvas) {\r\n this._canvas.width = document.body.clientWidth; //document.width is obsolete\r\n this._canvas.height = document.body.clientHeight; //document.height is obsolete\r\n this.adjustCamera(undefined, true, true, false);\r\n }\r\n }\r\n quitFullscreen(element) {\r\n let exitFullscreen = document.exitFullscreen || document.webkitExitFullscreen || document.msExitFullscreen || document.mozCancelFullScreen;\r\n if (exitFullscreen)\r\n exitFullscreen.call(document);\r\n }\r\n launchFullscreen(element) {\r\n let requestFullScreen = element.requestFullscreen || element.webkitRequestFullscreen || element.msRequestFullscreen || element.mozRequestFullScreen;\r\n if (requestFullScreen)\r\n requestFullScreen.call(element);\r\n }\r\n getMeshHierarchySize(mesh) {\r\n let boundingBox = mesh.getHierarchyBoundingVectors(true);\r\n const size = boundingBox.max.subtract(boundingBox.min);\r\n return size;\r\n }\r\n getMeshHierarchyCenter(mesh) {\r\n const boundingBox = mesh.getHierarchyBoundingVectors(true);\r\n const size = boundingBox.max.subtract(boundingBox.min);\r\n const center = boundingBox.min.add(size.scale(0.5));\r\n return center;\r\n }\r\n getSceneBoundingInfo() {\r\n if (!this._scene)\r\n return null;\r\n const worldExtends = this.getWorldExtends();\r\n if (worldExtends)\r\n return new BABYLON.BoundingInfo(worldExtends.min, worldExtends.max);\r\n return null;\r\n }\r\n userIsMoving() {\r\n if (!this._camera || !(this._camera instanceof BABYLON.ArcRotateCamera)) {\r\n return false;\r\n }\r\n return this._camera.inertialAlphaOffset !== 0 ||\r\n this._camera.inertialBetaOffset !== 0 ||\r\n this._camera.inertialRadiusOffset !== 0 ||\r\n this._camera.inertialPanningX !== 0 ||\r\n this._camera.inertialPanningY !== 0 ||\r\n this._isPointerDown;\r\n }\r\n cameraIsMoving() {\r\n if (!this._camera || !(this._camera instanceof BABYLON.ArcRotateCamera)) {\r\n return false;\r\n }\r\n return this._camera.inertialAlphaOffset !== 0 ||\r\n this._camera.inertialBetaOffset !== 0 ||\r\n this._camera.inertialRadiusOffset !== 0 ||\r\n this._camera.inertialPanningX !== 0 ||\r\n this._camera.inertialPanningY !== 0;\r\n }\r\n cameraLimitsReached() {\r\n if (!this._camera || !(this._camera instanceof BABYLON.ArcRotateCamera)) {\r\n return false;\r\n }\r\n return (this._camera.lowerRadiusLimit !== undefined &&\r\n this._camera.lowerRadiusLimit !== null &&\r\n this._camera.radius === this._camera.lowerRadiusLimit) ||\r\n (this._camera.upperRadiusLimit !== undefined &&\r\n this._camera.upperRadiusLimit !== null &&\r\n this._camera.radius === this._camera.upperRadiusLimit);\r\n }\r\n restoreCameraState() {\r\n if (this._camera) {\r\n this._camera.restoreState();\r\n }\r\n }\r\n isTextureWithUrl(texture) {\r\n return texture &&\r\n (texture instanceof BABYLON.Texture ||\r\n texture instanceof BABYLON.CubeTexture ||\r\n texture instanceof BABYLON.HDRCubeTexture ||\r\n texture instanceof BABYLON.ColorGradingTexture ||\r\n texture instanceof BABYLON.EquiRectangularCubeTexture);\r\n }\r\n getTextureUrl(texture) {\r\n if (texture &&\r\n (texture instanceof BABYLON.Texture ||\r\n texture instanceof BABYLON.CubeTexture ||\r\n texture instanceof BABYLON.HDRCubeTexture ||\r\n texture instanceof BABYLON.ColorGradingTexture ||\r\n texture instanceof BABYLON.EquiRectangularCubeTexture)) {\r\n let textureUrl = texture.url;\r\n if (texture.getInternalTexture) {\r\n const internalTexture = texture.getInternalTexture();\r\n if (internalTexture && internalTexture.url) {\r\n textureUrl = internalTexture.url;\r\n }\r\n }\r\n return textureUrl;\r\n }\r\n return null;\r\n }\r\n isEditControl(mesh) {\r\n return mesh && (mesh.name == \"EditoControl\" || (mesh.metadata && mesh.metadata.isEditControl));\r\n }\r\n isRealMesh(mesh) {\r\n return !(this.isEditControl(mesh) ||\r\n mesh.metadata && (mesh.metadata.boundingBox ||\r\n mesh.metadata.isAxis ||\r\n mesh.metadata.isGround ||\r\n mesh.metadata.isEnvironmentNode ||\r\n (mesh.metadata.hasOwnProperty(\"isRealMesh\") && !mesh.metadata.isRealMesh)));\r\n }\r\n meshHasParent(meshID, parentID) {\r\n if (this._scene) {\r\n let mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n while (mesh.parent) {\r\n if (mesh.parent.id === parentID)\r\n return true;\r\n mesh = mesh.parent;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n countSceneMeshes() {\r\n let count = 0;\r\n if (this._scene) {\r\n this._scene.meshes.forEach(mesh => {\r\n if (this.isRealMesh(mesh))\r\n count++;\r\n });\r\n }\r\n return count;\r\n }\r\n sceneHasRealMeshes() {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n if (this.isRealMesh(this._scene.meshes[i]))\r\n return true;\r\n }\r\n return false;\r\n }\r\n getSceneMeshes() {\r\n const meshes = [];\r\n if (this._scene) {\r\n this._scene.meshes.forEach(mesh => {\r\n if (this.isRealMesh(mesh))\r\n meshes.push(mesh);\r\n });\r\n }\r\n return meshes;\r\n }\r\n getSceneMeshesByName(name) {\r\n let meshes = [];\r\n if (this._scene) {\r\n const escapeRegExp = function (string) {\r\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n };\r\n if (name) {\r\n var regExp = new RegExp(escapeRegExp(name).replace(/\\\\\\*/g, \".*\"), \"i\");\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (this.isRealMesh(mesh) && mesh.name && regExp.test(mesh.name))\r\n meshes.push(mesh);\r\n }\r\n }\r\n }\r\n return meshes;\r\n }\r\n getVisibleMeshes() {\r\n const meshes = [];\r\n this._scene.meshes.forEach(mesh => {\r\n if (this.isRealMesh(mesh) && mesh.isVisible)\r\n meshes.push(mesh);\r\n });\r\n return meshes;\r\n }\r\n getInvisibleMeshes() {\r\n const meshes = [];\r\n this._scene.meshes.forEach(mesh => {\r\n if (this.isRealMesh(mesh) && !mesh.isVisible)\r\n meshes.push(mesh);\r\n });\r\n return meshes;\r\n }\r\n getSubMesh(mesh, submeshIdx) {\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && submeshIdx >= 0 && submeshIdx < mesh.subMeshes.length) {\r\n return mesh.subMeshes[submeshIdx];\r\n }\r\n return null;\r\n }\r\n getMeshHierarchy(parentID) {\r\n const meshes = [];\r\n let parent = this._scene.getMeshByID(parentID);\r\n if (!parent)\r\n return meshes;\r\n let addMesh = (mesh) => {\r\n meshes.push(mesh);\r\n let children = mesh.getChildMeshes();\r\n for (let i = 0; i < children.length; i++)\r\n addMesh(children[i]);\r\n };\r\n addMesh(parent);\r\n return meshes;\r\n }\r\n isCanvasMesh(mesh) {\r\n if (!mesh)\r\n return false;\r\n if (!mesh.metadata)\r\n return false;\r\n if (mesh.metadata.hasOwnProperty(\"iscanvasMesh\") && typeof mesh.metadata.iscanvasMesh === \"boolean\")\r\n return mesh.metadata.iscanvasMesh;\r\n return false;\r\n }\r\n isAREnabledForMesh(mesh) {\r\n if (!mesh)\r\n return false;\r\n if (!mesh.metadata)\r\n return true;\r\n if (mesh.metadata.AR === undefined || mesh.metadata.AR === null || typeof mesh.metadata.AR !== \"boolean\")\r\n return true;\r\n return mesh.metadata.AR;\r\n }\r\n isTryOnEnabledForMesh(mesh) {\r\n if (!mesh)\r\n return false;\r\n if (!mesh.metadata)\r\n return true;\r\n if (mesh.metadata.TryOn === undefined || mesh.metadata.TryOn === null || typeof mesh.metadata.TryOn !== \"boolean\")\r\n return true;\r\n return mesh.metadata.TryOn;\r\n }\r\n getMeshesForAR() {\r\n const meshes = [];\r\n if (this._scene) {\r\n this._scene.meshes.forEach((mesh) => {\r\n if ((this.isRealMesh(mesh) || this.isCanvasMesh(mesh)) &&\r\n mesh.isVisible &&\r\n this.isAREnabledForMesh(mesh))\r\n meshes.push(mesh);\r\n });\r\n }\r\n return meshes;\r\n }\r\n checkMaterialsForAR() {\r\n const materials = this.getMeshesMaterials(this.getMeshesForAR());\r\n for (let i = 0; i < materials.length; i++) {\r\n const material = materials[i];\r\n if (!(material instanceof BABYLON.PBRMaterial) &&\r\n !(material instanceof BABYLON.PBRMetallicRoughnessMaterial) &&\r\n !(material instanceof BABYLON.StandardMaterial))\r\n return false;\r\n }\r\n return true;\r\n }\r\n getMeshesMaterials(meshes) {\r\n const ids = [];\r\n const materials = [];\r\n for (let i = 0; i < meshes.length; i++) {\r\n let mesh = meshes[i];\r\n if (mesh.material) {\r\n if (mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let k = 0; k < mesh.material.subMaterials.length; k++) {\r\n let subMaterial = mesh.material.subMaterials[k];\r\n if (subMaterial && ids.indexOf(subMaterial.id) === -1) {\r\n materials.push(subMaterial);\r\n ids.push(subMaterial.id);\r\n }\r\n }\r\n }\r\n else {\r\n if (ids.indexOf(mesh.material.id) === -1) {\r\n materials.push(mesh.material);\r\n ids.push(mesh.material.id);\r\n }\r\n }\r\n }\r\n }\r\n return materials;\r\n }\r\n getMeshMaterials(mesh) {\r\n const materials = [];\r\n if (mesh && mesh.material) {\r\n if (mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let k = 0; k < mesh.material.subMaterials.length; k++) {\r\n let subMaterial = mesh.material.subMaterials[k];\r\n if (subMaterial)\r\n materials.push(subMaterial);\r\n }\r\n }\r\n else {\r\n materials.push(mesh.material);\r\n }\r\n }\r\n return materials;\r\n }\r\n getHiddenMeshTotalVertices() {\r\n return this.getTotalVertices(mesh => !mesh.isVisible);\r\n }\r\n getTotalVertices(predicate) {\r\n let tot = 0;\r\n if (this._scene) {\r\n this._scene.meshes.forEach(mesh => {\r\n if (!this.isRealMesh(mesh))\r\n return;\r\n if (predicate && !predicate(mesh))\r\n return;\r\n tot += mesh.getTotalVertices();\r\n });\r\n }\r\n return tot;\r\n }\r\n getHiddenMeshTotalIndices() {\r\n return this.getTotalIndices(mesh => !mesh.isVisible);\r\n }\r\n getTotalIndices(predicate) {\r\n let tot = 0;\r\n if (this._scene) {\r\n this._scene.meshes.forEach(mesh => {\r\n if (!this.isRealMesh(mesh))\r\n return;\r\n if (predicate && !predicate(mesh))\r\n return;\r\n tot += mesh.getTotalIndices();\r\n });\r\n }\r\n return tot;\r\n }\r\n getAllMaterials() {\r\n const materials = [];\r\n if (this._scene) {\r\n this._scene.materials.forEach(material => {\r\n if (material.metadata) {\r\n if (material.metadata.isRealMaterial !== undefined && !material.metadata.isRealMaterial)\r\n return;\r\n if (material.metadata.isEnvironmentNode !== undefined && material.metadata.isEnvironmentNode)\r\n return;\r\n }\r\n if (material.id === \"groundMaterial\")\r\n return;\r\n if (material.id === \"default material\")\r\n return;\r\n materials.push(material);\r\n });\r\n }\r\n return materials;\r\n }\r\n getMeshesUsingMaterial(materialID) {\r\n const meshes = [];\r\n const allMeshes = this.getSceneMeshes();\r\n for (let i = 0; i < allMeshes.length; i++) {\r\n const mesh = allMeshes[i];\r\n if (this.isMeshUsingMaterial(mesh, materialID))\r\n meshes.push(mesh);\r\n }\r\n return meshes;\r\n }\r\n isMeshUsingMaterial(mesh, materialID) {\r\n if (mesh.material) {\r\n if (mesh.material.id === materialID) {\r\n return true;\r\n }\r\n else if (mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let k = 0; k < mesh.material.subMaterials.length; k++) {\r\n const subMaterial = mesh.material.subMaterials[k];\r\n if (subMaterial && subMaterial.id === materialID) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n getAllUnusedMaterials() {\r\n const materials = this.getAllMaterials();\r\n const unusedMaterials = [];\r\n for (let i = 0; i < materials.length; i++) {\r\n const material = materials[i];\r\n const meshes = this.getMeshesUsingMaterial(material.id);\r\n if (meshes.length === 0)\r\n unusedMaterials.push(material);\r\n }\r\n return unusedMaterials;\r\n }\r\n getSceneScreenshotAsync(width, height) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._camera)\r\n return \"\";\r\n let size = { width, height };\r\n return yield BABYLON.Tools.CreateScreenshotAsync(this._engine, this._camera, size, \"image/png\");\r\n });\r\n }\r\n containsPBRMaterials() {\r\n if (this._scene) {\r\n for (let i = 0; i < this._scene.materials.length; i++) {\r\n const material = this._scene.materials[i];\r\n if (material instanceof BABYLON.PBRBaseMaterial)\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n getMeshesForTryOn() {\r\n const meshes = [];\r\n if (this._scene) {\r\n this._scene.meshes.forEach((mesh) => {\r\n if ((this.isRealMesh(mesh) || this.isCanvasMesh(mesh)) && mesh.isVisible && this.isTryOnEnabledForMesh(mesh)) {\r\n meshes.push(mesh);\r\n }\r\n });\r\n }\r\n return meshes;\r\n }\r\n setupLights() {\r\n this._hemiLight = null;\r\n this._pointLight = null;\r\n let firstHemiLight = null;\r\n let firstPointLight = null;\r\n this._scene.lights.forEach(light => {\r\n if (light instanceof BABYLON.HemisphericLight) {\r\n if (firstHemiLight === null)\r\n firstHemiLight = light;\r\n if (light.id === this._defHemiLightID)\r\n this._hemiLight = light;\r\n }\r\n if (light instanceof BABYLON.PointLight) {\r\n if (firstPointLight === null)\r\n firstPointLight = light;\r\n if (light.id === this._defPointLightID)\r\n this._pointLight = light;\r\n }\r\n });\r\n if (this._hemiLight === null) {\r\n if (firstHemiLight !== null) {\r\n this._hemiLight = firstHemiLight;\r\n }\r\n else {\r\n this._hemiLight = new BABYLON.HemisphericLight('Default Hemispheric Light', BABYLON.Vector3.Up(), this._scene);\r\n this._hemiLight.intensity = 0.5;\r\n }\r\n if (this._hemiLight)\r\n this._hemiLight.id = this._defHemiLightID;\r\n }\r\n if (this._pointLight === null) {\r\n if (firstPointLight !== null) {\r\n this._pointLight = firstPointLight;\r\n }\r\n else {\r\n this._pointLight = new BABYLON.PointLight(\"Default Point Light\", new BABYLON.Vector3(0, 5, 0), this._scene);\r\n this._pointLight.intensity = 0.5;\r\n }\r\n if (this._pointLight)\r\n this._pointLight.id = this._defPointLightID;\r\n }\r\n }\r\n getDefaultHemisphericLight() {\r\n return this._hemiLight;\r\n }\r\n getDefaultPointLight() {\r\n return this._pointLight;\r\n }\r\n isDefaultLight(light) {\r\n return light.id == this._defHemiLightID ||\r\n light.id == this._defPointLightID;\r\n }\r\n setupCamera() {\r\n if (this._scene) {\r\n let sceneCamera = this._scene.cameras.find(c => c instanceof BABYLON.ArcRotateCamera);\r\n if (!sceneCamera) {\r\n this._camera = new BABYLON.ArcRotateCamera(\"camera1\", 0, 0, 0, BABYLON.Vector3.Zero(), this._scene);\r\n this._camera.setPosition(new BABYLON.Vector3(0, 3, -8));\r\n }\r\n else {\r\n this._camera = sceneCamera;\r\n }\r\n this.setupCameraLimits();\r\n if (this._canvas)\r\n this._camera.attachControl(this._canvas, false);\r\n }\r\n }\r\n setCameraRadiusParameters(radius) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n this._camera.lowerRadiusLimit = radius * (this._zoomEnabled ? 0.01 : 1);\r\n this._camera.upperRadiusLimit = radius * (this._zoomEnabled ? 3 : 1);\r\n this._camera.wheelPrecision = 100 / radius;\r\n this._camera.pinchPrecision = 100 / radius;\r\n this._camera.minZ = radius * 0.01;\r\n this._camera.maxZ = radius * 1000;\r\n this._camera.speed = radius * 0.2;\r\n this._camera.wheelDeltaPercentage = 0.01;\r\n this._camera.pinchDeltaPercentage = 0.0006;\r\n this._camera.panningSensibility = 0.000001;\r\n this._camera.wheelPrecision = 100 / radius;\r\n this._camera.panningAxis = BABYLON.Vector3.Zero(); // elimino il panning del tutto\r\n this._camera.panningInertia = 0;\r\n }\r\n }\r\n removeCameraLimits() {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n this._camera.lowerRadiusLimit = null;\r\n this._camera.upperRadiusLimit = null;\r\n this._camera.minZ = 1;\r\n this._camera.maxZ = 10000.0;\r\n }\r\n }\r\n getWorldExtends() {\r\n if (this._scene)\r\n return this._scene.getWorldExtends(mesh => this.isRealMesh(mesh) && mesh.isVisible);\r\n return null;\r\n }\r\n getCameraWorldExtends() {\r\n let worldExtends = null;\r\n if (this._scene) {\r\n let pivotMesh = this._cameraPivot;\r\n if (!pivotMesh) {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (mesh.metadata && mesh.metadata.isCameraPivot !== undefined && mesh.metadata.isCameraPivot) {\r\n pivotMesh = mesh;\r\n break;\r\n }\r\n }\r\n }\r\n if (pivotMesh) {\r\n worldExtends = this._scene.getWorldExtends(mesh => {\r\n return mesh === pivotMesh || this.meshHasParent(mesh.id, pivotMesh.id);\r\n });\r\n }\r\n }\r\n if (!worldExtends)\r\n worldExtends = this.getWorldExtends();\r\n return worldExtends;\r\n }\r\n setupCameraLimits(worldExtends) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n if (worldExtends === undefined || worldExtends === null) {\r\n let we = this.getCameraWorldExtends();\r\n if (we)\r\n worldExtends = we;\r\n }\r\n if (!worldExtends)\r\n return;\r\n const worldSize = worldExtends.max.subtract(worldExtends.min);\r\n if (isFinite(worldSize.length())) {\r\n this.removeCameraLimits();\r\n const radius = this.calculateCameraRadius(worldExtends);\r\n this.setCameraRadiusParameters(radius);\r\n if (this._limitLowerRadius) {\r\n if (this._scene.meshes.length && this._zoomEnabled) {\r\n // Enable camera's behaviors\r\n this._camera.useFramingBehavior = true;\r\n const framingBehavior = this._camera.getBehaviorByName(\"Framing\");\r\n if (framingBehavior && framingBehavior instanceof BABYLON.FramingBehavior) {\r\n framingBehavior.framingTime = 0;\r\n framingBehavior.elevationReturnTime = -1;\r\n framingBehavior.radiusScale = this._radiusScale;\r\n // test position scale\r\n framingBehavior.positionScale = this._positionScale;\r\n this._camera.lowerRadiusLimit = null;\r\n framingBehavior.zoomOnBoundingInfo(worldExtends.min, worldExtends.max);\r\n if (this._minZoomPerc !== null && this._minZoomPerc !== undefined && this._minZoomPerc > 0)\r\n this._camera.lowerRadiusLimit = radius * this._minZoomPerc;\r\n if (this._maxZoomPerc !== null && this._maxZoomPerc !== undefined && this._maxZoomPerc > 0)\r\n this._camera.upperRadiusLimit = radius * this._maxZoomPerc;\r\n }\r\n }\r\n }\r\n else {\r\n this._camera.lowerRadiusLimit = null;\r\n }\r\n }\r\n }\r\n }\r\n adjustCamera(currentPluginName, keepAlpha = true, keepBeta = true, animate = true) {\r\n if (!this._camera || !(this._camera instanceof BABYLON.ArcRotateCamera))\r\n return;\r\n let worldExtends = this.getCameraWorldExtends();\r\n if (!worldExtends)\r\n return;\r\n const worldSize = worldExtends.max.subtract(worldExtends.min);\r\n if (!isFinite(worldSize.length()))\r\n return;\r\n const worldCenter = worldExtends.min.add(worldSize.scale(0.5));\r\n this.removeCameraLimits();\r\n const radius = this.calculateCameraRadius(worldExtends);\r\n let alpha = this._camera.alpha;\r\n if (!keepAlpha) {\r\n alpha = -(Math.PI / 2);\r\n if (currentPluginName && currentPluginName === \"gltf\") {\r\n // glTF assets use a +Z forward convention while the default camera faces +Z. Rotate the camera to look at the front of the asset.\r\n alpha += Math.PI;\r\n }\r\n }\r\n let beta = this._camera.beta;\r\n if (!keepBeta)\r\n beta = Math.PI / 2 - 0.3;\r\n let target = worldCenter.clone();\r\n // position scale\r\n let bottom = worldExtends.min.y;\r\n let top = worldExtends.max.y;\r\n let zoomTargetY = bottom + (top - bottom) * this._positionScale;\r\n target.y = zoomTargetY;\r\n if (!animate) {\r\n this._camera.alpha = alpha;\r\n this._camera.beta = beta;\r\n this._camera.radius = radius;\r\n this._camera.target = target;\r\n this.setupCameraLimits(worldExtends);\r\n }\r\n else {\r\n this.animateCameraToFinalParamters(alpha, beta, radius, target, 2, () => {\r\n this.setupCameraLimits(worldExtends);\r\n });\r\n }\r\n }\r\n normalizeAngleOfView(alpha, beta) {\r\n const target = BABYLON.Vector3.Zero();\r\n const ghost = new BABYLON.ArcRotateCamera(\"ghostCamera\", alpha, beta, 1, target, this._scene);\r\n const position = ghost.position;\r\n ghost.dispose();\r\n return this.computeCameraAngleOfView(target, position);\r\n }\r\n computeCameraAngleOfView(target, position) {\r\n // creo una ghost camera per recuperare alpha, beta e radius nuovi\r\n const ghost = new BABYLON.ArcRotateCamera(\"ghostCamera\", 0, 0, 0, target, this._scene);\r\n ghost.setPosition(position);\r\n const endAlpha = ghost.alpha;\r\n const endBeta = ghost.beta;\r\n ghost.dispose();\r\n return {\r\n alpha: endAlpha,\r\n beta: endBeta\r\n };\r\n }\r\n moveCamera(endTarget, endPosition) {\r\n // creo una ghost camera per recuperare alpha, beta e radius nuovi\r\n var ghost = new BABYLON.ArcRotateCamera(\"ghostCamera\", 0, 0, 0, endTarget, this._scene);\r\n ghost.setPosition(endPosition);\r\n var endAlpha = ghost.alpha;\r\n var endBeta = ghost.beta;\r\n var endRadius = ghost.radius;\r\n ghost.dispose();\r\n this.moveCameraToFinalParameters(endAlpha, endBeta, endRadius, endTarget);\r\n }\r\n animateCamera(endTarget, endPosition, seconds, callback) {\r\n // creo una ghost camera per recuperare alpha, beta e radius nuovi\r\n var ghost = new BABYLON.ArcRotateCamera(\"ghostCamera\", 0, 0, 0, endTarget, this._scene);\r\n ghost.setPosition(endPosition);\r\n var endAlpha = ghost.alpha;\r\n var endBeta = ghost.beta;\r\n var endRadius = ghost.radius;\r\n ghost.dispose();\r\n this.animateCameraToFinalParamters(endAlpha, endBeta, endRadius, endTarget, seconds, callback);\r\n }\r\n // riporta angle nel range -180, + 180\r\n wrapPi(angle) {\r\n if (Math.abs(angle) > Math.PI) {\r\n var twoppi = 2.0 * Math.PI;\r\n var revolutions = Math.floor((angle + Math.PI) * (1.0 / twoppi));\r\n angle -= revolutions * twoppi;\r\n }\r\n return angle;\r\n }\r\n wrap2Pi(angle) {\r\n let a = angle % (Math.PI * 2);\r\n if (a < 0) {\r\n a += Math.PI * 2;\r\n }\r\n return a;\r\n }\r\n zoomIn() {\r\n this.zoom(0.85);\r\n }\r\n zoomOut() {\r\n this.zoom(1.15);\r\n }\r\n zoom(perc) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n let radius = this._camera.radius;\r\n let lowerRadius = this._camera.lowerRadiusLimit !== null &&\r\n this._camera.lowerRadiusLimit !== undefined ? this._camera.lowerRadiusLimit : 0;\r\n let min = Math.max(0, lowerRadius);\r\n let max = Number.MAX_VALUE;\r\n if (this._camera.upperRadiusLimit != null)\r\n max = this._camera.upperRadiusLimit;\r\n var newRadius = Math.max(min, Math.min(max, radius * perc));\r\n if (newRadius !== radius) {\r\n this.animateCameraToFinalParamters(this._camera.alpha, this._camera.beta, newRadius, this._camera.target, 0.5);\r\n }\r\n }\r\n }\r\n moveCameraToFinalParameters(alpha, beta, radius, target) {\r\n if (!this._camera || !(this._camera instanceof BABYLON.ArcRotateCamera))\r\n return;\r\n this._camera.target = target;\r\n this._camera.alpha = alpha;\r\n this._camera.beta = beta;\r\n this._camera.radius = radius;\r\n }\r\n animateCameraToFinalParamters(endAlpha, endBeta, endRadius, endTarget, seconds, callback) {\r\n if (!this._camera || !(this._camera instanceof BABYLON.ArcRotateCamera))\r\n return;\r\n let removeOldAnimations = () => {\r\n if (this._camera) {\r\n this._scene.stopAnimation(this._camera);\r\n for (let i = 0; i < this._camera.animations.length; i++) {\r\n var anim = this._camera.animations[i];\r\n this._camera.animations.splice(i--, 1);\r\n }\r\n }\r\n };\r\n removeOldAnimations();\r\n // resetting the alpha and beta to a much simpler version\r\n let alpha1 = this._camera.alpha;\r\n if (!this._camera.lowerAlphaLimit && !this._camera.upperAlphaLimit) {\r\n alpha1 = this.wrap2Pi(this._camera.alpha);\r\n }\r\n let beta1 = this._camera.beta;\r\n if (!this._camera.lowerBetaLimit && !this._camera.upperBetaLimit) {\r\n beta1 = this.wrap2Pi(this._camera.beta);\r\n }\r\n // used to find the shortest curve IE. if angle == 3PI/2 => take the -1PI/2 instead\r\n let alpha2 = isFinite(endAlpha) ? this.wrapPi(endAlpha) : alpha1;\r\n if (Math.abs(alpha1 - alpha2) > Math.PI) {\r\n alpha2 += Math.PI * 2;\r\n }\r\n let beta2 = isFinite(endBeta) ? this.wrapPi(endBeta) : beta1;\r\n if (Math.abs(beta1 - beta2) > Math.PI) {\r\n beta2 += Math.PI * 2;\r\n }\r\n let duration = 2;\r\n if (seconds && typeof seconds === 'number' && seconds > 0)\r\n duration = seconds;\r\n let fps = 60;\r\n let numFrames = Math.floor(duration * fps);\r\n // Target\r\n let targetVect = this._camera.target.subtract(endTarget);\r\n let targetDist = targetVect.length();\r\n let targetPerc = targetDist / this._camera.radius;\r\n let keys = [];\r\n // easing function\r\n let easingFunction = new BABYLON.CubicEase();\r\n easingFunction.setEasingMode(BABYLON.EasingFunction.EASINGMODE_EASEINOUT);\r\n let targetAnimation = null;\r\n if (this._camera.target !== endTarget) {\r\n if (targetPerc >= 0.005) {\r\n targetAnimation = new BABYLON.Animation(\"camTargetAnimation\", \"target\", fps, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: this._camera.target\r\n }, {\r\n frame: numFrames,\r\n value: endTarget\r\n }];\r\n targetAnimation.setKeys(keys);\r\n targetAnimation.setEasingFunction(easingFunction);\r\n }\r\n else {\r\n this._camera.target = endTarget;\r\n }\r\n }\r\n // Alpha\r\n let alphaAnimation = null;\r\n if (alpha1 !== alpha2) {\r\n //Logger.info(\"alpha1: \" + alpha1 + \" - alpha2: \" + alpha2);\r\n alphaAnimation = new BABYLON.Animation(\"camAlphaAnimation\", \"alpha\", fps, BABYLON.Animation.ANIMATIONTYPE_FLOAT, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: alpha1\r\n }, {\r\n frame: numFrames,\r\n value: alpha2\r\n }];\r\n alphaAnimation.setKeys(keys);\r\n alphaAnimation.setEasingFunction(easingFunction);\r\n }\r\n // Beta\r\n let betaAnimation = null;\r\n ;\r\n if (beta1 !== beta2) {\r\n betaAnimation = new BABYLON.Animation(\"camBetaAnimation\", \"beta\", fps, BABYLON.Animation.ANIMATIONTYPE_FLOAT, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: beta1\r\n }, {\r\n frame: numFrames,\r\n value: beta2\r\n }];\r\n betaAnimation.setKeys(keys);\r\n betaAnimation.setEasingFunction(easingFunction);\r\n }\r\n // Radius\r\n let deltaPerc = Math.abs(this._camera.radius - endRadius) / this._camera.radius;\r\n let radiusAnimation = null;\r\n if (this._camera.radius !== endRadius) {\r\n if (deltaPerc >= 0.005) {\r\n radiusAnimation = new BABYLON.Animation(\"camRadiusAnimation\", \"radius\", fps, BABYLON.Animation.ANIMATIONTYPE_FLOAT, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: this._camera.radius\r\n }, {\r\n frame: numFrames,\r\n value: endRadius\r\n }];\r\n radiusAnimation.setKeys(keys);\r\n radiusAnimation.setEasingFunction(easingFunction);\r\n }\r\n else {\r\n this._camera.radius = endRadius;\r\n }\r\n }\r\n let oldAnimationCounts = this._camera.animations.length;\r\n if (targetAnimation)\r\n this._camera.animations.push(targetAnimation);\r\n if (alphaAnimation)\r\n this._camera.animations.push(alphaAnimation);\r\n if (betaAnimation)\r\n this._camera.animations.push(betaAnimation);\r\n if (radiusAnimation)\r\n this._camera.animations.push(radiusAnimation);\r\n if (this._camera.animations.length > oldAnimationCounts) {\r\n //Logger.info(\"starting camera animations\");\r\n var animatable = this._scene.beginAnimation(this._camera, 0, numFrames, false, 1);\r\n // Remove animations from camera\r\n animatable.onAnimationEnd = () => {\r\n removeOldAnimations();\r\n this.setupShaderMaterialsCameraPosition();\r\n if (callback)\r\n callback();\r\n };\r\n }\r\n else {\r\n if (callback)\r\n callback();\r\n }\r\n }\r\n //Returns the frustum slope based on the canvas ratio and camera FOV\r\n //returns The frustum slope represented as a Vector2 with X and Y slopes\r\n getFrustumSlope() {\r\n // Calculate the viewport ratio\r\n // Aspect Ratio is Height/Width.\r\n let camera = this._camera;\r\n if (!camera) {\r\n return BABYLON.Vector2.Zero();\r\n }\r\n let engine = this._engine;\r\n let aspectRatio = engine.getAspectRatio(camera);\r\n // Camera FOV is the vertical field of view (top-bottom) in radians.\r\n // Slope of the frustum top/bottom planes in view space, relative to the forward vector.\r\n let frustumSlopeY = Math.tan(camera.fov / 2);\r\n // Slope of the frustum left/right planes in view space, relative to the forward vector.\r\n // Provides the amount that one side (e.g. left) of the frustum gets wider for every unit\r\n // along the forward vector.\r\n let frustumSlopeX = frustumSlopeY * aspectRatio;\r\n return new BABYLON.Vector2(frustumSlopeX, frustumSlopeY);\r\n }\r\n calculateCameraRadius(worldExtends) {\r\n if (worldExtends === undefined || worldExtends === null) {\r\n let we = this.getCameraWorldExtends();\r\n if (we)\r\n worldExtends = we;\r\n }\r\n if (!worldExtends)\r\n return 1;\r\n var worldSize = worldExtends.max.subtract(worldExtends.min);\r\n var radius = this.calculateLowerRadiusFromModelBoundingSphere(worldExtends.min, worldExtends.max);\r\n if (!isFinite(radius)) {\r\n radius = 1;\r\n }\r\n return radius;\r\n }\r\n // Calculates the lowest radius for the camera based on the bounding box of the mesh.\r\n calculateLowerRadiusFromModelBoundingSphere(minimumWorld, maximumWorld) {\r\n const size = maximumWorld.subtract(minimumWorld);\r\n const boxVectorGlobalDiagonal = size.length();\r\n const frustumSlope = this.getFrustumSlope();\r\n // Formula for setting distance\r\n // (Good explanation: http://stackoverflow.com/questions/2866350/move-camera-to-fit-3d-scene)\r\n const radiusWithoutFraming = boxVectorGlobalDiagonal * 0.5;\r\n // Horizon distance\r\n const radiusScale = this._radiusScale;\r\n const radius = radiusWithoutFraming * radiusScale;\r\n const distanceForHorizontalFrustum = radius * Math.sqrt(1.0 + 1.0 / (frustumSlope.x * frustumSlope.x));\r\n const distanceForVerticalFrustum = radius * Math.sqrt(1.0 + 1.0 / (frustumSlope.y * frustumSlope.y));\r\n let distance = Math.max(distanceForHorizontalFrustum, distanceForVerticalFrustum);\r\n var camera = this._camera;\r\n if (!camera || !(camera instanceof BABYLON.ArcRotateCamera)) {\r\n return 0;\r\n }\r\n // Don't exceed the upper radius limit\r\n if (camera.upperRadiusLimit) {\r\n distance = distance > camera.upperRadiusLimit ? camera.upperRadiusLimit : distance;\r\n }\r\n return distance;\r\n }\r\n getWorldCenter(worldExtends) {\r\n if (worldExtends === undefined || worldExtends === null) {\r\n let we = this.getCameraWorldExtends();\r\n if (we)\r\n worldExtends = we;\r\n }\r\n if (!worldExtends)\r\n return null;\r\n let worldSize = worldExtends.max.subtract(worldExtends.min);\r\n if (!isFinite(worldSize.length()))\r\n return null;\r\n let worldCenter = worldExtends.min.add(worldSize.scale(0.5));\r\n return worldCenter;\r\n }\r\n getCameraWorldCenter(worldExtends) {\r\n if (worldExtends === undefined || worldExtends === null) {\r\n let we = this.getCameraWorldExtends();\r\n if (we)\r\n worldExtends = we;\r\n }\r\n if (!worldExtends)\r\n return null;\r\n let worldSize = worldExtends.max.subtract(worldExtends.min);\r\n if (!isFinite(worldSize.length()))\r\n return null;\r\n let worldCenter = worldExtends.min.add(worldSize.scale(0.5));\r\n return worldCenter;\r\n }\r\n getCameraRadius(worldExtends) {\r\n if (worldExtends === undefined || worldExtends === null) {\r\n let we = this.getCameraWorldExtends();\r\n if (we)\r\n worldExtends = we;\r\n }\r\n if (!worldExtends)\r\n return null;\r\n let worldSize = worldExtends.max.subtract(worldExtends.min);\r\n if (!isFinite(worldSize.length()))\r\n return null;\r\n let radius = this.calculateCameraRadius(worldExtends);\r\n return radius;\r\n }\r\n setCameraLimitLowerRadius(limitLowerRadius, adjustCamera = false) {\r\n this._limitLowerRadius = limitLowerRadius;\r\n this.setupCameraLimits();\r\n if (adjustCamera && this._camera && this._camera instanceof BABYLON.ArcRotateCamera && this.sceneHasRealMeshes()) {\r\n let target = this._camera.target.clone();\r\n let worldExtends = this.getCameraWorldExtends();\r\n if (worldExtends) {\r\n let bottom = worldExtends.min.y;\r\n let top = worldExtends.max.y;\r\n let zoomTargetY = bottom + (top - bottom) * this._positionScale;\r\n target.y = zoomTargetY;\r\n this.animateCameraToFinalParamters(this._camera.alpha, this._camera.beta, this._camera.radius, target, 0.5);\r\n }\r\n }\r\n }\r\n setCameraPositionScale(positionScale, adjustCamera = false) {\r\n this._positionScale = positionScale;\r\n if (adjustCamera && this._camera && this._camera instanceof BABYLON.ArcRotateCamera && this.sceneHasRealMeshes()) {\r\n var target = this._camera.target.clone();\r\n var worldExtends = this.getCameraWorldExtends();\r\n if (worldExtends) {\r\n var bottom = worldExtends.min.y;\r\n var top = worldExtends.max.y;\r\n var zoomTargetY = bottom + (top - bottom) * this._positionScale;\r\n target.y = zoomTargetY;\r\n this.animateCameraToFinalParamters(this._camera.alpha, this._camera.beta, this._camera.radius, target, 0.5);\r\n }\r\n }\r\n }\r\n getCameraPivot() {\r\n return this._cameraPivot;\r\n }\r\n setCameraPivot(mesh) {\r\n this._cameraPivot = mesh;\r\n this.adjustCamera(undefined, true, true, true);\r\n }\r\n setZoomEnabled(enabled) {\r\n this._zoomEnabled = enabled;\r\n this.adjustCamera(undefined, true, true, true);\r\n }\r\n setMinZoomPerc(minZoomPerc) {\r\n const newVal = minZoomPerc === undefined || minZoomPerc === null ? null : minZoomPerc;\r\n if (newVal !== this._minZoomPerc) {\r\n this._minZoomPerc = newVal;\r\n this.adjustCamera(undefined, true, true, false);\r\n }\r\n }\r\n setMaxZoomPerc(maxZoomPerc) {\r\n const newVal = maxZoomPerc === undefined || maxZoomPerc === null ? null : maxZoomPerc;\r\n if (newVal !== this._maxZoomPerc) {\r\n this._maxZoomPerc = newVal;\r\n this.adjustCamera(undefined, true, true, false);\r\n }\r\n }\r\n setCameraAlphaLimits(lower, upper) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n //const alpha = this.wrapPi(this._camera.alpha);\r\n const alpha = this.normalizeAngleOfView(this._camera.alpha, this._camera.beta).alpha;\r\n this.setCameraLowerAlphaLimit(lower);\r\n this.setCameraUpperAlphaLimit(upper);\r\n this._camera.alpha = alpha;\r\n }\r\n }\r\n setCameraLowerAlphaLimit(angle) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n if (angle === null || angle === undefined) {\r\n this._camera.lowerAlphaLimit = null;\r\n }\r\n else {\r\n let a = this.normalizeAngleOfView(angle, this._camera.beta).alpha;\r\n if (this._camera.upperAlphaLimit && a > this._camera.upperAlphaLimit)\r\n this._camera.upperAlphaLimit += Math.PI * 2;\r\n this._camera.lowerAlphaLimit = a;\r\n }\r\n }\r\n }\r\n setCameraUpperAlphaLimit(angle) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n if (angle === null || angle === undefined) {\r\n this._camera.upperAlphaLimit = null;\r\n }\r\n else {\r\n let a = this.normalizeAngleOfView(angle, this._camera.beta).alpha;\r\n if (this._camera.lowerAlphaLimit && a < this._camera.lowerAlphaLimit)\r\n a += Math.PI * 2;\r\n this._camera.upperAlphaLimit = a;\r\n }\r\n }\r\n }\r\n setCameraLowerBetaLimit(angle) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n if (angle === null || angle === undefined) {\r\n this._camera.lowerBetaLimit = 0.01;\r\n }\r\n else {\r\n let a = this.normalizeAngleOfView(this._camera.alpha, angle).beta;\r\n if (this._camera.upperBetaLimit && a > this._camera.upperBetaLimit)\r\n this._camera.upperBetaLimit += Math.PI * 2;\r\n this._camera.lowerBetaLimit = a;\r\n }\r\n }\r\n }\r\n setCameraUpperBetaLimit(angle) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n if (angle === null || angle === undefined) {\r\n this._camera.upperBetaLimit = Math.PI - 0.01;\r\n }\r\n else {\r\n let a = this.normalizeAngleOfView(this._camera.alpha, angle).beta;\r\n if (this._camera.lowerBetaLimit && a < this._camera.lowerBetaLimit)\r\n this._camera.lowerBetaLimit -= Math.PI * 2;\r\n this._camera.upperBetaLimit = a;\r\n }\r\n }\r\n }\r\n setCameraBetaLimits(lower, upper) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const beta = this.normalizeAngleOfView(this._camera.alpha, this._camera.beta).beta;\r\n this.setCameraLowerBetaLimit(lower);\r\n this.setCameraUpperBetaLimit(upper);\r\n this._camera.beta = beta;\r\n }\r\n }\r\n zoomOnMesh(mesh) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n // Enable camera's behaviors\r\n this._camera.useFramingBehavior = true;\r\n const framingBehavior = this._camera.getBehaviorByName(\"Framing\");\r\n if (framingBehavior && framingBehavior instanceof BABYLON.FramingBehavior) {\r\n framingBehavior.framingTime = 0;\r\n framingBehavior.elevationReturnTime = -1;\r\n framingBehavior.radiusScale = this._radiusScale;\r\n // test position scale\r\n framingBehavior.positionScale = this._positionScale;\r\n framingBehavior.zoomOnMeshHierarchy(mesh);\r\n }\r\n }\r\n }\r\n takeScreenshotAsync(width, height) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._camera)\r\n return \"\";\r\n const size = { width, height };\r\n return yield BABYLON.Tools.CreateScreenshotAsync(this._engine, this._camera, size, \"image/png\");\r\n });\r\n }\r\n takeContentScreenshotAsync(width, height) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._camera)\r\n return \"\";\r\n // rendo lo sfondo trasparente\r\n var oldClearColor = this._scene.clearColor.clone();\r\n this._scene.clearColor = new BABYLON.Color4(0, 0, 0, 0);\r\n this._scene.render(); // Forzo il ridisegno\r\n let size = { width, height };\r\n const promise = BABYLON.Tools.CreateScreenshotAsync(this._engine, this._camera, size, \"image/png\");\r\n this._scene.render(); // Forzo il ridisegno\r\n this._scene.getEngine().endFrame();\r\n const data = yield promise;\r\n this._scene.clearColor = oldClearColor;\r\n return data;\r\n });\r\n }\r\n takeMaterialScreenshotAsync(materialID, width, height) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let material = this._scene.getMaterialByID(materialID);\r\n if (!material)\r\n return \"\";\r\n // Devo nascondere tutte le mesh attuali\r\n // Creare una sfera e applicarci il materiale\r\n // scattare la screenshot\r\n // eliiminare la sfera e riposizionare il tutto come era.\r\n let meshes = this.getVisibleMeshes(); // Mesh da nascondere e rivisualizzare\r\n for (let i = 0; i < meshes.length; i++) {\r\n var mesh = meshes[i];\r\n mesh.isVisible = false;\r\n }\r\n // rendo lo sfondo trasparente\r\n let oldClearColor = this._scene.clearColor.clone();\r\n this._scene.clearColor = new BABYLON.Color4(0, 0, 0, 0);\r\n // Creo una sfera temporanea\r\n let sphere = BABYLON.Mesh.CreateSphere(\"temp_sphere\", 32, 2, this._scene);\r\n sphere.material = material;\r\n // Creo una nuova camera temporanea\r\n let newCamera = new BABYLON.ArcRotateCamera(\"temp_camera\", 0, 0, 0, BABYLON.Vector3.Zero(), this._scene);\r\n newCamera.setPosition(new BABYLON.Vector3(0, 0, -4));\r\n this._scene.activeCamera = newCamera;\r\n this._scene.render(); // Forzo il ridisegno\r\n let size = { width, height };\r\n let data = yield BABYLON.Tools.CreateScreenshotAsync(this._engine, newCamera, size, \"image/png\");\r\n this._scene.clearColor = oldClearColor;\r\n sphere.dispose();\r\n // mostro le mesh precedentemente nascoste\r\n for (let i = 0; i < meshes.length; i++) {\r\n var mesh = meshes[i];\r\n mesh.isVisible = true;\r\n }\r\n // riattivo la vecchia camera\r\n this._scene.activeCamera = this._camera;\r\n newCamera.dispose();\r\n return data;\r\n });\r\n }\r\n getScenePBRMaterials() {\r\n const materials = [];\r\n if (this._scene) {\r\n this._scene.materials.forEach((material) => {\r\n if (material instanceof BABYLON.PBRBaseMaterial)\r\n materials.push(material);\r\n });\r\n }\r\n return materials;\r\n }\r\n resetPBRMaterialsImageProcessingConfiguration() {\r\n var materials = this.getScenePBRMaterials();\r\n materials.forEach((material) => {\r\n this.adjustPBRMaterialImageProcessingConfiguration(material);\r\n });\r\n }\r\n adjustPBRMaterialImageProcessingConfiguration(material) {\r\n if (material instanceof BABYLON.PBRMaterial && material.imageProcessingConfiguration) {\r\n //if (material.imageProcessingConfiguration.isEnabled !== undefined)\r\n // material.imageProcessingConfiguration.isEnabled = undefined;\r\n material.imageProcessingConfiguration.colorGradingWithGreenDepth = false;\r\n material.imageProcessingConfiguration.colorGradingBGR = false;\r\n material.imageProcessingConfiguration.exposure = 1;\r\n material.imageProcessingConfiguration.toneMappingEnabled = false;\r\n material.imageProcessingConfiguration.contrast = 1;\r\n }\r\n }\r\n animateMeshToFinalParameters(mesh, p, rE, rQ, s, seconds = 2, callback) {\r\n if (this._scene && mesh) {\r\n const id = mesh.id;\r\n const removeOldAnimations = () => {\r\n this._scene.stopAnimation(mesh);\r\n for (let i = 0; i < mesh.animations.length; i++) {\r\n mesh.animations.splice(i--, 1);\r\n }\r\n };\r\n removeOldAnimations();\r\n const duration = seconds;\r\n const fps = 60;\r\n const numFrames = Math.floor(duration * fps);\r\n let keys;\r\n // Position\r\n let positionAnimation = null;\r\n if (mesh.position !== p) {\r\n positionAnimation = new BABYLON.Animation(\"positionAnimation\", \"position\", fps, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: mesh.position\r\n }, {\r\n frame: numFrames,\r\n value: p\r\n }];\r\n positionAnimation.setKeys(keys);\r\n }\r\n // Rotation\r\n let eulerAnimation = null;\r\n let quaternionAnimation = null;\r\n if (mesh.rotationQuaternion == null) {\r\n // Euler\r\n var endE;\r\n if (rE != null) {\r\n endE = rE.clone();\r\n }\r\n else {\r\n endE = rQ.toEulerAngles().clone();\r\n }\r\n if (mesh.rotation != endE) {\r\n eulerAnimation = new BABYLON.Animation(\"eulerAnimation\", \"rotation\", fps, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: mesh.rotation\r\n }, {\r\n frame: numFrames,\r\n value: endE\r\n }];\r\n eulerAnimation.setKeys(keys);\r\n }\r\n }\r\n else {\r\n // Quaternion\r\n let endQ;\r\n if (rQ != null) {\r\n endQ = rQ.clone();\r\n }\r\n else {\r\n endQ = BABYLON.Quaternion.Identity();\r\n endQ.copyFrom(BABYLON.Quaternion.RotationYawPitchRoll(rE.y, rE.x, rE.z));\r\n }\r\n quaternionAnimation = new BABYLON.Animation(\"quaternionAnimation\", \"rotationQuaternion\", fps, BABYLON.Animation.ANIMATIONTYPE_QUATERNION, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: mesh.rotationQuaternion\r\n }, {\r\n frame: numFrames,\r\n value: endQ\r\n }];\r\n quaternionAnimation.setKeys(keys);\r\n }\r\n // Scaling\r\n let scalingAnimation = null;\r\n if (mesh.scaling !== s) {\r\n scalingAnimation = new BABYLON.Animation(\"scalingAnimation\", \"scaling\", fps, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\r\n // keys\r\n keys = [{\r\n frame: 0,\r\n value: mesh.scaling\r\n }, {\r\n frame: numFrames,\r\n value: s\r\n }];\r\n scalingAnimation.setKeys(keys);\r\n }\r\n let oldAnimationCounts = mesh.animations.length;\r\n if (positionAnimation)\r\n mesh.animations.push(positionAnimation);\r\n if (eulerAnimation)\r\n mesh.animations.push(eulerAnimation);\r\n if (quaternionAnimation)\r\n mesh.animations.push(quaternionAnimation);\r\n if (scalingAnimation)\r\n mesh.animations.push(scalingAnimation);\r\n if (mesh.animations.length > oldAnimationCounts) {\r\n //Logger.info(\"starting camera animations\");\r\n var animatable = this._scene.beginAnimation(mesh, 0, numFrames, false, 1);\r\n // Remove animations from camera\r\n animatable.onAnimationEnd = () => {\r\n removeOldAnimations();\r\n if (callback)\r\n callback();\r\n };\r\n }\r\n }\r\n }\r\n getMaterialsUsingTexture(texture) {\r\n // costruisco una mappa texture uid --> [materials]\r\n var map = this.getTextureMaterialsMap();\r\n this._scene.materials.forEach(material => {\r\n var txts = this.getTexturesForMaterial(material);\r\n txts.forEach(txt => {\r\n if (!map.hasOwnProperty(txt.uid))\r\n map[txt.uid] = [];\r\n map[txt.uid].push(material);\r\n });\r\n });\r\n if (map.hasOwnProperty(texture.uid))\r\n return map[texture.uid];\r\n return [];\r\n }\r\n getTextureMaterialsMap() {\r\n let map = {};\r\n if (this._scene) {\r\n this._scene.materials.forEach(material => {\r\n var txts = this.getTexturesForMaterial(material);\r\n txts.forEach(txt => {\r\n if (!map.hasOwnProperty(txt.uid))\r\n map[txt.uid] = [];\r\n map[txt.uid].push(material);\r\n });\r\n });\r\n }\r\n return map;\r\n }\r\n // Recupera tutte le texture di un materiale\r\n getTexturesForMaterial(material) {\r\n return material.getActiveTextures();\r\n }\r\n getTexturesExclusivelyForMaterial(material) {\r\n let allTextures = this.getTexturesForMaterial(material);\r\n let map = this.getTextureMaterialsMap();\r\n for (var i = 0; i < allTextures.length; i++) {\r\n let texture = allTextures[i];\r\n var allMaterials = map.hasOwnProperty(texture.uid) ? map[texture.uid] : [];\r\n if (allMaterials.length > 1)\r\n allTextures.splice(i--, 1);\r\n }\r\n return allTextures;\r\n }\r\n getStandardMaterialTextures(material) {\r\n return material.getActiveTextures();\r\n }\r\n getPBRBaseSimpleMaterialTextures(material) {\r\n return material.getActiveTextures();\r\n }\r\n getPBRMaterialTextures(material) {\r\n return material.getActiveTextures();\r\n }\r\n getPBRMetallicRoughnessMaterialTextures(material) {\r\n return material.getActiveTextures();\r\n }\r\n getPBRSpecularGlossinessMaterialTextures(material) {\r\n return material.getActiveTextures();\r\n }\r\n getNewPBRMaterialTextures(material) {\r\n return material.getActiveTextures();\r\n }\r\n createMeshesFromSubMeshes(mesh) {\r\n let children = mesh.getChildMeshes();\r\n for (let i = 0; i < children.length; i++)\r\n this.createMeshesFromSubMeshes(children[i]);\r\n let newMeshes = [];\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0) {\r\n for (let i = 0; i < mesh.subMeshes.length; i++) {\r\n let newMesh = this.createMeshFromSubMesh(mesh, i);\r\n if (newMesh)\r\n newMeshes.push(newMesh);\r\n }\r\n }\r\n let vertexData = new BABYLON.VertexData();\r\n vertexData.positions = [];\r\n vertexData.indices = [];\r\n vertexData.normals = [];\r\n vertexData.uvs = [];\r\n vertexData.uvs2 = [];\r\n vertexData.applyToMesh(mesh, true);\r\n mesh.subMeshes = [];\r\n mesh.material = null;\r\n newMeshes.forEach(child => {\r\n child.parent = mesh;\r\n });\r\n }\r\n createMeshFromSubMesh(mesh, idx, name) {\r\n let newMesh = null;\r\n let submesh = mesh.subMeshes[idx];\r\n let positionsData = mesh.getVerticesData(BABYLON.VertexBuffer.PositionKind);\r\n let normalsData = mesh.getVerticesData(BABYLON.VertexBuffer.NormalKind);\r\n let indicesData = mesh.getIndices();\r\n if (positionsData && normalsData && indicesData) {\r\n let positions = positionsData.slice(3 * submesh.verticesStart, 3 * (submesh.verticesStart + submesh.verticesCount));\r\n let normals = normalsData.slice(3 * submesh.verticesStart, 3 * (submesh.verticesStart + submesh.verticesCount));\r\n let indices = indicesData.slice(submesh.indexStart, submesh.indexStart + submesh.indexCount);\r\n let uvs = null;\r\n if (mesh.isVerticesDataPresent(BABYLON.VertexBuffer.UVKind)) {\r\n let uvsData = mesh.getVerticesData(BABYLON.VertexBuffer.UVKind);\r\n if (uvsData)\r\n uvs = uvsData.slice(2 * submesh.verticesStart, 2 * (submesh.verticesStart + submesh.verticesCount));\r\n }\r\n var uvs2 = null;\r\n if (mesh.isVerticesDataPresent(BABYLON.VertexBuffer.UV2Kind)) {\r\n let uvs2Data = mesh.getVerticesData(BABYLON.VertexBuffer.UV2Kind);\r\n if (uvs2Data)\r\n uvs2 = uvs2Data.slice(2 * submesh.verticesStart, 2 * (submesh.verticesStart + submesh.verticesCount));\r\n }\r\n for (let k = 0; k < indices.length; k++)\r\n indices[k] -= submesh.verticesStart;\r\n let newMesh = new BABYLON.Mesh(name || mesh.name + \"_part_\" + submesh._id, this._scene);\r\n let vertexData = new BABYLON.VertexData;\r\n vertexData.positions = positions;\r\n vertexData.normals = normals;\r\n vertexData.indices = indices;\r\n if (uvs)\r\n vertexData.uvs = uvs;\r\n if (uvs2)\r\n vertexData.uvs2 = uvs2;\r\n vertexData.applyToMesh(newMesh);\r\n if (mesh.material)\r\n newMesh.material = mesh.material instanceof BABYLON.MultiMaterial ? mesh.material.subMaterials[submesh.materialIndex] : mesh.material;\r\n }\r\n return newMesh;\r\n }\r\n getNextIncrementalName(name) {\r\n let newName = name;\r\n if (name) {\r\n let nameWithoutSuffix;\r\n var incremental = 0;\r\n while (this._scene.getMeshByName(newName)) {\r\n if (!nameWithoutSuffix) {\r\n nameWithoutSuffix = name;\r\n var idx = name.lastIndexOf(\"_\");\r\n if (idx > 0) {\r\n var numText = name.substring(idx + 1);\r\n var num = parseInt(numText);\r\n if (num.toString() === numText) {\r\n nameWithoutSuffix = name.substring(0, idx);\r\n }\r\n }\r\n }\r\n incremental++;\r\n newName = nameWithoutSuffix + \"_\" + incremental;\r\n }\r\n }\r\n return newName;\r\n }\r\n createBox(parent, name) {\r\n let n = name || \"Box\";\r\n n = this.getNextIncrementalName(n);\r\n let mesh = BABYLON.Mesh.CreateBox(n, 5, this._scene);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createBoundingBox(mesh, name) {\r\n let n = name || \"BoundingBox\";\r\n n = this.getNextIncrementalName(n);\r\n const boundingVectors = mesh ? mesh.getHierarchyBoundingVectors() : this.getWorldExtends();\r\n if (!boundingVectors)\r\n return this.createBox(mesh, name);\r\n const min = boundingVectors.min;\r\n const max = boundingVectors.max;\r\n const totalBounds = new BABYLON.BoundingInfo(min, max);\r\n const boundSize = max.subtract(min);\r\n if (!isFinite(boundSize.length()))\r\n return this.createBox(mesh, name);\r\n const width = max.x - min.x;\r\n const height = max.y - min.y;\r\n const depth = max.z - min.z;\r\n const vertexdata = BABYLON.VertexData.CreateBox({ width, height, depth });\r\n const custombb_mesh = new BABYLON.Mesh(n, this._scene);\r\n vertexdata.applyToMesh(custombb_mesh);\r\n custombb_mesh.position.copyFrom(totalBounds.boundingBox.centerWorld);\r\n custombb_mesh.refreshBoundingInfo();\r\n if (mesh && mesh.parent)\r\n custombb_mesh.parent = mesh.parent;\r\n return custombb_mesh;\r\n }\r\n createSphere(parent, name) {\r\n let n = name || \"Sphere\";\r\n n = this.getNextIncrementalName(n);\r\n const mesh = BABYLON.Mesh.CreateSphere(n, 30, 5, this._scene);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createPlane(parent, name) {\r\n let n = name || \"Plane\";\r\n n = this.getNextIncrementalName(n);\r\n const mesh = BABYLON.Mesh.CreatePlane(n, 10.0, this._scene);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createDisc(parent, name) {\r\n let n = name || \"Disc\";\r\n n = this.getNextIncrementalName(n);\r\n const mesh = BABYLON.MeshBuilder.CreateDisc(n, { tessellation: 70 }, this._scene);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createCylinder(parent, name) {\r\n let n = name || \"Cylinder\";\r\n n = this.getNextIncrementalName(n);\r\n const mesh = BABYLON.Mesh.CreateCylinder(n, 6, 6, 6, 30, 1, this._scene, false);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createTorus(parent, name) {\r\n let n = name || \"Torus\";\r\n let i = 1;\r\n n = this.getNextIncrementalName(n);\r\n const mesh = BABYLON.Mesh.CreateTorus(n, 8, 1, 50, this._scene, false);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createKnot(parent, name) {\r\n let n = name || \"Knot\";\r\n let i = 1;\r\n n = this.getNextIncrementalName(n);\r\n const mesh = BABYLON.Mesh.CreateTorusKnot(n, 2, 0.5, 128, 64, 2, 3, this._scene);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createRibbon(parent, name) {\r\n let n = name || \"Ribbon\";\r\n let i = 1;\r\n n = this.getNextIncrementalName(n);\r\n // Creation of a ribbon\r\n // let's first create many paths along a maths exponential function as an example \r\n const exponentialPath = function (p) {\r\n var path = [];\r\n for (var i = -10; i < 10; i++) {\r\n path.push(new BABYLON.Vector3(p, i, Math.sin(p / 3) * 5 * Math.exp(-(i - p) * (i - p) / 60) + i / 3));\r\n }\r\n return path;\r\n };\r\n // let's populate arrayOfPaths with all these different paths\r\n var arrayOfPaths = [];\r\n for (var p = 0; p < 20; p++) {\r\n arrayOfPaths[p] = exponentialPath(p);\r\n }\r\n // (name, array of paths, closeArray, closePath, offset, scene)\r\n const mesh = BABYLON.Mesh.CreateRibbon(\"ribbon\", arrayOfPaths, false, false, 0, this._scene);\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n return mesh;\r\n }\r\n createRoundedCubeAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RoundedCubeName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RoundedCubeFileName;\r\n let n = name || \"Rounded Cube\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createRoundedCylinderAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RoundedCylinderName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RoundedCylinderFileName;\r\n let n = name || \"Rounded Cylinder\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createMatBallAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.MatBallName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.MatBallFileName;\r\n let n = name || \"Mat Ball\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createMaleHeadAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.MaleHeadName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.MaleHeadFileName;\r\n let n = name || \"Male Head\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createFemaleHeadAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.FemaleHeadName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.FemaleHeadFileName;\r\n let n = name || \"Female Head\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createPokemonBallAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.PokemonBallName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.PokemonBallFileName;\r\n let n = name || \"Pokemon Ball\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createShaderBallAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.ShaderBallName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.ShaderBallFileName;\r\n let n = name || \"Shader Ball\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createBootsAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.BootsName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const folder = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.BootsFolder;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.BootsFileName;\r\n let n = name || \"Boots\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl + folder, filename, parent, n, onProgress);\r\n });\r\n }\r\n createSuzanneAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.SuzanneName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.SuzanneFileName;\r\n let n = name || \"Suzanne\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createStepPyramidAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.StepPyramidName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.StepPyramidFileName;\r\n let n = name || \"Step Pyramid\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createTeapotAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.TeapotName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.TeapotFileName;\r\n let n = name || \"Teapot\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n createAlloyWheelAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.AlloyWheelName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.RootUrl;\r\n const folder = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.AlloyWheelFolder;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Shapes.AlloyWheelFileName;\r\n let n = name || \"Wheel\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl + folder, filename, parent, n, onProgress);\r\n });\r\n }\r\n createTryonReferenceGlassesFrameAsync(parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshName = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Tryon.ReferenceGlassesFrameName;\r\n const rootUrl = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Tryon.RootUrl;\r\n const filename = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_1__.DefaultAssetUrls.Tryon.ReferenceGlassesFrameFileName;\r\n let n = name || \"Reference Glasses Frame\";\r\n n = this.getNextIncrementalName(n);\r\n return yield this.importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, n, onProgress);\r\n });\r\n }\r\n importPrimitiveShapeAsync(meshName, rootUrl, filename, parent, name, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let result = yield BABYLON.SceneLoader.ImportMeshAsync(meshName, rootUrl, filename, this._scene, onProgress);\r\n if (result && result.meshes) {\r\n meshes = result.meshes;\r\n for (let i = 0; i < meshes.length; i++) {\r\n let mesh = meshes[i];\r\n if (!mesh.parent)\r\n mesh.name = name;\r\n mesh.id = Zakeke.generateUUID();\r\n if (parent)\r\n mesh.parent = parent;\r\n }\r\n }\r\n return meshes;\r\n });\r\n }\r\n replaceTransformNodeWithMesh(transformNode) {\r\n let newMesh = null;\r\n if (this._scene) {\r\n const parent = transformNode.parent;\r\n const children = transformNode.getChildren();\r\n newMesh = new BABYLON.Mesh(transformNode.name, this._scene, parent);\r\n newMesh.id = Zakeke.generateUUID();\r\n newMesh.scaling = transformNode.scaling.clone();\r\n newMesh.position = transformNode.position.clone();\r\n newMesh.rotation = transformNode.rotation.clone();\r\n if (transformNode.rotationQuaternion)\r\n newMesh.rotationQuaternion = transformNode.rotationQuaternion.clone();\r\n children.forEach(c => c.parent = newMesh);\r\n transformNode.dispose();\r\n }\r\n return newMesh;\r\n }\r\n // import 3d model from a remote url\r\n importMeshesFromUrlAsync(url, parent, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Setting up some GLTF values\r\n let currentPluginName = undefined;\r\n BABYLON.GLTFFileLoader.IncrementalLoading = false;\r\n BABYLON.SceneLoader.OnPluginActivatedObservable.add((plugin) => {\r\n currentPluginName = plugin.name;\r\n });\r\n let meshes = [];\r\n const result = yield BABYLON.SceneLoader.ImportMeshAsync(\"\", url, undefined, this._scene, onProgress);\r\n if (result) {\r\n result.meshes.forEach(mesh => {\r\n mesh.id = Zakeke.generateUUID();\r\n meshes.push(mesh);\r\n const materials = this.getMeshMaterials(mesh);\r\n materials.forEach(m => m.id = Zakeke.generateUUID());\r\n });\r\n // trasformo i TransformNodes in meshes (perché attualmente i transform node non sono gestiti dall'editor)\r\n result.transformNodes.forEach(n => {\r\n n.id = Zakeke.generateUUID();\r\n const newMesh = this.replaceTransformNodeWithMesh(n);\r\n if (newMesh)\r\n meshes.push(newMesh);\r\n });\r\n result.geometries.forEach(g => g.id = Zakeke.generateUUID());\r\n }\r\n // Raggruppo le mesh caricate\r\n let sceneFileName = BABYLON.Tools.GetFilename(url);\r\n let name = sceneFileName;\r\n let idx = sceneFileName.lastIndexOf(\".\");\r\n if (idx !== -1)\r\n name = sceneFileName.substr(0, idx);\r\n const roots = meshes.filter(m => !m.parent);\r\n if (roots.length > 1 || (roots.length === 1 && roots[0].name !== \"__root__\")) {\r\n const root = new BABYLON.Mesh(name, this._scene);\r\n root.id = Zakeke.generateUUID();\r\n root.metadata = {\r\n isRealMesh: true,\r\n isGroup: true\r\n };\r\n roots.forEach(m => m.parent = root);\r\n }\r\n else if (roots.length === 1) {\r\n const root = roots[0];\r\n if (root.name === \"__root__\") {\r\n let name = BABYLON.Tools.GetFilename(url);\r\n let idx = sceneFileName.lastIndexOf(\".\");\r\n if (idx !== -1)\r\n name = sceneFileName.substring(0, idx);\r\n root.name = name;\r\n }\r\n }\r\n this.adjustCamera(currentPluginName, false, false);\r\n this.setupShaderMaterialsCameraPosition();\r\n return meshes;\r\n });\r\n }\r\n setupShaderMaterialsCameraPosition() {\r\n if (this._scene) {\r\n for (let i = 0; i < this._scene.materials.length; i++) {\r\n var material = this._scene.materials[i];\r\n this.setupShaderMaterialCameraPosition(material);\r\n }\r\n }\r\n }\r\n setupShaderMaterialCameraPosition(material) {\r\n if (this._scene && material && material instanceof BABYLON.ShaderMaterial) {\r\n const camera = this._scene.activeCamera;\r\n if (camera)\r\n material.setVector3(\"cameraPosition\", camera.position);\r\n }\r\n }\r\n getSceneCmScalingFactor() {\r\n let scale = null;\r\n if (this._scene) {\r\n let mesh = null;\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n var m = this._scene.meshes[i];\r\n if (m.metadata && m.metadata.sizecm) {\r\n mesh = m;\r\n break;\r\n }\r\n }\r\n if (mesh) {\r\n const boundingVectors = mesh.getHierarchyBoundingVectors();\r\n const min = boundingVectors.min;\r\n const max = boundingVectors.max;\r\n const boundSize = max.subtract(min);\r\n if (isFinite(boundSize.length())) {\r\n const width = max.x - min.x;\r\n const height = max.y - min.y;\r\n const depth = max.z - min.z;\r\n const size = mesh.metadata.sizecm;\r\n if (size.width !== undefined && typeof size.width === \"number\" && !isNaN(size.width) && width !== 0) {\r\n scale = size.width / width;\r\n }\r\n else if (size.height !== undefined && typeof size.height === \"number\" && !isNaN(size.height) && height !== 0) {\r\n scale = size.height / height;\r\n }\r\n else if (size.depth !== undefined && typeof size.depth === \"number\" && !isNaN(size.depth) && depth !== 0) {\r\n scale = size.depth / depth;\r\n }\r\n return scale;\r\n }\r\n }\r\n }\r\n return scale;\r\n }\r\n exportSceneToUsdzAsync(sceneName, sceneRootUrl, sceneID, sceneCode, arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshesForAR();\r\n let filePrefix = sceneName || \"scene\";\r\n filePrefix = filePrefix.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARAsync(filePrefix, sceneRootUrl, meshes, sceneID, sceneCode, \"usdz\", arScale);\r\n });\r\n }\r\n exportMeshToUsdzAsync(sceneRootUrl, mesh, arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshHierarchy(mesh.id);\r\n let filePrefix = mesh.name.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARAsync(filePrefix, sceneRootUrl, meshes, undefined, undefined, 'usdz', arScale);\r\n });\r\n }\r\n exportSceneToRemoteGlTFAsync(sceneName, sceneRootUrl, sceneID, sceneCode, arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshesForAR();\r\n let filePrefix = sceneName || \"scene\";\r\n filePrefix = filePrefix.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARAsync(filePrefix, sceneRootUrl, meshes, sceneID, sceneCode, \"glTF\", arScale);\r\n });\r\n }\r\n exportMeshToRemoteGlTFAsync(sceneRootUrl, mesh, arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshHierarchy(mesh.id);\r\n let filePrefix = mesh.name.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARAsync(filePrefix, sceneRootUrl, meshes, undefined, undefined, \"glTF\", arScale);\r\n });\r\n }\r\n exportSceneToRemoteGLBAsync(sceneName, sceneRootUrl, sceneID, sceneCode, arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshesForAR();\r\n let filePrefix = sceneName || \"scene\";\r\n filePrefix = filePrefix.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARAsync(filePrefix, sceneRootUrl, meshes, sceneID, sceneCode, \"glb\", arScale);\r\n });\r\n }\r\n exportMeshToRemoteGLBAsync(sceneRootUrl, mesh, arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshHierarchy(mesh.id);\r\n let filePrefix = mesh.name.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARAsync(filePrefix, sceneRootUrl, meshes, undefined, undefined, \"glb\", arScale);\r\n });\r\n }\r\n exportSceneToARMultiformatAsync(sceneName, sceneRootUrl, formats = [\"usdz\", \"glb\", \"png\"], arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshesForAR();\r\n let filePrefix = sceneName || \"scene\";\r\n filePrefix = filePrefix.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARMultiformatAsync(filePrefix, sceneRootUrl, meshes, formats, arScale);\r\n });\r\n }\r\n exportMeshToARMultiformatAsync(sceneRootUrl, mesh, formats = [\"usdz\", \"glb\", \"png\"], arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshHierarchy(mesh.id);\r\n let filePrefix = mesh.name.replace(/[^a-z0-9]/gi, '_').toLowerCase();\r\n return yield this.exportMeshesToARMultiformatAsync(filePrefix, sceneRootUrl, meshes, formats, arScale);\r\n });\r\n }\r\n getGltfBlobForARExport(filePrefix, sceneRootUrl, meshes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Opzioni di serializzazione\r\n const options = {\r\n meshes: meshes,\r\n materials: this.getMeshesMaterials(meshes),\r\n transformNodes: undefined,\r\n lights: undefined,\r\n exportTextureUrls: sceneRootUrl !== null && sceneRootUrl !== undefined,\r\n rootUrl: sceneRootUrl,\r\n shouldExportNode: (node) => {\r\n for (let i = 0; i < meshes.length; i++)\r\n if (meshes[i] === node)\r\n return true;\r\n return false;\r\n }\r\n };\r\n const gltf = yield BABYLON.GLTF2Export.GLTFAsync(this._scene, filePrefix, options);\r\n if (gltf) {\r\n const zip = new JSZip();\r\n // Evito di fare l'upload delle immagini che posso scaricare lato server\r\n const serverImages = gltf.serverImages && gltf.glTFFiles.hasOwnProperty(\"TextureUrls.txt\") ? gltf.serverImages : [];\r\n for (var key in gltf.glTFFiles) {\r\n if (serverImages.indexOf(key) === -1) {\r\n let blob = gltf.glTFFiles[key];\r\n if (_Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(key, \".gltf\") || _Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(key, \".bin\")) {\r\n zip.file(key, blob, {\r\n compression: \"DEFLATE\",\r\n compressionOptions: {\r\n level: 9 // force a compression and a compression level for this file\r\n }\r\n });\r\n }\r\n else {\r\n zip.file(key, blob, {\r\n compression: \"STORE\" // no compression\r\n });\r\n }\r\n }\r\n }\r\n let blob = yield zip.generateAsync({ type: \"blob\" });\r\n if (blob) {\r\n blob = blob;\r\n blob.lastModifiedDate = new Date();\r\n blob.name = \"arobj.zip\";\r\n return blob;\r\n }\r\n }\r\n return null;\r\n });\r\n }\r\n exportMeshesToARAsync(filePrefix, sceneRootUrl, meshes, sceneID, sceneCode, fileFormat = 'usdz', arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let arFileUrl = \"\";\r\n if (sceneID && sceneCode && Zakeke.config) {\r\n // Verifico se il file è già disponibile\r\n const url = Zakeke.config.baseApiUrl + \"artasks/cachedresults/\" + sceneID + \"/\" + sceneCode + \"/\" + fileFormat;\r\n try {\r\n arFileUrl = yield jQuery.ajax({\r\n url: url,\r\n data: null,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'GET'\r\n });\r\n }\r\n catch (err) {\r\n arFileUrl = \"\";\r\n }\r\n }\r\n if (!arFileUrl) {\r\n // Il file va generato\r\n let scale = this.getSceneCmScalingFactor();\r\n /* Lascio l'adattamento al servizio di esportazione\r\n if (fileFormat !== \"usdz\" && scale)\r\n scale /= 100;\r\n */\r\n const blob = yield this.getGltfBlobForARExport(filePrefix, sceneRootUrl, meshes);\r\n if (blob) {\r\n const taskOptions = {\r\n flipTextures: true, formats: [fileFormat]\r\n };\r\n if (sceneID)\r\n taskOptions.sceneID = sceneID;\r\n if (sceneCode)\r\n taskOptions.sceneCode = sceneCode;\r\n if (scale)\r\n taskOptions.scale = scale;\r\n let isOwin = true;\r\n if (window[\"isOwin\"] != undefined)\r\n isOwin = window[\"isOwin\"];\r\n const chunkedTask = new _composer_Components_ChunkedTask__WEBPACK_IMPORTED_MODULE_0__.Task(\"artasks\", window[\"token\"], isOwin);\r\n const uploadResult = yield chunkedTask.upload(blob, taskOptions);\r\n if (uploadResult && uploadResult.length > 0) {\r\n arFileUrl = uploadResult[0].arFileUrl;\r\n }\r\n }\r\n }\r\n return arFileUrl;\r\n });\r\n }\r\n exportMeshesToARMultiformatAsync(filePrefix, sceneRootUrl, meshes, formats = [\"usdz\", \"glb\", \"png\"], arScale = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let result = [];\r\n const scale = this.getSceneCmScalingFactor();\r\n const blob = yield this.getGltfBlobForARExport(filePrefix, sceneRootUrl, meshes);\r\n if (blob) {\r\n const taskOptions = {\r\n flipTextures: true, formats: formats\r\n };\r\n if (scale)\r\n taskOptions.scale = scale;\r\n let isOwin = true;\r\n if (window[\"isOwin\"] !== undefined)\r\n isOwin = window[\"isOwin\"];\r\n const chunkedTask = new _composer_Components_ChunkedTask__WEBPACK_IMPORTED_MODULE_0__.Task(\"artasks\", window[\"token\"], isOwin);\r\n const uploadResult = yield chunkedTask.upload(blob, taskOptions);\r\n if (uploadResult && uploadResult.length > 0) {\r\n for (let i = 0; i < uploadResult.length; i++) {\r\n const res = uploadResult[i];\r\n result.push(res);\r\n }\r\n //result = [...uploadResult];\r\n }\r\n }\r\n return result;\r\n });\r\n }\r\n // Metodi per esportazione on-the-fly client side\r\n exportSceneToLocalGlTFBlobsAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const filePrefix = Zakeke.generateUUID();\r\n const options = this.getSceneToGltfExportOptions();\r\n const gltf = yield BABYLON.GLTF2Export.GLTFAsync(this._scene, filePrefix, options);\r\n let blobs = [];\r\n for (let key in gltf.glTFFiles) {\r\n blobs.push(gltf.glTFFiles[key]);\r\n }\r\n return blobs;\r\n });\r\n }\r\n exportSceneToLocalGlTFUrlsAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const urls = [];\r\n const filePrefix = Zakeke.generateUUID();\r\n const options = this.getSceneToGltfExportOptions();\r\n const gltf = yield BABYLON.GLTF2Export.GLTFAsync(this._scene, filePrefix, options);\r\n if (gltf) {\r\n for (let key in gltf.glTFFiles) {\r\n var blob = gltf.glTFFiles[key];\r\n urls.push(this.getGltfFileUrl(key, blob));\r\n }\r\n }\r\n return urls;\r\n });\r\n }\r\n downloadSceneLocalGltfAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const filePrefix = Zakeke.generateUUID();\r\n const options = this.getSceneToGltfExportOptions();\r\n const gltf = yield BABYLON.GLTF2Export.GLTFAsync(this._scene, filePrefix, options);\r\n if (gltf) {\r\n gltf.downloadFiles();\r\n }\r\n });\r\n }\r\n exportSceneToLocalGLBBlobAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const result = yield this.getSceneLocalGLBBlobInfoAsync();\r\n if (result) {\r\n return result.blob;\r\n }\r\n return null;\r\n });\r\n }\r\n exportSceneToLocalGLBBase64Async() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let dataUrl = null;\r\n const info = yield this.getSceneLocalGLBBlobInfoAsync();\r\n if (info && info.blob instanceof Blob) {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(info.blob);\r\n reader.onloadend = () => {\r\n let res = reader.result;\r\n if (typeof res === \"string\")\r\n dataUrl = res;\r\n };\r\n }\r\n return dataUrl;\r\n });\r\n }\r\n exportSceneToLocalGLBUrlAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let url = null;\r\n const info = yield this.getSceneLocalGLBBlobInfoAsync();\r\n if (info && info.name && info.blob instanceof Blob) {\r\n url = this.getGltfFileUrl(info.name, info.blob);\r\n }\r\n return url;\r\n });\r\n }\r\n downloadSceneLocalGLBAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const info = yield this.getSceneLocalGLBBlobInfoAsync();\r\n if (info && info.name && info.blob instanceof Blob) {\r\n let url = this.getGltfFileUrl(info.name, info.blob);\r\n var link = document.createElement('a');\r\n document.body.appendChild(link);\r\n link.setAttribute(\"type\", \"hidden\");\r\n link.download = info.name;\r\n link.href = url;\r\n link.click();\r\n document.body.removeChild(link);\r\n URL.revokeObjectURL(url);\r\n }\r\n });\r\n }\r\n getSceneLocalGLBBlobInfoAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let result = { name: null, blob: null };\r\n const filePrefix = Zakeke.generateUUID();\r\n const options = this.getSceneToGltfExportOptions();\r\n let gltf = yield BABYLON.GLTF2Export.GLBAsync(this._scene, filePrefix, options);\r\n if (gltf && gltf.glTFFiles) {\r\n for (let key in gltf.glTFFiles) {\r\n if (_Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(key, \".glb\")) {\r\n // Using glTF-Transform for gltf scaling and rotation\r\n let scale = this.getSceneCmScalingFactor();\r\n let s = 1;\r\n if (scale)\r\n s = scale / 100;\r\n const quanternion = BABYLON.Quaternion.RotationAxis(BABYLON.Axis.Y, 2 * Math.PI);\r\n const io = new _gltf_transform_core__WEBPACK_IMPORTED_MODULE_5__.WebIO();\r\n const buffer = yield gltf.glTFFiles[key].arrayBuffer();\r\n const doc = io.readBinary(buffer);\r\n const roots = doc.getRoot().listNodes().filter(n => n.getParent() === null || n.getParent() instanceof _gltf_transform_core__WEBPACK_IMPORTED_MODULE_5__.Scene);\r\n const a1 = [0, 1, 0, 0];\r\n const canRotate = roots.every(r => {\r\n const a2 = r.getRotation();\r\n return a1.length === a2.length && a1.every((value, index) => value === a2[index]);\r\n });\r\n roots.forEach(r => {\r\n r.setScale([s, s, s]);\r\n // La questione rotazione necessita di approfondimento\r\n if (canRotate) {\r\n r.setRotation([quanternion.x, quanternion.y, quanternion.z, quanternion.w]);\r\n }\r\n });\r\n const glbArray = io.writeBinary(doc); // Document → Uint8Array\r\n const glbBlob = new Blob([glbArray], { type: \"model/gltf-binary\" });\r\n // ------------------------------\r\n result.name = key;\r\n //result.blob = gltf.glTFFiles[key];\r\n result.blob = glbBlob;\r\n break;\r\n }\r\n }\r\n }\r\n return result;\r\n });\r\n }\r\n // -----------------------------------------------------------------------\r\n // Metodi per exportazione della scena in USDZ su client (on-the-fly)\r\n exportSceneToLocalUSDZBlobAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const result = yield this.getSceneLocalUSDZBlobInfoAsync();\r\n if (result) {\r\n return result.blob;\r\n }\r\n return null;\r\n });\r\n }\r\n exportSceneToLocalUSDZBase64Async() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let dataUrl = null;\r\n const info = yield this.getSceneLocalUSDZBlobInfoAsync();\r\n if (info && info.blob instanceof Blob) {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(info.blob);\r\n reader.onloadend = () => {\r\n let res = reader.result;\r\n if (typeof res === \"string\")\r\n dataUrl = res;\r\n };\r\n }\r\n return dataUrl;\r\n });\r\n }\r\n exportSceneToLocalUSDZUrlAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let url = null;\r\n const info = yield this.getSceneLocalUSDZBlobInfoAsync();\r\n if (info && info.name && info.blob instanceof Blob) {\r\n url = this.getUsdzFileUrl(info.name, info.blob);\r\n }\r\n return url;\r\n });\r\n }\r\n downloadSceneLocalUSDZAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const info = yield this.getSceneLocalUSDZBlobInfoAsync();\r\n if (info && info.name && info.blob instanceof Blob) {\r\n let url = this.getUsdzFileUrl(info.name, info.blob);\r\n var link = document.createElement('a');\r\n document.body.appendChild(link);\r\n link.setAttribute(\"type\", \"hidden\");\r\n link.download = info.name;\r\n link.href = url;\r\n link.click();\r\n document.body.removeChild(link);\r\n URL.revokeObjectURL(url);\r\n }\r\n });\r\n }\r\n getSceneLocalUSDZBlobInfoAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let result = { name: null, blob: null };\r\n const glbInfo = yield this.getSceneLocalGLBBlobInfoAsync();\r\n if (glbInfo && glbInfo.name && glbInfo.blob && glbInfo.blob instanceof Blob) {\r\n const glbUrl = this.getGltfFileUrl(glbInfo.name, glbInfo.blob);\r\n const usdzBlob = yield _USDZ_UsdzHelper__WEBPACK_IMPORTED_MODULE_4__.UsdzHelper.convertGlbToUsdz(glbUrl);\r\n result.name = glbInfo.name.replace(\".glb\", \".usdz\");\r\n result.blob = usdzBlob;\r\n }\r\n return result;\r\n });\r\n }\r\n // -----------------------------------------------------------------------\r\n getSceneToGltfExportOptions() {\r\n var meshes = this.getMeshesForAR();\r\n var options = {\r\n meshes: meshes,\r\n materials: this.getMeshesMaterials(meshes),\r\n transformNodes: undefined,\r\n lights: undefined,\r\n exportTextureUrls: false,\r\n rootUrl: null,\r\n shouldExportNode: (node) => {\r\n for (var i = 0; i < meshes.length; i++)\r\n if (meshes[i] === node)\r\n return true;\r\n return false;\r\n }\r\n };\r\n return options;\r\n }\r\n getGltfFileUrl(name, blob) {\r\n var mimeType = undefined;\r\n if (_Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(name, \".glb\")) {\r\n mimeType = { type: \"model/gltf-binary\" };\r\n }\r\n else if (_Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(name, \".bin\")) {\r\n mimeType = { type: \"application/octet-stream\" };\r\n }\r\n else if (_Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(name, \".gltf\")) {\r\n mimeType = { type: \"model/gltf+json\" };\r\n }\r\n else if (_Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(name, \".jpeg\")) {\r\n mimeType = { type: \"image/jpeg\" };\r\n }\r\n else if (_Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(name, \".png\")) {\r\n mimeType = { type: \"image/png\" };\r\n }\r\n return window.URL.createObjectURL(new Blob([blob], mimeType));\r\n }\r\n getUsdzFileUrl(name, blob) {\r\n var mimeType = { type: \"model/vnd.usdz+zip\" };\r\n return window.URL.createObjectURL(new Blob([blob], mimeType));\r\n }\r\n exportSceneToBabylon() {\r\n const serializedScene = BABYLON.SceneSerializer.Serialize(this._scene);\r\n const json = JSON.stringify(serializedScene);\r\n return json;\r\n }\r\n exportVisibleMeshesToBabylon() {\r\n const meshes = this.getVisibleMeshes();\r\n const serializedMeshes = BABYLON.SceneSerializer.SerializeMesh(meshes, false, false);\r\n let json = JSON.stringify(serializedMeshes);\r\n return json;\r\n }\r\n downloadImageFromBase64(base64, name, mimetype) {\r\n var a = document.createElement(\"a\"); //Create \r\n a.href = base64; //Image Base64 Goes here\r\n a.download = name; //File name Here\r\n a.click(); //Downloaded file\r\n a.remove();\r\n }\r\n getStandardMaterialTextureType(material, texture) {\r\n if (material.diffuseTexture === texture)\r\n return \"diffuse\";\r\n if (material.emissiveTexture === texture)\r\n return \"emissive\";\r\n if (material.ambientTexture === texture)\r\n return \"ambient\";\r\n if (material.lightmapTexture === texture)\r\n return \"lightmap\";\r\n if (material.opacityTexture === texture)\r\n return \"opacity\";\r\n if (material.specularTexture === texture)\r\n return \"specular\";\r\n if (material.reflectionTexture === texture)\r\n return \"reflection\";\r\n if (material.refractionTexture === texture)\r\n return \"refraction\";\r\n if (material.bumpTexture === texture)\r\n return \"bump\";\r\n return null;\r\n }\r\n getPBRMetallicRoughnessMaterialTextureType(material, texture) {\r\n if (material.environmentTexture === texture)\r\n return \"environment\";\r\n if (material.normalTexture === texture)\r\n return \"normal\";\r\n if (material.emissiveTexture === texture)\r\n return \"emissive\";\r\n if (material.occlusionTexture === texture)\r\n return \"occlusion\";\r\n if (material.baseTexture === texture)\r\n return \"base\";\r\n if (material.metallicRoughnessTexture === texture)\r\n return \"metallicRoughness\";\r\n return null;\r\n }\r\n getPBRSpecularGlossinessMaterialTextureType(material, texture) {\r\n if (material.environmentTexture === texture)\r\n return \"environment\";\r\n if (material.normalTexture === texture)\r\n return \"normal\";\r\n if (material.emissiveTexture === texture)\r\n return \"emissive\";\r\n if (material.occlusionTexture === texture)\r\n return \"occlusion\";\r\n if (material.diffuseTexture === texture)\r\n return \"diffuse\";\r\n if (material.specularGlossinessTexture === texture)\r\n return \"specularGlossiness\";\r\n return null;\r\n }\r\n getPBRMaterialTextureType(material, texture) {\r\n if (material.cameraColorGradingTexture === texture)\r\n return \"cameraColorGrading\";\r\n if (material.albedoTexture === texture)\r\n return \"albedo\";\r\n if (material.ambientTexture === texture)\r\n return \"ambient\";\r\n if (material.opacityTexture === texture)\r\n return \"opacity\";\r\n if (material.reflectionTexture === texture)\r\n return \"reflection\";\r\n if (material.emissiveTexture === texture)\r\n return \"emissive\";\r\n if (material.reflectivityTexture === texture)\r\n return \"reflectivity\";\r\n if (material.metallicTexture === texture)\r\n return \"metallic\";\r\n if (material.microSurfaceTexture === texture)\r\n return \"microSurface\";\r\n if (material.bumpTexture === texture)\r\n return \"bump\";\r\n if (material.lightmapTexture === texture)\r\n return \"lightmap\";\r\n if (material.refractionTexture === texture)\r\n return \"refraction\";\r\n if (material.clearCoat) {\r\n if (material.clearCoat.texture === texture)\r\n return \"clearCoat\";\r\n if (material.clearCoat.bumpTexture === texture)\r\n return \"clearCoat_bump\";\r\n if (material.clearCoat.tintTexture === texture)\r\n return \"clearCoat_tint\";\r\n if (material.clearCoat.textureRoughness === texture)\r\n return \"clearCoat_textureRoughness\";\r\n if (material.clearCoat.texture === texture)\r\n return \"clearCoat_texture\";\r\n }\r\n if (material.anisotropy) {\r\n if (material.anisotropy.texture === texture)\r\n return \"anisotropy_texture\";\r\n }\r\n if (material.sheen) {\r\n if (material.sheen.texture === texture)\r\n return \"sheen_texture\";\r\n if (material.sheen.textureRoughness === texture)\r\n return \"sheen_textureRoughness\";\r\n }\r\n if (material.subSurface) {\r\n if (material.subSurface.thicknessTexture === texture)\r\n return \"subSurface_thickness\";\r\n if (material.subSurface.refractionIntensityTexture === texture)\r\n return \"subSurface_refractionIntensity\";\r\n if (material.subSurface.translucencyIntensityTexture === texture)\r\n return \"subSurface_translucencyIntensity\";\r\n }\r\n return null;\r\n }\r\n getZakekePBRMaterialTextureType(material, texture) {\r\n if (material.albedoTexture === texture)\r\n return \"albedo\";\r\n if (material.bumpTexture === texture)\r\n return \"bump\";\r\n if (material.reflectionTexture === texture)\r\n return \"reflection\";\r\n if (material.matCapReflectionTexture === texture)\r\n return \"matCapReflection\";\r\n if (material.reflectivityTexture === texture)\r\n return \"reflectivity\";\r\n if (material.microsurfaceTexture === texture)\r\n return \"microsurface\";\r\n if (material.ambientTexture === texture)\r\n return \"ambient\";\r\n if (material.aoTexture === texture)\r\n return \"ao\";\r\n if (material.opacityTexture === texture)\r\n return \"opacity\";\r\n return null;\r\n }\r\n getMaterialTextureType(material, texture) {\r\n if (material instanceof BABYLON.StandardMaterial)\r\n return this.getStandardMaterialTextureType(material, texture);\r\n if (material instanceof BABYLON.PBRMetallicRoughnessMaterial)\r\n return this.getPBRMetallicRoughnessMaterialTextureType(material, texture);\r\n if (material instanceof BABYLON.PBRSpecularGlossinessMaterial)\r\n return this.getPBRSpecularGlossinessMaterialTextureType(material, texture);\r\n if (material instanceof BABYLON.PBRMaterial)\r\n return this.getPBRMaterialTextureType(material, texture);\r\n if (material instanceof Zakeke.PBRMaterial)\r\n return this.getZakekePBRMaterialTextureType(material, texture);\r\n return null;\r\n }\r\n getMaterialTexture(material, type) {\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n switch (type) {\r\n case \"diffuse\":\r\n return material.diffuseTexture;\r\n case \"emissive\":\r\n return material.emissiveTexture;\r\n case \"ambient\":\r\n return material.ambientTexture;\r\n case \"lightmap\":\r\n return material.lightmapTexture;\r\n case \"opacity\":\r\n return material.opacityTexture;\r\n case \"specular\":\r\n return material.specularTexture;\r\n case \"reflection\":\r\n return material.reflectionTexture;\r\n case \"refraction\":\r\n return material.refractionTexture;\r\n case \"bump\":\r\n return material.bumpTexture;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n switch (type) {\r\n case \"environment\":\r\n case \"normal\":\r\n case \"emissive\":\r\n case \"occlusion\":\r\n case \"base\":\r\n case \"metallicRoughness\":\r\n return material[`${type}Texture`];\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n switch (type) {\r\n case \"environment\":\r\n case \"normal\":\r\n case \"emissive\":\r\n case \"occlusion\":\r\n case \"diffuse\":\r\n case \"specularGlossiness\":\r\n return material[`${type}Texture`];\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n switch (type) {\r\n case \"cameraColorGrading\":\r\n return material.cameraColorGradingTexture;\r\n case \"albedo\":\r\n case \"ambient\":\r\n case \"opacity\":\r\n case \"reflection\":\r\n case \"emissive\":\r\n case \"reflectivity\":\r\n case \"metallic\":\r\n case \"microSurface\":\r\n case \"bump\":\r\n case \"lightmap\":\r\n return material[`${type}Texture`];\r\n case \"refraction\":\r\n return material.refractionTexture;\r\n case \"environmentBRDF\":\r\n return material.environmentBRDFTexture;\r\n case \"clearCoat_texture\":\r\n return material.clearCoat.texture;\r\n case \"clearCoat_bump\":\r\n return material.clearCoat.bumpTexture;\r\n case \"clearCoat_tint\":\r\n return material.clearCoat.tintTexture;\r\n case \"clearCoat_textureRoughness\":\r\n return material.clearCoat.textureRoughness;\r\n case \"anisotropy_texture\":\r\n return material.anisotropy.texture;\r\n case \"sheen_texture\":\r\n return material.sheen.texture;\r\n case \"sheen_textureRoughness\":\r\n return material.sheen.textureRoughness;\r\n case \"subSurface_thickness\":\r\n return material.subSurface.thicknessTexture;\r\n case \"subSurface_translucencyIntensity\":\r\n return material.subSurface.translucencyIntensityTexture;\r\n case \"subSurface_refractionIntensity\":\r\n return material.subSurface.refractionIntensityTexture;\r\n }\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n switch (type) {\r\n case \"albedo\":\r\n return material.albedoTexture;\r\n case \"bump\":\r\n return material.bumpTexture;\r\n case \"reflection\":\r\n return material.reflectionTexture;\r\n case \"matCapReflection\":\r\n return material.matCapReflectionTexture;\r\n case \"reflectivity\":\r\n return material.reflectivityTexture;\r\n case \"microsurface\":\r\n return material.microsurfaceTexture;\r\n case \"ambient\":\r\n return material.ambientTexture;\r\n case \"ao\":\r\n return material.aoTexture;\r\n case \"opacity\":\r\n return material.opacityTexture;\r\n }\r\n }\r\n return null;\r\n }\r\n applyTexture(texture, material, type) {\r\n // Lightmap always on second channel\r\n if (texture && type == \"lightmap\") {\r\n texture.coordinatesIndex = 1;\r\n if (material instanceof BABYLON.StandardMaterial ||\r\n material instanceof BABYLON.PBRMaterial ||\r\n material instanceof BABYLON.PBRBaseSimpleMaterial)\r\n material.useLightmapAsShadowmap = true;\r\n }\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n switch (type) {\r\n case \"diffuse\":\r\n material.diffuseTexture = texture;\r\n break;\r\n case \"emissive\":\r\n material.emissiveTexture = texture;\r\n break;\r\n case \"ambient\":\r\n material.ambientTexture = texture;\r\n break;\r\n case \"lightmap\":\r\n material.lightmapTexture = texture;\r\n break;\r\n case \"opacity\":\r\n material.opacityTexture = texture;\r\n break;\r\n case \"specular\":\r\n material.specularTexture = texture;\r\n break;\r\n case \"reflection\":\r\n material.reflectionTexture = texture;\r\n break;\r\n case \"refraction\":\r\n material.refractionTexture = texture;\r\n break;\r\n case \"bump\":\r\n material.bumpTexture = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n switch (type) {\r\n case \"environment\":\r\n case \"normal\":\r\n case \"emissive\":\r\n case \"occlusion\":\r\n case \"base\":\r\n case \"metallicRoughness\":\r\n material[`${type}Texture`] = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n switch (type) {\r\n case \"environment\":\r\n case \"normal\":\r\n case \"emissive\":\r\n case \"occlusion\":\r\n case \"diffuse\":\r\n case \"specularGlossiness\":\r\n material[`${type}Texture`] = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n switch (type) {\r\n case \"cameraColorGrading\":\r\n material.cameraColorGradingTexture = texture;\r\n break;\r\n case \"albedo\":\r\n case \"ambient\":\r\n case \"opacity\":\r\n case \"reflection\":\r\n case \"emissive\":\r\n case \"reflectivity\":\r\n case \"metallic\":\r\n case \"microSurface\":\r\n case \"bump\":\r\n case \"lightmap\":\r\n material[`${type}Texture`] = texture;\r\n break;\r\n case \"refraction\":\r\n material.refractionTexture = texture;\r\n break;\r\n case \"environmentBRDF\":\r\n material.environmentBRDFTexture = texture;\r\n break;\r\n case \"clearCoat_texture\":\r\n material.clearCoat.texture = texture;\r\n break;\r\n case \"clearCoat_bump\":\r\n material.clearCoat.bumpTexture = texture;\r\n break;\r\n case \"clearCoat_tint\":\r\n material.clearCoat.tintTexture = texture;\r\n break;\r\n case \"clearCoat_textureRoughness\":\r\n material.clearCoat.textureRoughness = texture;\r\n break;\r\n case \"anisotropy_texture\":\r\n material.anisotropy.texture = texture;\r\n break;\r\n case \"sheen_texture\":\r\n material.sheen.texture = texture;\r\n break;\r\n case \"sheen_textureRoughness\":\r\n material.sheen.textureRoughness = texture;\r\n break;\r\n case \"subSurface_thickness\":\r\n material.subSurface.thicknessTexture = texture;\r\n break;\r\n case \"subSurface_translucencyIntensity\":\r\n material.subSurface.translucencyIntensityTexture = texture;\r\n break;\r\n case \"subSurface_refractionIntensity\":\r\n material.subSurface.refractionIntensityTexture = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.ShaderMaterial) {\r\n if (texture && texture instanceof BABYLON.Texture)\r\n material.setTexture(type, texture);\r\n else\r\n material.removeTexture(type);\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n switch (type) {\r\n case \"albedo\":\r\n material.albedoTexture = texture;\r\n break;\r\n case \"bump\":\r\n material.bumpTexture = texture;\r\n break;\r\n case \"reflection\":\r\n material.reflectionTexture = texture;\r\n break;\r\n case \"matCapReflection\":\r\n material.matCapReflectionTexture = texture;\r\n break;\r\n case \"reflectivity\":\r\n material.reflectivityTexture = texture;\r\n break;\r\n case \"microsurface\":\r\n material.microsurfaceTexture = texture;\r\n break;\r\n case \"ambient\":\r\n material.ambientTexture = texture;\r\n break;\r\n case \"ao\":\r\n material.aoTexture = texture;\r\n break;\r\n case \"opacity\":\r\n material.opacityTexture = texture;\r\n break;\r\n }\r\n }\r\n }\r\n applyTextureOnSerializedMaterial(serializedTexture, serializedMaterial, textureType, materialType) {\r\n // Lightmap always on second channel\r\n if (serializedTexture && textureType == \"lightmap\") {\r\n serializedTexture.coordinatesIndex = 1;\r\n if (materialType === \"BABYLON.StandardMaterial\" ||\r\n materialType === \"BABYLON.PBRMaterial\" ||\r\n materialType === \"BABYLON.PBRBaseSimpleMaterial\")\r\n serializedMaterial[\"useLightmapAsShadowmap\"] = true;\r\n }\r\n if (materialType === \"BABYLON.StandardMaterial\") {\r\n serializedMaterial[`${textureType}Texture`] = serializedTexture;\r\n }\r\n else if (materialType === \"BABYLON.PBRMetallicRoughnessMaterial\") {\r\n serializedMaterial[`${textureType}Texture`] = serializedTexture;\r\n }\r\n else if (materialType === \"BABYLON.PBRSpecularGlossinessMaterial\") {\r\n serializedMaterial[`${textureType}Texture`] = serializedTexture;\r\n }\r\n else if (materialType === \"BABYLON.PBRMaterial\") {\r\n switch (textureType) {\r\n case \"cameraColorGrading\":\r\n serializedMaterial[\"cameraColorGradingTexture\"] = serializedTexture;\r\n break;\r\n case \"albedo\":\r\n case \"ambient\":\r\n case \"opacity\":\r\n case \"reflection\":\r\n case \"emissive\":\r\n case \"reflectivity\":\r\n case \"metallic\":\r\n case \"microSurface\":\r\n case \"bump\":\r\n case \"lightmap\":\r\n case \"refraction\":\r\n serializedMaterial[`${textureType}Texture`] = serializedTexture;\r\n break;\r\n case \"environmentBRDF\":\r\n serializedMaterial.environmentBRDFTexture = serializedTexture;\r\n break;\r\n case \"clearCoat_texture\":\r\n serializedMaterial.clearCoat.texture = serializedTexture;\r\n break;\r\n case \"clearCoat_bump\":\r\n serializedMaterial.clearCoat.bumpTexture = serializedTexture;\r\n break;\r\n case \"clearCoat_tint\":\r\n serializedMaterial.clearCoat.tintTexture = serializedTexture;\r\n break;\r\n case \"clearCoat_textureRoughness\":\r\n serializedMaterial.clearCoat.textureRoughness = serializedTexture;\r\n break;\r\n case \"anisotropy_texture\":\r\n serializedMaterial.anisotropy.texture = serializedTexture;\r\n break;\r\n case \"sheen_texture\":\r\n serializedMaterial.sheen.texture = serializedTexture;\r\n break;\r\n case \"sheen_textureRoughness\":\r\n serializedMaterial.sheen.textureRoughness = serializedTexture;\r\n break;\r\n case \"subSurface_thickness\":\r\n serializedMaterial.subSurface.thicknessTexture = serializedTexture;\r\n break;\r\n case \"subSurface_translucencyIntensity\":\r\n serializedMaterial.subSurface.translucencyIntensityTexture = serializedTexture;\r\n break;\r\n case \"subSurface_refractionIntensity\":\r\n serializedMaterial.subSurface.refractionIntensityTexture = serializedTexture;\r\n break;\r\n }\r\n }\r\n else if (materialType === \"Zakeke.PBRMaterial\") {\r\n serializedMaterial[`${textureType}Texture`] = serializedTexture;\r\n }\r\n }\r\n getSerializedMaterialTexture(serializedMaterial, textureType, materialType) {\r\n if (materialType === \"BABYLON.StandardMaterial\") {\r\n return serializedMaterial[`${textureType}Texture`];\r\n }\r\n else if (materialType === \"BABYLON.PBRMetallicRoughnessMaterial\") {\r\n return serializedMaterial[`${textureType}Texture`];\r\n }\r\n else if (materialType === \"BABYLON.PBRSpecularGlossinessMaterial\") {\r\n return serializedMaterial[`${textureType}Texture`];\r\n }\r\n else if (materialType === \"BABYLON.PBRMaterial\") {\r\n switch (textureType) {\r\n case \"cameraColorGrading\":\r\n return serializedMaterial[\"cameraColorGradingTexture\"];\r\n case \"albedo\":\r\n case \"ambient\":\r\n case \"opacity\":\r\n case \"reflection\":\r\n case \"emissive\":\r\n case \"reflectivity\":\r\n case \"metallic\":\r\n case \"microSurface\":\r\n case \"bump\":\r\n case \"lightmap\":\r\n case \"refraction\":\r\n return serializedMaterial[`${textureType}Texture`];\r\n case \"environmentBRDF\":\r\n return serializedMaterial.environmentBRDFTexture;\r\n case \"clearCoat_texture\":\r\n return serializedMaterial.clearCoat.texture;\r\n case \"clearCoat_bump\":\r\n return serializedMaterial.clearCoat.bumpTexture;\r\n case \"clearCoat_tint\":\r\n return serializedMaterial.clearCoat.tintTexture;\r\n case \"clearCoat_textureRoughness\":\r\n return serializedMaterial.clearCoat.textureRoughness;\r\n case \"anisotropy_texture\":\r\n return serializedMaterial.anisotropy.texture;\r\n case \"sheen_texture\":\r\n return serializedMaterial.sheen.texture;\r\n case \"sheen_textureRoughness\":\r\n return serializedMaterial.sheen.textureRoughness;\r\n case \"subSurface_thickness\":\r\n return serializedMaterial.subSurface.thicknessTexture;\r\n case \"subSurface_translucencyIntensity\":\r\n return serializedMaterial.subSurface.translucencyIntensityTexture;\r\n case \"subSurface_refractionIntensity\":\r\n return serializedMaterial.subSurface.refractionIntensityTexture;\r\n }\r\n }\r\n else if (materialType === \"Zakeke.PBRMaterial\") {\r\n return serializedMaterial[`${textureType}Texture`];\r\n }\r\n return null;\r\n }\r\n getMaterialTypeName(material) {\r\n if (material instanceof BABYLON.StandardMaterial)\r\n return \"BABYLON.StandardMaterial\";\r\n if (material instanceof BABYLON.PBRMetallicRoughnessMaterial)\r\n return \"BABYLON.PBRMetallicRoughnessMaterial\";\r\n if (material instanceof BABYLON.PBRSpecularGlossinessMaterial)\r\n return \"BABYLON.PBRSpecularGlossinessMaterial\";\r\n if (material instanceof BABYLON.PBRMaterial)\r\n return \"BABYLON.PBRMaterial\";\r\n if (material instanceof BABYLON.ShaderMaterial)\r\n return \"BABYLON.ShaderMaterial\";\r\n if (material instanceof Zakeke.PBRMaterial)\r\n return \"Zakeke.PBRMaterial\";\r\n return \"BABYLON.StandardMaterial\";\r\n }\r\n exportMeshToBabylon(mesh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshHierarchy(mesh.id);\r\n return yield this.exportMeshesToBabylon(meshes);\r\n });\r\n }\r\n exportMeshesToBabylon(meshes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const materials = this.getMeshesMaterials(meshes);\r\n // Save previous serializable property value\r\n const meshSerializability = meshes.map(m => {\r\n return { id: m.id, doNotSerialize: m.doNotSerialize };\r\n });\r\n const materialSerializability = materials.map(m => {\r\n return { id: m.id, doNotSerialize: m.doNotSerialize };\r\n });\r\n // set all serializable\r\n meshes.forEach(m => m.doNotSerialize = false);\r\n materials.forEach(m => m.doNotSerialize = false);\r\n try {\r\n const materialTextures = {};\r\n for (let i = 0; i < materials.length; i++) {\r\n const material = materials[i];\r\n const materialID = material.id;\r\n const textures = this.getMaterialDynamicTextures(material);\r\n if (textures.length > 0) {\r\n materialTextures[materialID] = {\r\n materialType: this.getMaterialTypeName(material),\r\n textures: []\r\n };\r\n for (let j = 0; j < textures.length; j++) {\r\n const texture = textures[j];\r\n const textureID = Zakeke.generateUUID();\r\n const type = this.getMaterialTextureType(material, texture);\r\n const base64String = yield this.exportTextureToBase64Async(texture, \"image/png\");\r\n if (type && base64String) {\r\n const textureData = { id: textureID, type, base64String, isProcedural: texture instanceof BABYLON.ProceduralTexture };\r\n materialTextures[materialID].textures.push(textureData);\r\n }\r\n }\r\n }\r\n }\r\n const serializedMeshes = BABYLON.SceneSerializer.SerializeMesh(meshes, false, false);\r\n // now for each dynamic texture we embed the base64 data uri\r\n for (let i = 0; i < serializedMeshes.materials.length; i++) {\r\n const serializedMaterial = serializedMeshes.materials[i];\r\n const propertyNames = Object.getOwnPropertyNames(serializedMaterial)\r\n .filter(n => n.slice(-\"Texture\".length) === \"Texture\" && typeof serializedMaterial[n] === \"object\");\r\n const materialID = serializedMaterial.id;\r\n if (materialTextures.hasOwnProperty(materialID)) {\r\n const materialInfo = materialTextures[materialID];\r\n const materialType = materialInfo.materialType;\r\n const textureInfoArray = materialInfo.textures;\r\n for (let j = 0; j < textureInfoArray.length; j++) {\r\n const textureInfo = textureInfoArray[j];\r\n const serializedTexture = this.getSerializedMaterialTexture(serializedMaterial, textureInfo.type, materialInfo.materialType);\r\n if (serializedTexture) {\r\n if (textureInfo.isProcedural) {\r\n const tempTexture = new BABYLON.Texture(textureInfo.base64String, this._scene, undefined, undefined, undefined, undefined);\r\n yield SceneHelper.whenTextureIsReadyAsync(tempTexture);\r\n tempTexture.uScale = serializedTexture.uScale;\r\n tempTexture.vScale = serializedTexture.vScale;\r\n tempTexture.uOffset = serializedTexture.uOffset;\r\n tempTexture.vOffset = serializedTexture.vOffset;\r\n tempTexture.uAng = serializedTexture.uAng;\r\n tempTexture.vAng = serializedTexture.vAng;\r\n tempTexture.level = serializedTexture.level;\r\n tempTexture.coordinatesIndex = serializedTexture.coordinatesIndex;\r\n tempTexture.coordinatesMode = serializedTexture.coordinatesMode;\r\n tempTexture.wrapU = serializedTexture.wrapU;\r\n tempTexture.wrapV = serializedTexture.wrapV;\r\n const newTextureJson = tempTexture.serialize();\r\n newTextureJson.url = textureInfo.base64String;\r\n newTextureJson.name = \"prcedural texture\";\r\n this.applyTextureOnSerializedMaterial(newTextureJson, serializedMaterial, textureInfo.type, materialType);\r\n tempTexture.dispose();\r\n }\r\n }\r\n else {\r\n serializedTexture.url = textureInfo.base64String;\r\n serializedTexture.name = \"dynamic texture\";\r\n }\r\n }\r\n }\r\n }\r\n let json = JSON.stringify(serializedMeshes);\r\n // Reset doNotSerialize property value\r\n meshes.forEach(m => { var _a; return m.doNotSerialize = (_a = meshSerializability.find(s => s.id === m.id)) === null || _a === void 0 ? void 0 : _a.doNotSerialize; });\r\n materials.forEach(m => m.doNotSerialize = materialSerializability.find(s => s.id === m.id).doNotSerialize);\r\n return json;\r\n }\r\n finally {\r\n meshes.forEach(m => { var _a; return m.doNotSerialize = (_a = meshSerializability.find(s => s.id === m.id)) === null || _a === void 0 ? void 0 : _a.doNotSerialize; });\r\n materials.forEach(m => m.doNotSerialize = materialSerializability.find(s => s.id === m.id).doNotSerialize);\r\n }\r\n });\r\n }\r\n exportMeshesForTyOnToBabylon() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const meshes = this.getMeshesForTryOn();\r\n return yield this.exportMeshesToBabylon(meshes);\r\n });\r\n }\r\n downloadBlob(blob) {\r\n const link = URL.createObjectURL(blob);\r\n const a = document.createElement(\"a\");\r\n a.download = \"mesh.json\";\r\n a.href = link;\r\n a.click();\r\n URL.revokeObjectURL(link);\r\n }\r\n downloadMeshBabylonAsync(mesh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const json = yield this.exportMeshToBabylon(mesh);\r\n if (json) {\r\n const blob = new Blob([json], { type: \"application/json\" });\r\n this.downloadBlob(blob);\r\n }\r\n });\r\n }\r\n downloadMeshesBabylonAsync(meshes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const json = yield this.exportMeshesToBabylon(meshes);\r\n if (json) {\r\n const blob = new Blob([json], { type: \"application/json\" });\r\n this.downloadBlob(blob);\r\n }\r\n });\r\n }\r\n loadAllDelayedMaterialsAsync(rootUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let results = [];\r\n if (this._scene && this._scene.metadata && this._scene.metadata.delayedMaterials) {\r\n var delayedMaterials = {};\r\n for (var materialID in this._scene.metadata.delayedMaterials) {\r\n delayedMaterials[materialID] = {\r\n name: this._scene.metadata.delayedMaterials[materialID].name,\r\n file: this._scene.metadata.delayedMaterials[materialID].file\r\n };\r\n }\r\n results = yield this.loadMaterialsAsync(rootUrl, delayedMaterials);\r\n }\r\n return results;\r\n });\r\n }\r\n loadDelayedMaterialsAsync(rootUrl, materialIDs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let results = [];\r\n if (this._scene && this._scene.metadata && this._scene.metadata.delayedMaterials) {\r\n var delayedMaterials = {};\r\n for (var i = 0; i < materialIDs.length; i++) {\r\n if (this._scene.metadata.delayedMaterials.hasOwnProperty(materialIDs[i])) {\r\n delayedMaterials[materialIDs[i]] = {\r\n name: this._scene.metadata.delayedMaterials[materialIDs[i]].name,\r\n file: this._scene.metadata.delayedMaterials[materialIDs[i]].file\r\n };\r\n }\r\n }\r\n results = yield this.loadMaterialsAsync(rootUrl, delayedMaterials);\r\n }\r\n return results;\r\n });\r\n }\r\n loadDelayedMaterialAsync(rootUrl, materialID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene && this._scene.metadata && this._scene.metadata.delayedMaterials) {\r\n var delayedMaterials = {};\r\n if (this._scene.metadata.delayedMaterials.hasOwnProperty(materialID)) {\r\n delayedMaterials[materialID] = {\r\n name: this._scene.metadata.delayedMaterials[materialID].name,\r\n file: this._scene.metadata.delayedMaterials[materialID].file\r\n };\r\n let materials = yield this.loadMaterialsAsync(rootUrl, delayedMaterials);\r\n if (materials.length > 0)\r\n return materials[0];\r\n }\r\n }\r\n return null;\r\n });\r\n }\r\n loadMaterialsAsync(rootUrl, delayedMaterials) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const newMaterials = [];\r\n let promises = [];\r\n for (let materialID in delayedMaterials) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (!material) {\r\n const info = delayedMaterials[materialID];\r\n promises.push(this.loadMaterialInternalAsync(materialID, rootUrl, info.file));\r\n }\r\n else {\r\n newMaterials.push(material);\r\n }\r\n }\r\n const results = yield Promise.all(promises);\r\n for (let i = 0; i < results.length; i++) {\r\n const result = results[i];\r\n const jsonObj = JSON.parse(result);\r\n const material = BABYLON.Material.Parse(jsonObj, this._scene, rootUrl);\r\n if (material) {\r\n Logger.info(\"Waiting for material ready: \" + material.id + \" - \" + material.name);\r\n yield SceneHelper.whenAllMaterialTexturesAreReady(material);\r\n Logger.info(\"Material ready: \" + material.id + \" - \" + material.name);\r\n newMaterials.push(material);\r\n }\r\n }\r\n this.setupShaderMaterialsCameraPosition();\r\n return newMaterials;\r\n });\r\n }\r\n loadMaterialInternalAsync(materialID, rootUrl, fileName) {\r\n Logger.info(\"Loading delayed material: \" + materialID);\r\n if (this._loadingMaterials.hasOwnProperty(materialID))\r\n return this._loadingMaterials[materialID];\r\n let sep = _Misc_StringTools__WEBPACK_IMPORTED_MODULE_2__.StringTools.EndsWith(rootUrl, \"/\") ? \"\" : \"/\";\r\n var url = rootUrl + sep + fileName;\r\n let promise = new Promise((resolve, reject) => {\r\n BABYLON.Tools.LoadFile(url, (data) => {\r\n Logger.info(\"Loaded delayed material: \" + materialID);\r\n resolve(data);\r\n delete this._loadingMaterials[materialID];\r\n }, undefined, undefined, false, (request, exception) => {\r\n reject(exception);\r\n delete this._loadingMaterials[materialID];\r\n });\r\n });\r\n this._loadingMaterials[materialID] = promise;\r\n return promise;\r\n }\r\n showMesh(meshID) {\r\n this.showHideMesh(meshID, true);\r\n }\r\n hideMesh(meshID) {\r\n this.showHideMesh(meshID, false);\r\n }\r\n showHideMesh(meshID, show) {\r\n var showHideWithChildren = (parent, show) => {\r\n parent.isVisible = show;\r\n var children = parent.getChildMeshes();\r\n if (children) {\r\n children.forEach((child) => {\r\n showHideWithChildren(child, show);\r\n });\r\n }\r\n };\r\n var mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n showHideWithChildren(mesh, show);\r\n }\r\n }\r\n changeMaterialColor(material, propertyName, nextColor) {\r\n let mesh = null;\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n let m = this._scene.meshes[i];\r\n if (m.material === material) {\r\n mesh = m;\r\n break;\r\n }\r\n }\r\n // Animation gives problems on PBR materials\r\n //if (mesh) {\r\n // var animation = new BABYLON.Animation(\"colorAnimation\", \"material.\" + propertyName, 60, BABYLON.Animation.ANIMATIONTYPE_COLOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CONSTANT);\r\n // // keys\r\n // var keys = [{\r\n // frame: 0,\r\n // value: material[propertyName]\r\n // }, {\r\n // frame: 60,\r\n // value: nextColor\r\n // }];\r\n // animation.setKeys(keys);\r\n // mesh.animations.push(animation);\r\n // var animatable = this._scene.beginAnimation(mesh, 0, 60, false, 3);\r\n // // Remove animations\r\n // animatable.onAnimationEnd = function () {\r\n // if (mesh) {\r\n // for (let i = 0; i < mesh.animations.length; i++) {\r\n // var anim = mesh.animations[i];\r\n // if (anim === animation)\r\n // mesh.animations.splice(i--, 1);\r\n // }\r\n // }\r\n // };\r\n //} else {\r\n // material[propertyName] = nextColor;\r\n //}\r\n material[propertyName] = nextColor;\r\n }\r\n applyMaterialByName(name, mesh) {\r\n if (this._scene) {\r\n let material = this._scene.getMaterialByName(name);\r\n if (material)\r\n this.applyMaterial(material, mesh);\r\n }\r\n }\r\n applyMaterial(material, mesh) {\r\n var applyWithChildren = (parent) => {\r\n if (parent.subMeshes && parent.subMeshes.length > 0 && parent.material && parent.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < parent.subMeshes.length; i++) {\r\n let subMesh = parent.subMeshes[i];\r\n this.applyMaterialToSubMesh(material, parent, subMesh);\r\n }\r\n }\r\n else {\r\n parent.material = material;\r\n }\r\n var children = parent.getChildMeshes();\r\n if (children) {\r\n children.forEach((child) => {\r\n applyWithChildren(child);\r\n });\r\n }\r\n };\r\n if (mesh) {\r\n applyWithChildren(mesh);\r\n }\r\n }\r\n applyMaterialToSubMeshByName(name, mesh, subMesh) {\r\n var material = this._scene.getMaterialByName(name);\r\n if (material)\r\n this.applyMaterialToSubMesh(material, mesh, subMesh);\r\n }\r\n applyMaterialToSubMesh(material, mesh, subMesh) {\r\n const idx = subMesh.materialIndex;\r\n const m = mesh || subMesh.getMesh();\r\n if (m.material instanceof BABYLON.MultiMaterial &&\r\n idx >= 0 && idx < m.material.subMaterials.length) {\r\n m.material.subMaterials[idx] = material;\r\n }\r\n }\r\n getSubMeshMaterial(mesh, subMesh) {\r\n const idx = subMesh.materialIndex;\r\n const m = mesh || subMesh.getMesh();\r\n if (m.material instanceof BABYLON.MultiMaterial &&\r\n idx >= 0 && idx < m.material.subMaterials.length) {\r\n return m.material.subMaterials[idx];\r\n }\r\n return null;\r\n }\r\n prefetchTexturesFormMeshAsync(mesh) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (mesh.material)\r\n yield this.prefetchTexturesForMaterialAsync(mesh.material);\r\n var children = mesh.getChildMeshes();\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n if (child.material)\r\n yield this.prefetchTexturesForMaterialAsync(child.material);\r\n }\r\n });\r\n }\r\n prefetchTexturesForMaterialAsync(material) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (material) {\r\n var textures = this.getTexturesForMaterial(material);\r\n for (let i = 0; i < textures.length; i++) {\r\n yield SceneHelper.whenTextureIsReadyAsync(textures[i]);\r\n }\r\n }\r\n });\r\n }\r\n checkDelayState(mesh) {\r\n if (mesh instanceof BABYLON.Mesh) {\r\n mesh._checkDelayState();\r\n }\r\n var children = mesh.getChildMeshes();\r\n children.forEach(child => this.checkDelayState(child));\r\n }\r\n // Crea una nuova mesh data da una minima espansione di quella passata in input\r\n // in modo che ne costituisca un rivestimento\r\n createEnvelopeMesh(mesh) {\r\n let delta = 0.01;\r\n const boundingVectors = mesh.getHierarchyBoundingVectors();\r\n if (boundingVectors) {\r\n const min = boundingVectors.min;\r\n const max = boundingVectors.max;\r\n const boundingInfo = new BABYLON.BoundingInfo(min, max);\r\n const boundingSphere = boundingInfo.boundingSphere;\r\n const radius = boundingSphere.radius;\r\n delta = radius * 0.0050;\r\n }\r\n const newMesh = this.cloneMesh(mesh.id, true, true);\r\n if (newMesh && newMesh instanceof BABYLON.Mesh) {\r\n this.expandMesh(newMesh, delta);\r\n }\r\n return newMesh;\r\n }\r\n expandMesh(mesh, delta) {\r\n const expander = new _MeshExpander_MeshExpander__WEBPACK_IMPORTED_MODULE_3__.MeshExpander();\r\n if (mesh && mesh instanceof BABYLON.Mesh) {\r\n expander.expandMesh(mesh, delta);\r\n const children = mesh.getChildMeshes();\r\n for (const child of children) {\r\n if (child instanceof BABYLON.Mesh) {\r\n expander.expandMesh(child, delta);\r\n }\r\n }\r\n }\r\n }\r\n cloneMesh(id, duplicateGeometry = false, updatableGeometry = false) {\r\n let newMesh = null;\r\n if (this._scene) {\r\n const mesh = this._scene.getMeshByID(id);\r\n if (mesh) {\r\n const name = this.getNextIncrementalName(mesh.name);\r\n newMesh = mesh.clone(name, mesh.parent);\r\n if (newMesh) {\r\n newMesh.id = Zakeke.generateUUID();\r\n if (duplicateGeometry) {\r\n this.duplicateGeometry(mesh, newMesh, updatableGeometry);\r\n }\r\n const children = newMesh.getChildMeshes();\r\n for (const child of children) {\r\n const originalChild = this._scene.getMeshByID(child.id);\r\n child.id = Zakeke.generateUUID();\r\n const parentName = child.parent ? child.parent.name : null;\r\n if (parentName) {\r\n // Clean the sub folder name that use babylon\r\n const index = child.name.indexOf(parentName + \".\") + parentName.length + 1;\r\n child.name = child.name.substr(index);\r\n }\r\n if (originalChild && duplicateGeometry) {\r\n this.duplicateGeometry(originalChild, child, updatableGeometry);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return newMesh;\r\n }\r\n duplicateGeometry(originalMesh, newMesh, updatable = false) {\r\n if (originalMesh instanceof BABYLON.Mesh && newMesh instanceof BABYLON.Mesh) {\r\n const vertexData = BABYLON.VertexData.ExtractFromMesh(originalMesh, true, true);\r\n const geometry = new BABYLON.Geometry(Zakeke.generateUUID(), newMesh.getScene(), vertexData, updatable, newMesh);\r\n return geometry;\r\n }\r\n return null;\r\n }\r\n // Material metadata\r\n getSceneMaterialMetadata(materialID) {\r\n // i metadata dei materiali non vengono serializzati in Babylon JS,\r\n // sono quindi costretto a salvarli nei metadati della scena.\r\n if (this._scene && this._scene.metadata && this._scene.metadata.materialsMetadata &&\r\n this._scene.metadata.materialsMetadata.hasOwnProperty(materialID))\r\n return this._scene.metadata.materialsMetadata[materialID];\r\n return null;\r\n }\r\n getOrCreateSceneMaterialMetadata(materialID) {\r\n let metadata = this.getSceneMaterialMetadata(materialID);\r\n if (!metadata) {\r\n metadata = {};\r\n if (!this._scene.metadata)\r\n this._scene.metadata = {};\r\n if (!this._scene.metadata.materialsMetadata)\r\n this._scene.metadata.materialsMetadata = {};\r\n this._scene.metadata.materialsMetadata[materialID] = metadata;\r\n }\r\n return metadata;\r\n }\r\n removeSceneMaterialMetadata(materialID) {\r\n if (this._scene.metadata && this._scene.metadata.materialsMetadata && this._scene.metadata.materialsMetadata.hasOwnProperty(materialID)) {\r\n delete this._scene.metadata.materialsMetadata[materialID];\r\n }\r\n }\r\n offloadAllUnusedMaterials() {\r\n const materials = this.getAllUnusedMaterials();\r\n materials.forEach(m => this.offloadMaterial(m.id));\r\n }\r\n // Salva la serializzazione del materiale e lo rimuove dalla scena (eliminando anche le relative texture).\r\n // Lo scopo è quello di liberare la memoria occupata dalle texture\r\n offloadMaterial(materialID) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material && material.id !== \"default material\") {\r\n // Verifico che il material non sia assegnato ad alcuna mesh\r\n const meshes = this.getMeshesUsingMaterial(materialID);\r\n if (meshes.length === 0) {\r\n Logger.info(\"Offloading material: \" + material.id + \" - \" + material.name);\r\n /* le texture verranno eliminate contestulmente alla dispose del materiale\r\n const textures = material.getActiveTextures();\r\n const removableTextures: BABYLON.BaseTexture[] = [];\r\n textures.forEach(t => {\r\n const usingTextures: BABYLON.Material[] = this.getMaterialsUsingTexture(t);\r\n if (usingTextures.length === 1 && usingTextures[0].id === materialID)\r\n removableTextures.push(t);\r\n });\r\n */\r\n // Serializzo il materiale e lo salvo nella scena\r\n if (!this._scene.metadata)\r\n this._scene.metadata = {};\r\n if (!this._scene.metadata.offloadedMaterials)\r\n this._scene.metadata.offloadedMaterials = {};\r\n this._scene.metadata.offloadedMaterials[materialID] = this.getOffloadedMaterialInfo(material);\r\n // Dispose del materiale e delle relative texture\r\n Logger.info(\"Disposing material: \" + materialID);\r\n material.dispose(false, true);\r\n /*\r\n for (let i = 0; i < removableTextures.length; i++) {\r\n const removableTexture = removableTextures[i];\r\n Logger.info(\"Disposing texture: \", removableTexture.name);\r\n removableTexture.dispose();\r\n }\r\n */\r\n }\r\n }\r\n }\r\n getOffloadedMaterialInfo(material) {\r\n return { name: material.name, data: material.serialize() };\r\n }\r\n // Il materiale restituito dalla versione sincrona potrebbe non essere pronto per l'applicazione alla mesh\r\n loadAllOffloadedMaterials(rootUrl) {\r\n let results = [];\r\n if (this._scene && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n results = this.loadOffloadedMaterials(rootUrl, this._scene.metadata.offloadedMaterials);\r\n }\r\n return results;\r\n }\r\n loadOffloadedMaterialsByIDs(rootUrl, materialIDs) {\r\n let results = [];\r\n if (this._scene && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n const offloadedMaterials = {};\r\n for (let i = 0; i < materialIDs.length; i++) {\r\n if (this._scene.metadata.offloadedMaterials.hasOwnProperty(materialIDs[i])) {\r\n offloadedMaterials[materialIDs[i]] = {\r\n name: this._scene.metadata.offloadedMaterials[materialIDs[i]].name,\r\n data: this._scene.metadata.offloadedMaterials[materialIDs[i]].data\r\n };\r\n }\r\n }\r\n results = this.loadOffloadedMaterials(rootUrl, offloadedMaterials);\r\n }\r\n return results;\r\n }\r\n loadOffloadedMaterial(rootUrl, materialID) {\r\n if (this._scene && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n const offloadedMaterials = {};\r\n if (this._scene.metadata.offloadedMaterials.hasOwnProperty(materialID)) {\r\n offloadedMaterials[materialID] = {\r\n name: this._scene.metadata.offloadedMaterials[materialID].name,\r\n data: this._scene.metadata.offloadedMaterials[materialID].data\r\n };\r\n const materials = this.loadOffloadedMaterials(rootUrl, offloadedMaterials);\r\n if (materials.length > 0)\r\n return materials[0];\r\n }\r\n }\r\n return null;\r\n }\r\n loadOffloadedMaterials(rootUrl, offloadedMaterials) {\r\n const newMaterials = [];\r\n for (const materialID in offloadedMaterials) {\r\n const info = offloadedMaterials[materialID];\r\n const material = this.loadOffloadedMaterialInternal(materialID, info.name, rootUrl, info.data);\r\n if (material)\r\n newMaterials.push(material);\r\n }\r\n return newMaterials;\r\n }\r\n // Il nome viene passato solo ai fini del log\r\n loadOffloadedMaterialInternal(materialID, name, rootUrl, data) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material)\r\n return material;\r\n const namePart = name ? ` - ${name}` : '';\r\n Logger.info(\"Loading offloaded material: \" + materialID + namePart);\r\n return BABYLON.Material.Parse(data, this._scene, rootUrl);\r\n }\r\n // Nella versione asincrona si aspetta che tutte le texture del materiale caricato siano pronte\r\n loadAllOffloadedMaterialsAsync(rootUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let results = [];\r\n if (this._scene && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n results = yield this.loadOffloadedMaterialsAsync(rootUrl, this._scene.metadata.offloadedMaterials);\r\n }\r\n return results;\r\n });\r\n }\r\n loadOffloadedMaterialsByIDsAsync(rootUrl, materialIDs) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let results = [];\r\n if (this._scene && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n const offloadedMaterials = {};\r\n for (let i = 0; i < materialIDs.length; i++) {\r\n if (this._scene.metadata.offloadedMaterials.hasOwnProperty(materialIDs[i])) {\r\n offloadedMaterials[materialIDs[i]] = {\r\n name: this._scene.metadata.offloadedMaterials[materialIDs[i]].name,\r\n data: this._scene.metadata.offloadedMaterials[materialIDs[i]].data\r\n };\r\n }\r\n }\r\n results = yield this.loadOffloadedMaterialsAsync(rootUrl, offloadedMaterials);\r\n }\r\n return results;\r\n });\r\n }\r\n loadOffloadedMaterialAsync(rootUrl, materialID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n const offloadedMaterials = {};\r\n if (this._scene.metadata.offloadedMaterials.hasOwnProperty(materialID)) {\r\n offloadedMaterials[materialID] = {\r\n name: this._scene.metadata.offloadedMaterials[materialID].name,\r\n data: this._scene.metadata.offloadedMaterials[materialID].data\r\n };\r\n const materials = yield this.loadOffloadedMaterialsAsync(rootUrl, offloadedMaterials);\r\n if (materials.length > 0)\r\n return materials[0];\r\n }\r\n }\r\n return null;\r\n });\r\n }\r\n loadOffloadedMaterialsAsync(rootUrl, offloadedMaterials) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const newMaterials = [];\r\n const promises = [];\r\n for (const materialID in offloadedMaterials) {\r\n const info = offloadedMaterials[materialID];\r\n promises.push(this.loadOffloadedMaterialInternalAsync(materialID, info.name, rootUrl, info.data));\r\n }\r\n const results = yield Promise.all(promises);\r\n results.forEach(result => {\r\n if (result)\r\n newMaterials.push(result);\r\n });\r\n return newMaterials;\r\n });\r\n }\r\n // Il nome viene passato solo ai fini del log\r\n loadOffloadedMaterialInternalAsync(materialID, name, rootUrl, data) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material)\r\n return material;\r\n const namePart = name ? ` - ${name}` : '';\r\n Logger.info(\"Loading offloaded material: \" + materialID + namePart);\r\n const newMaterial = BABYLON.Material.Parse(data, this._scene, rootUrl);\r\n if (newMaterial) {\r\n Logger.info(\"Waiting for material ready: \" + materialID + namePart);\r\n yield SceneHelper.whenAllMaterialTexturesAreReady(newMaterial);\r\n Logger.info(\"Material ready: \" + materialID + namePart);\r\n }\r\n else {\r\n Logger.info(\"No material was created from offloaded material: \" + materialID + namePart);\r\n }\r\n return newMaterial;\r\n });\r\n }\r\n loadTextureFiles(rootUrl, textureUrls) {\r\n if (rootUrl) {\r\n for (let i = 0; i < textureUrls.length; i++) {\r\n const url = textureUrls[i];\r\n const isAbsolute = /^(?:\\/|[a-z]+:\\/\\/)/.test(url);\r\n let absoluteUrl = url;\r\n if (!isAbsolute)\r\n absoluteUrl = rootUrl + url;\r\n const lastDot = absoluteUrl.lastIndexOf(\".\");\r\n const extension = lastDot > -1 ? absoluteUrl.substring(lastDot).toLowerCase() : \"\";\r\n const isDDS = (extension === \".dds\");\r\n const isEnv = (extension === \".env\");\r\n const isPng = (extension === \".png\");\r\n const isJpg = (extension === \".jpg\");\r\n const isHDR = (extension === \".hdr\");\r\n if (isDDS || isEnv || isHDR) {\r\n BABYLON.Tools.LoadFile(absoluteUrl, () => { });\r\n }\r\n else if (isPng || isJpg) {\r\n BABYLON.Tools.LoadImage(absoluteUrl, (img) => { }, function () { }, null);\r\n }\r\n }\r\n }\r\n }\r\n // Recupera il materiale specificato, eventualmente caricandolo da remoto (delayed) oppure dalla cache (offloaded)\r\n getOrLoadMaterialAsync(materialID, rootUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let material = this._scene.getMaterialByID(materialID);\r\n if (!material && this._scene.metadata) {\r\n if (this._scene.metadata.offloadedMaterials && this._scene.metadata.offloadedMaterials.hasOwnProperty(materialID)) {\r\n material = yield this.loadOffloadedMaterialAsync(rootUrl, materialID);\r\n }\r\n else if (this._scene.metadata.delayedMaterials && this._scene.metadata.delayedMaterials.hasOwnProperty(materialID)) {\r\n material = yield this.loadDelayedMaterialAsync(rootUrl, materialID);\r\n }\r\n }\r\n return material;\r\n });\r\n }\r\n getOrCreateDummyMaterial() {\r\n let material = this._scene.getMaterialByID(this._dummyMaterialID);\r\n if (!material) {\r\n material = new BABYLON.StandardMaterial(\"Dummy Material\", this._scene);\r\n material.id = this._dummyMaterialID;\r\n material.metadata = { isRealMaterial: false };\r\n }\r\n return material;\r\n }\r\n isDummyMaterial(material) {\r\n return material.id === this._dummyMaterialID;\r\n }\r\n meshHasDummyMaterial(mesh, recursive) {\r\n var _a;\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && mesh.material && mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < mesh.subMeshes.length; i++) {\r\n const subMesh = mesh.subMeshes[i];\r\n const idx = subMesh.materialIndex;\r\n if (mesh.material.subMaterials[idx] && ((_a = mesh.material.subMaterials[idx]) === null || _a === void 0 ? void 0 : _a.id) === this._dummyMaterialID)\r\n return true;\r\n }\r\n }\r\n else {\r\n if (mesh.material && mesh.material.id === this._dummyMaterialID)\r\n return true;\r\n }\r\n if (recursive) {\r\n for (let i = 0; i < mesh.getChildMeshes().length; i++) {\r\n if (this.meshHasDummyMaterial(mesh.getChildMeshes()[i], true))\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n getMeshDelayedMaterialIDs(mesh) {\r\n var _a;\r\n const materialIDs = [];\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && mesh.material && mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < mesh.subMeshes.length; i++) {\r\n const subMesh = mesh.subMeshes[i];\r\n const idx = subMesh.materialIndex;\r\n if (mesh.material.subMaterials[idx] && ((_a = mesh.material.subMaterials[idx]) === null || _a === void 0 ? void 0 : _a.id) === this._dummyMaterialID) {\r\n const key = `${mesh.id}_${idx}`;\r\n if (this._scene.metadata && this._scene.metadata.originalMeshMaterials.hasOwnProperty(key)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[key];\r\n if (this._scene.metadata.delayedMaterials.hasOwnProperty(originalMaterialID) &&\r\n materialIDs.indexOf(originalMaterialID) === -1) {\r\n materialIDs.push(originalMaterialID);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (mesh.material && mesh.material.id === this._dummyMaterialID &&\r\n this._scene.metadata && this._scene.metadata.delayedMaterials && this._scene.metadata.originalMeshMaterials.hasOwnProperty(mesh.id)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[mesh.id];\r\n if (this._scene.metadata.delayedMaterials.hasOwnProperty(originalMaterialID) &&\r\n materialIDs.indexOf(originalMaterialID) === -1) {\r\n materialIDs.push(originalMaterialID);\r\n }\r\n }\r\n }\r\n mesh.getChildMeshes().forEach(child => Array.prototype.push.apply(materialIDs, this.getMeshDelayedMaterialIDs(child)));\r\n return materialIDs;\r\n }\r\n getMeshOffloadedMaterialIDs(mesh) {\r\n var _a;\r\n const materialIDs = [];\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && mesh.material && mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < mesh.subMeshes.length; i++) {\r\n const subMesh = mesh.subMeshes[i];\r\n const idx = subMesh.materialIndex;\r\n if (mesh.material.subMaterials[idx] && ((_a = mesh.material.subMaterials[idx]) === null || _a === void 0 ? void 0 : _a.id) === this._dummyMaterialID) {\r\n const key = `${mesh.id}_${idx}`;\r\n if (this._scene.metadata && this._scene.metadata.originalMeshMaterials.hasOwnProperty(key)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[key];\r\n if (this._scene.metadata.offloadedMaterials.hasOwnProperty(originalMaterialID) &&\r\n materialIDs.indexOf(originalMaterialID) === -1) {\r\n materialIDs.push(originalMaterialID);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (mesh.material && mesh.material.id === this._dummyMaterialID &&\r\n this._scene.metadata && this._scene.metadata.offloadedMaterials && this._scene.metadata.originalMeshMaterials.hasOwnProperty(mesh.id)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[mesh.id];\r\n if (this._scene.metadata.offloadedMaterials.hasOwnProperty(originalMaterialID) &&\r\n materialIDs.indexOf(originalMaterialID) === -1) {\r\n materialIDs.push(originalMaterialID);\r\n }\r\n }\r\n }\r\n mesh.getChildMeshes().forEach(child => Array.prototype.push.apply(materialIDs, this.getMeshOffloadedMaterialIDs(child)));\r\n return materialIDs;\r\n }\r\n setDummyMaterialToInvisibleMeshes() {\r\n const meshes = this.getInvisibleMeshes();\r\n meshes.forEach(mesh => {\r\n this.setMeshDummyMaterial(mesh, false);\r\n });\r\n }\r\n setMeshDummyMaterial(mesh, recursive) {\r\n if (!this._scene.metadata)\r\n this._scene.metadata = {};\r\n if (!this._scene.metadata.originalMeshMaterials)\r\n this._scene.metadata.originalMeshMaterials = {};\r\n const dummyMaterial = this.getOrCreateDummyMaterial();\r\n if (mesh.material) {\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < mesh.subMeshes.length; i++) {\r\n const subMesh = mesh.subMeshes[i];\r\n const idx = subMesh.materialIndex;\r\n const subMeshMaterial = mesh.material.subMaterials[idx];\r\n if (subMeshMaterial &&\r\n !this.isDummyMaterial(subMeshMaterial)) {\r\n const key = `${mesh.id}_${idx}`;\r\n this._scene.metadata.originalMeshMaterials[key] = subMeshMaterial.id;\r\n mesh.material.subMaterials[idx] = dummyMaterial;\r\n }\r\n }\r\n }\r\n else {\r\n if (mesh.material && !this.isDummyMaterial(mesh.material)) {\r\n this._scene.metadata.originalMeshMaterials[mesh.id] = mesh.material.id;\r\n mesh.material = dummyMaterial;\r\n }\r\n }\r\n }\r\n if (recursive) {\r\n mesh.getChildMeshes().forEach(child => this.setMeshDummyMaterial(child, true));\r\n }\r\n }\r\n // Il metodo è sincrono perché mi aspetto che tutti i materiali originali siano già presenti nella scena\r\n unsetAllDummyMaterials() {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n this.unsetMeshDummyMaterial(this._scene.meshes[i], false);\r\n }\r\n }\r\n // Il metodo è asincrono perché ci sia aspetta che non tutti i materiali siano presenti nella scena, in qual caso verranno caricati\r\n unsetAllDummyMaterialsAsync(rootUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n yield this.unsetMeshDummyMaterialAsync(this._scene.meshes[i], rootUrl, false);\r\n }\r\n });\r\n }\r\n // Il metodo è sincrono perché mi aspetto che i materiali originali siano tutti gà presenti nella scena\r\n unsetMeshDummyMaterial(mesh, recursive) {\r\n var _a;\r\n if (this._scene.metadata && this._scene.metadata.originalMeshMaterials) {\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && mesh.material && mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < mesh.subMeshes.length; i++) {\r\n const subMesh = mesh.subMeshes[i];\r\n const idx = subMesh.materialIndex;\r\n if (mesh.material.subMaterials[idx] && ((_a = mesh.material.subMaterials[idx]) === null || _a === void 0 ? void 0 : _a.id) === this._dummyMaterialID) {\r\n const key = `${mesh.id}_${idx}`;\r\n if (this._scene.metadata.originalMeshMaterials.hasOwnProperty(key)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[key];\r\n const originalMaterial = this._scene.getMaterialByID(originalMaterialID);\r\n if (originalMaterial) {\r\n mesh.material.subMaterials[idx] = originalMaterial;\r\n delete this._scene.metadata.originalMeshMaterials[key];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (mesh.material && mesh.material.id === this._dummyMaterialID &&\r\n this._scene.metadata && this._scene.metadata.originalMeshMaterials.hasOwnProperty(mesh.id)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[mesh.id];\r\n const originalMaterial = this._scene.getMaterialByID(originalMaterialID);\r\n if (originalMaterial) {\r\n mesh.material = originalMaterial;\r\n delete this._scene.metadata.originalMeshMaterials[mesh.id];\r\n }\r\n }\r\n }\r\n if (recursive) {\r\n mesh.getChildMeshes().forEach(child => this.unsetMeshDummyMaterial(child, true));\r\n }\r\n }\r\n }\r\n // Il metodo è asincrono perché ci si aspetta che non tutti i materiali siano presenti sulla scena, nel qual caso verranno caricati\r\n unsetMeshDummyMaterialAsync(mesh, rootUrl, recursive) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene.metadata && this._scene.metadata.originalMeshMaterials) {\r\n if (mesh.subMeshes && mesh.subMeshes.length > 0 && mesh.material && mesh.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < mesh.subMeshes.length; i++) {\r\n const subMesh = mesh.subMeshes[i];\r\n const idx = subMesh.materialIndex;\r\n if (mesh.material.subMaterials[idx] && ((_a = mesh.material.subMaterials[idx]) === null || _a === void 0 ? void 0 : _a.id) === this._dummyMaterialID) {\r\n const key = `${mesh.id}_${idx}`;\r\n if (this._scene.metadata.originalMeshMaterials.hasOwnProperty(key)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[key];\r\n const originalMaterial = yield this.getOrLoadMaterialAsync(originalMaterialID, rootUrl);\r\n mesh.material.subMaterials[idx] = originalMaterial;\r\n delete this._scene.metadata.originalMeshMaterials[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (mesh.material && mesh.material.id === this._dummyMaterialID &&\r\n this._scene.metadata && this._scene.metadata.originalMeshMaterials.hasOwnProperty(mesh.id)) {\r\n const originalMaterialID = this._scene.metadata.originalMeshMaterials[mesh.id];\r\n const originalMaterial = yield this.getOrLoadMaterialAsync(originalMaterialID, rootUrl);\r\n mesh.material = originalMaterial;\r\n delete this._scene.metadata.originalMeshMaterials[mesh.id];\r\n }\r\n }\r\n if (recursive) {\r\n const children = mesh.getChildMeshes();\r\n for (let i = 0; i < children.length; i++) {\r\n yield this.unsetMeshDummyMaterialAsync(children[i], rootUrl, true);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n reloadAllLoadingErrorTexturesAsync(rootUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // ricarico sequenzialmente tutte le texture che hanno avuto un problema in fase di caricamento\r\n for (const texture of this._scene.textures)\r\n yield this.reloadLoadingErrorTextureAsync(rootUrl, texture);\r\n });\r\n }\r\n reloadMaterialLoadingErrorTexturesAsync(rootUrl, material) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n for (const texture of material.getActiveTextures())\r\n yield this.reloadLoadingErrorTextureAsync(rootUrl, texture);\r\n });\r\n }\r\n reloadLoadingErrorTextureAsync(rootUrl, texture) {\r\n if (texture instanceof BABYLON.Texture && texture.url) {\r\n const internalTexture = texture.getInternalTexture();\r\n if (texture.loadingError || (internalTexture && internalTexture.loadingError)) {\r\n const originalUrl = texture.url;\r\n const isAbsolute = /^(?:\\/|[a-z]+:\\/\\/)/.test(texture.url);\r\n var absoluteUrl = texture.url;\r\n if (!isAbsolute)\r\n absoluteUrl = rootUrl + texture.url;\r\n return new Promise((resolve, reject) => {\r\n texture.updateURL(absoluteUrl, null, () => {\r\n texture.url = originalUrl;\r\n resolve();\r\n }, () => {\r\n texture.url = originalUrl;\r\n reject();\r\n });\r\n });\r\n }\r\n }\r\n return Promise.resolve();\r\n }\r\n isTextureLoadingError(texture) {\r\n if (texture.loadingError)\r\n return true;\r\n const internalTexture = texture.getInternalTexture();\r\n return internalTexture !== null && internalTexture.loadingError;\r\n }\r\n materialHasLoadingErrorTextues(material) {\r\n return material.getActiveTextures().some(t => this.isTextureLoadingError(t));\r\n }\r\n // A dynamic texture is a procedural texture or a texture created from a Blob\r\n getMaterialDynamicTextures(material) {\r\n const textures = material.getActiveTextures();\r\n return textures.filter(t => t instanceof BABYLON.ProceduralTexture ||\r\n (t instanceof BABYLON.Texture && t.url && t.url.indexOf(\"blob:\") !== -1));\r\n }\r\n exportTextureToBase64Async(babylonTexture, mimeType = \"image/png\", invertY = false) {\r\n return Promise.resolve().then(() => __awaiter(this, void 0, void 0, function* () {\r\n const pixels = yield this.getPixelsFromTexture(babylonTexture);\r\n if (!pixels) {\r\n return null;\r\n }\r\n const size = babylonTexture.getSize();\r\n // Preserve texture mime type if defined\r\n if (babylonTexture.mimeType) {\r\n switch (babylonTexture.mimeType) {\r\n case \"image/jpeg\":\r\n mimeType = \"image/jpeg\";\r\n break;\r\n case \"image/png\":\r\n mimeType = \"image/png\";\r\n break;\r\n }\r\n }\r\n return this.createBase64FromCanvasAsync(pixels, size.width, size.height, mimeType, invertY);\r\n }));\r\n }\r\n createBase64FromCanvasAsync(buffer, width, height, mimeType, invertY = false) {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n const textureType = BABYLON.Constants.TEXTURETYPE_UNSIGNED_INT;\r\n const hostingScene = this._scene;\r\n const engine = hostingScene.getEngine();\r\n // Create a temporary texture with the texture buffer data\r\n const tempTexture = engine.createRawTexture(buffer, width, height, BABYLON.Constants.TEXTUREFORMAT_RGBA, false, invertY, BABYLON.Texture.NEAREST_SAMPLINGMODE, null, textureType);\r\n yield BABYLON.TextureTools.ApplyPostProcess(\"pass\", tempTexture, hostingScene, textureType, BABYLON.Constants.TEXTURE_NEAREST_SAMPLINGMODE, BABYLON.Constants.TEXTUREFORMAT_RGBA);\r\n const data = yield engine._readTexturePixels(tempTexture, width, height);\r\n const base64 = yield BABYLON.Tools.DumpDataAsync(width, height, data, mimeType, undefined, true, false);\r\n resolve(base64);\r\n }));\r\n }\r\n getPixelsFromTexture(babylonTexture) {\r\n const pixels = babylonTexture.textureType === BABYLON.Constants.TEXTURETYPE_UNSIGNED_INT ? babylonTexture.readPixels() : babylonTexture.readPixels();\r\n return pixels;\r\n }\r\n comparePBRMaterials(mat1, mat2) {\r\n if ((mat1.albedoColor && !mat2.albedoColor) ||\r\n (!mat1.albedoColor && mat2.albedoColor) ||\r\n (mat1.albedoColor && mat2.albedoColor && !mat1.albedoColor.equals(mat2.albedoColor)))\r\n console.log(\"albedoColor\");\r\n if (mat1.allowShaderHotSwapping !== mat2.allowShaderHotSwapping)\r\n console.log(\"allowShaderHotSwapping\");\r\n if (mat1.alphaCutOff !== mat2.alphaCutOff)\r\n console.log(\"alphaCutOff\");\r\n if ((mat1.ambientColor && !mat2.ambientColor) ||\r\n (!mat1.ambientColor && mat2.ambientColor) ||\r\n (mat1.ambientColor && mat2.ambientColor && !mat1.ambientColor.equals(mat2.ambientColor)))\r\n console.log(\"ambientColor\");\r\n if (mat1.ambientTextureStrength !== mat2.ambientTextureStrength)\r\n console.log(\"ambientTextureStrength\");\r\n this.compareAnisotropy(mat1.anisotropy, mat2.anisotropy);\r\n this.compareBRDF(mat1.brdf, mat2.brdf);\r\n this.compareClearCoat(mat1.clearCoat, mat2.clearCoat);\r\n if (mat1.depthFunction !== mat2.depthFunction)\r\n console.log(\"depthFunction\");\r\n this.compareDetailMap(mat1.detailMap, mat2.detailMap);\r\n if (mat1.directIntensity !== mat2.directIntensity)\r\n console.log(\"directIntensity\");\r\n if (mat1.disableBumpMap !== mat2.disableBumpMap)\r\n console.log(\"disableBumpMap\");\r\n if (mat1.disableColorWrite !== mat2.disableColorWrite)\r\n console.log(\"disableColorWrite\");\r\n if (mat1.disableDepthWrite !== mat2.disableDepthWrite)\r\n console.log(\"disableDepthWrite\");\r\n if (mat1.disableLighting !== mat2.disableLighting)\r\n console.log(\"disableLighting\");\r\n if ((mat1.emissiveColor && !mat2.emissiveColor) ||\r\n (!mat1.emissiveColor && mat2.emissiveColor) ||\r\n (mat1.emissiveColor && mat2.emissiveColor && !mat1.emissiveColor.equals(mat2.emissiveColor)))\r\n console.log(\"emissiveColor\");\r\n if (mat1.emissiveIntensity !== mat2.emissiveIntensity)\r\n console.log(\"emissiveIntensity\");\r\n if (mat1.enableSpecularAntiAliasing !== mat2.enableSpecularAntiAliasing)\r\n console.log(\"enableSpecularAntiAliasing\");\r\n if (mat1.environmentIntensity !== mat2.environmentIntensity)\r\n console.log(\"environmentIntensity\");\r\n if (mat1.forceAlphaTest !== mat2.forceAlphaTest)\r\n console.log(\"forceAlphaTest\");\r\n if (mat1.forceDepthWrite !== mat2.forceDepthWrite)\r\n console.log(\"forceDepthWrite\");\r\n if (mat1.forceIrradianceInFragment !== mat2.forceIrradianceInFragment)\r\n console.log(\"forceIrradianceInFragment\");\r\n if (mat1.forceNormalForward !== mat2.forceNormalForward)\r\n console.log(\"forceNormalForward\");\r\n if (mat1.invertNormalMapX !== mat2.invertNormalMapX)\r\n console.log(\"invertNormalMapX\");\r\n if (mat1.invertNormalMapY !== mat2.invertNormalMapY)\r\n console.log(\"invertNormalMapY\");\r\n if (mat1.maxSimultaneousLights !== mat2.maxSimultaneousLights)\r\n console.log(\"maxSimultaneousLights\");\r\n if (mat1.metallic !== mat2.metallic)\r\n console.log(\"metallic\");\r\n if (mat1.metallicF0Factor !== mat2.metallicF0Factor)\r\n console.log(\"metallicF0Factor\");\r\n if ((mat1.metallicReflectanceColor && !mat2.metallicReflectanceColor) ||\r\n (!mat1.metallicReflectanceColor && mat2.metallicReflectanceColor) ||\r\n (mat1.metallicReflectanceColor && mat2.metallicReflectanceColor && !mat1.metallicReflectanceColor.equals(mat2.metallicReflectanceColor)))\r\n console.log(\"metallicReflectanceColor\");\r\n if (mat1.microSurface !== mat2.microSurface)\r\n console.log(\"microSurface\");\r\n if (mat1.parallaxScaleBias !== mat2.parallaxScaleBias)\r\n console.log(\"parallaxScaleBias\");\r\n if (mat1.pointSize !== mat2.pointSize)\r\n console.log(\"pointSize\");\r\n this.comparePrePassConfiguration(mat1.prePassConfiguration, mat2.prePassConfiguration);\r\n if ((mat1.reflectionColor && !mat2.reflectionColor) ||\r\n (!mat1.reflectionColor && mat2.reflectionColor) ||\r\n (mat1.reflectionColor && mat2.reflectionColor && !mat1.reflectionColor.equals(mat2.reflectionColor)))\r\n console.log(\"reflectionColor\");\r\n if ((mat1.reflectivityColor && !mat2.reflectivityColor) ||\r\n (!mat1.reflectivityColor && mat2.reflectivityColor) ||\r\n (mat1.reflectivityColor && mat2.reflectivityColor && !mat1.reflectivityColor.equals(mat2.reflectivityColor)))\r\n console.log(\"reflectivityColor\");\r\n if (mat1.roughness !== mat2.roughness)\r\n console.log(\"roughness\");\r\n if (mat1.separateCullingPass !== mat2.separateCullingPass)\r\n console.log(\"separateCullingPass\");\r\n this.compareSheen(mat1.sheen, mat2.sheen);\r\n if (mat1.sideOrientation !== mat2.sideOrientation)\r\n console.log(\"sideOrientation\");\r\n if (mat1.specularIntensity !== mat2.specularIntensity)\r\n console.log(\"specularIntensity\");\r\n this.compareSubSurface(mat1.subSurface, mat2.subSurface);\r\n if (mat1.twoSidedLighting !== mat2.twoSidedLighting)\r\n console.log(\"twoSidedLighting\");\r\n if (mat1.unlit !== mat2.unlit)\r\n console.log(\"unlit\");\r\n if (mat1.useAlphaFresnel !== mat2.useAlphaFresnel)\r\n console.log(\"useAlphaFresnel\");\r\n if (mat1.useAlphaFromAlbedoTexture !== mat2.useAlphaFromAlbedoTexture)\r\n console.log(\"useAlphaFromAlbedoTexture\");\r\n if (mat1.useAmbientInGrayScale !== mat2.useAmbientInGrayScale)\r\n console.log(\"useAmbientInGrayScale\");\r\n if (mat1.useAmbientOcclusionFromMetallicTextureRed !== mat2.useAmbientOcclusionFromMetallicTextureRed)\r\n console.log(\"useAmbientOcclusionFromMetallicTextureRed\");\r\n if (mat1.useAutoMicroSurfaceFromReflectivityMap !== mat2.useAutoMicroSurfaceFromReflectivityMap)\r\n console.log(\"useAutoMicroSurfaceFromReflectivityMap\");\r\n if (mat1.useHorizonOcclusion !== mat2.useHorizonOcclusion)\r\n console.log(\"useHorizonOcclusion\");\r\n if (mat1.useLightmapAsShadowmap !== mat2.useLightmapAsShadowmap)\r\n console.log(\"useLightmapAsShadowmap\");\r\n if (mat1.useLinearAlphaFresnel !== mat2.useLinearAlphaFresnel)\r\n console.log(\"useLinearAlphaFresnel\");\r\n if (mat1.useMetallnessFromMetallicTextureBlue !== mat2.useMetallnessFromMetallicTextureBlue)\r\n console.log(\"useMetallnessFromMetallicTextureBlue\");\r\n if (mat1.useMicroSurfaceFromReflectivityMapAlpha !== mat2.useMicroSurfaceFromReflectivityMapAlpha)\r\n console.log(\"useMicroSurfaceFromReflectivityMapAlpha\");\r\n if (mat1.useObjectSpaceNormalMap !== mat2.useObjectSpaceNormalMap)\r\n console.log(\"useObjectSpaceNormalMap\");\r\n if (mat1.useOnlyMetallicFromMetallicReflectanceTexture !== mat2.useOnlyMetallicFromMetallicReflectanceTexture)\r\n console.log(\"useOnlyMetallicFromMetallicReflectanceTexture\");\r\n if (mat1.useParallax !== mat2.useParallax)\r\n console.log(\"useParallax\");\r\n if (mat1.useParallaxOcclusion !== mat2.useParallaxOcclusion)\r\n console.log(\"useParallaxOcclusion\");\r\n if (mat1.useRadianceOcclusion !== mat2.useRadianceOcclusion)\r\n console.log(\"useRadianceOcclusion\");\r\n if (mat1.useRadianceOverAlpha !== mat2.useRadianceOverAlpha)\r\n console.log(\"useRadianceOverAlpha\");\r\n if (mat1.useRoughnessFromMetallicTextureAlpha !== mat2.useRoughnessFromMetallicTextureAlpha)\r\n console.log(\"useRoughnessFromMetallicTextureAlpha\");\r\n if (mat1.useRoughnessFromMetallicTextureGreen !== mat2.useRoughnessFromMetallicTextureGreen)\r\n console.log(\"useRoughnessFromMetallicTextureGreen\");\r\n if (mat1.useSpecularOverAlpha !== mat2.useSpecularOverAlpha)\r\n console.log(\"useSpecularOverAlpha\");\r\n if (mat1.zOffset !== mat2.zOffset)\r\n console.log(\"zOffset\");\r\n if (mat1.zOffsetUnits !== mat2.zOffsetUnits)\r\n console.log(\"zOffsetUnits\");\r\n // Accessors\r\n if (mat1.alpha !== mat2.alpha)\r\n console.log(\"alpha\");\r\n if (mat1.alphaMode !== mat2.alphaMode)\r\n console.log(\"alphaMode\");\r\n if (mat1.backFaceCulling !== mat2.backFaceCulling)\r\n console.log(\"backFaceCulling\");\r\n this.compareCameraCurve(\"\", mat1.cameraColorCurves, mat2.cameraColorCurves);\r\n if (mat1.cameraColorCurvesEnabled !== mat2.cameraColorCurvesEnabled)\r\n console.log(\"cameraColorCurvesEnabled\");\r\n if (mat1.cameraColorGradingEnabled !== mat2.cameraColorGradingEnabled)\r\n console.log(\"cameraColorGradingEnabled\");\r\n if (mat1.cameraContrast !== mat2.cameraContrast)\r\n console.log(\"cameraContrast\");\r\n if (mat1.cameraExposure !== mat2.cameraExposure)\r\n console.log(\"cameraExposure\");\r\n if (mat1.cameraToneMappingEnabled !== mat2.cameraToneMappingEnabled)\r\n console.log(\"cameraToneMappingEnabled\");\r\n if (mat1.canRenderToMRT !== mat2.canRenderToMRT)\r\n console.log(\"canRenderToMRT\");\r\n if (mat1.cullBackFaces !== mat2.cullBackFaces)\r\n console.log(\"cullBackFaces\");\r\n if (mat1.fillMode !== mat2.fillMode)\r\n console.log(\"fillMode\");\r\n if (mat1.fogEnabled !== mat2.fogEnabled)\r\n console.log(\"fogEnabled\");\r\n if (mat1.hasRenderTargetTextures !== mat2.hasRenderTargetTextures)\r\n console.log(\"hasRenderTargetTextures\");\r\n this.compareImageProcessingConfiguration(mat1.imageProcessingConfiguration, mat2.imageProcessingConfiguration);\r\n if (mat1.indexOfRefraction !== mat2.indexOfRefraction)\r\n console.log(\"indexOfRefraction\");\r\n if (mat1.invertRefractionY !== mat2.invertRefractionY)\r\n console.log(\"invertRefractionY\");\r\n if (mat1.isFrozen !== mat2.isFrozen)\r\n console.log(\"isFrozen\");\r\n if (mat1.isPrePassCapable !== mat2.isPrePassCapable)\r\n console.log(\"isPrePassCapable\");\r\n if (mat1.linkRefractionWithTransparency !== mat2.linkRefractionWithTransparency)\r\n console.log(\"linkRefractionWithTransparency\");\r\n if (mat1.needDepthPrePass !== mat2.needDepthPrePass)\r\n console.log(\"needDepthPrePass\");\r\n if (mat1.realTimeFiltering !== mat2.realTimeFiltering)\r\n console.log(\"realTimeFiltering\");\r\n if (mat1.realTimeFilteringQuality !== mat2.realTimeFilteringQuality)\r\n console.log(\"realTimeFilteringQuality\");\r\n if (mat1.transparencyMode !== mat2.transparencyMode)\r\n console.log(\"transparencyMode\");\r\n if (mat1.useGLTFLightFalloff !== mat2.useGLTFLightFalloff)\r\n console.log(\"useGLTFLightFalloff\");\r\n if (mat1.useLogarithmicDepth !== mat2.useLogarithmicDepth)\r\n console.log(\"useLogarithmicDepth\");\r\n if (mat1.usePhysicalLightFalloff !== mat2.usePhysicalLightFalloff)\r\n console.log(\"usePhysicalLightFalloff\");\r\n this.compareTexture(\"albedo\", mat1.albedoTexture, mat2.albedoTexture);\r\n this.compareTexture(\"emissive\", mat1.emissiveTexture, mat2.emissiveTexture);\r\n }\r\n compareAnisotropy(an1, an2) {\r\n const prefix = \"anisotropy\";\r\n if ((an1.direction && !an2.direction) ||\r\n (!an1.direction && an2.direction) ||\r\n (an1.direction && an2.direction && !an1.direction.equals(an2.direction)))\r\n console.log(prefix + \" - direction\");\r\n if (an1.intensity !== an2.intensity)\r\n console.log(prefix + \" - intensity\");\r\n if (an1.isEnabled !== an2.isEnabled)\r\n console.log(prefix + \" - isEnabled\");\r\n }\r\n compareBRDF(b1, b2) {\r\n const prefix = \"brdf\";\r\n if (b1.useEnergyConservation !== b2.useEnergyConservation)\r\n console.log(prefix + \" - useEnergyConservation\");\r\n if (b1.useSmithVisibilityHeightCorrelated !== b2.useSmithVisibilityHeightCorrelated)\r\n console.log(prefix + \" - useSmithVisibilityHeightCorrelated\");\r\n if (b1.useSpecularGlossinessInputEnergyConservation !== b2.useSpecularGlossinessInputEnergyConservation)\r\n console.log(prefix + \" - useSpecularGlossinessInputEnergyConservation\");\r\n if (b1.useSphericalHarmonics !== b2.useSphericalHarmonics)\r\n console.log(prefix + \" - useSphericalHarmonics\");\r\n }\r\n compareClearCoat(c1, c2) {\r\n const prefix = \"clearCoat\";\r\n if (c1.indexOfRefraction !== c2.indexOfRefraction)\r\n console.log(prefix + \" - indexOfRefraction\");\r\n if (c1.intensity !== c2.intensity)\r\n console.log(prefix + \" - intensity\");\r\n if (c1.isEnabled !== c2.isEnabled)\r\n console.log(prefix + \" - isEnabled\");\r\n if (c1.isTintEnabled !== c2.isTintEnabled)\r\n console.log(prefix + \" - isTintEnabled\");\r\n if (c1.roughness !== c2.roughness)\r\n console.log(prefix + \" - roughness\");\r\n if ((c1.tintColor && !c2.tintColor) ||\r\n (!c1.tintColor && c2.tintColor) ||\r\n (c1.tintColor && c2.tintColor && !c1.tintColor.equals(c2.tintColor)))\r\n console.log(prefix + \" - tintColor\");\r\n if (c1.tintColorAtDistance !== c2.tintColorAtDistance)\r\n console.log(prefix + \" - tintColorAtDistance\");\r\n if (c1.tintThickness !== c2.tintThickness)\r\n console.log(prefix + \" - tintThickness\");\r\n if (c1.useRoughnessFromMainTexture != c2.useRoughnessFromMainTexture)\r\n console.log(prefix + \" - useRoughnessFromMainTexture\");\r\n }\r\n compareDetailMap(m1, m2) {\r\n const prefix = \"detailMap\";\r\n if (m1.bumpLevel !== m2.bumpLevel)\r\n console.log(prefix + \" - bumpLevel\");\r\n if (m1.diffuseBlendLevel !== m2.diffuseBlendLevel)\r\n console.log(prefix + \" - diffuseBlendLevel\");\r\n if (m1.isEnabled !== m2.isEnabled)\r\n console.log(prefix + \" - isEnabled\");\r\n if (m1.normalBlendMethod !== m2.normalBlendMethod)\r\n console.log(prefix + \" - normalBlendMethod\");\r\n if (m1.roughnessBlendLevel !== m2.roughnessBlendLevel)\r\n console.log(prefix + \" - roughnessBlendLevel\");\r\n }\r\n comparePrePassConfiguration(c1, c2) {\r\n const prefix = \"PrePassConfiguration\";\r\n if ((c1.currentViewProjection && !c2.currentViewProjection) ||\r\n (!c1.currentViewProjection && c2.currentViewProjection) ||\r\n (c1.currentViewProjection && c2.currentViewProjection && !c1.currentViewProjection.equals(c2.currentViewProjection)))\r\n console.log(prefix + \" - currentViewProjection\");\r\n if ((c1.previousViewProjection && !c2.previousViewProjection) ||\r\n (!c1.previousViewProjection && c2.previousViewProjection) ||\r\n (c1.previousViewProjection && c2.previousViewProjection && !c1.previousViewProjection.equals(c2.previousViewProjection)))\r\n console.log(prefix + \" - previousViewProjection\");\r\n }\r\n compareSheen(s1, s2) {\r\n const prefix = \"Sheen\";\r\n if (s1.albedoScaling !== s2.albedoScaling)\r\n console.log(prefix + \" - albedoScaling\");\r\n if ((s1.color && !s2.color) ||\r\n (!s1.color && s2.color) ||\r\n (s1.color && s2.color && !s1.color.equals(s2.color)))\r\n console.log(prefix + \" - color\");\r\n if (s1.intensity !== s2.intensity)\r\n console.log(prefix + \" - intensity\");\r\n if (s1.isEnabled !== s2.isEnabled)\r\n console.log(prefix + \" - isEnabled\");\r\n if (s1.linkSheenWithAlbedo !== s2.linkSheenWithAlbedo)\r\n console.log(prefix + \" - linkSheenWithAlbedo\");\r\n if (s1.roughness !== s2.roughness)\r\n console.log(prefix + \" - roughness\");\r\n if (s1.useRoughnessFromMainTexture !== s2.useRoughnessFromMainTexture)\r\n console.log(prefix + \" - useRoughnessFromMainTexture\");\r\n }\r\n compareSubSurface(s1, s2) {\r\n const prefix = \"SubSurface\";\r\n if ((s1.diffusionDistance && !s2.diffusionDistance) ||\r\n (!s1.diffusionDistance && s2.diffusionDistance) ||\r\n (s1.diffusionDistance && s2.diffusionDistance && !s1.diffusionDistance.equals(s2.diffusionDistance)))\r\n console.log(prefix + \" - diffusionDistance\");\r\n if (s1.indexOfRefraction !== s2.indexOfRefraction)\r\n console.log(prefix + \" - indexOfRefraction\");\r\n if (s1.invertRefractionY !== s2.invertRefractionY)\r\n console.log(prefix + \" - invertRefractionY\");\r\n if (s1.isRefractionEnabled !== s2.isRefractionEnabled)\r\n console.log(prefix + \" - isRefractionEnabled\");\r\n if (s1.isScatteringEnabled !== s2.isScatteringEnabled)\r\n console.log(prefix + \" - isScatteringEnabled\");\r\n if (s1.isTranslucencyEnabled !== s2.isTranslucencyEnabled)\r\n console.log(prefix + \" - isTranslucencyEnabled\");\r\n if (s1.linkRefractionWithTransparency !== s2.linkRefractionWithTransparency)\r\n console.log(prefix + \" - linkRefractionWithTransparency\");\r\n if (s1.maximumThickness !== s2.maximumThickness)\r\n console.log(prefix + \" - maximumThickness\");\r\n if (s1.minimumThickness !== s2.minimumThickness)\r\n console.log(prefix + \" - minimumThickness\");\r\n if (s1.refractionIntensity !== s2.refractionIntensity)\r\n console.log(prefix + \" - refractionIntensity\");\r\n if ((s1.tintColor && !s2.tintColor) ||\r\n (!s1.tintColor && s2.tintColor) ||\r\n (s1.tintColor && s2.tintColor && !s1.tintColor.equals(s2.tintColor)))\r\n console.log(prefix + \" - tintColor\");\r\n if (s1.tintColorAtDistance !== s2.tintColorAtDistance)\r\n console.log(prefix + \" - tintColorAtDistance\");\r\n if (s1.translucencyIntensity !== s2.translucencyIntensity)\r\n console.log(prefix + \" - translucencyIntensity\");\r\n if (s1.useAlbedoToTintRefraction !== s2.useAlbedoToTintRefraction)\r\n console.log(prefix + \" - useAlbedoToTintRefraction\");\r\n if (s1.useAlbedoToTintTranslucency !== s2.useAlbedoToTintTranslucency)\r\n console.log(prefix + \" - useAlbedoToTintTranslucency\");\r\n if (s1.useGltfStyleTextures !== s2.useGltfStyleTextures)\r\n console.log(prefix + \" - useGltfStyleTextures\");\r\n if (s1.useMaskFromThicknessTexture !== s2.useMaskFromThicknessTexture)\r\n console.log(prefix + \" - useMaskFromThicknessTexture\");\r\n if (s1.useThicknessAsDepth !== s2.useThicknessAsDepth)\r\n console.log(prefix + \" - useThicknessAsDepth\");\r\n }\r\n compareCameraCurve(pref, c1, c2) {\r\n if ((c1 === null && c2 !== null) ||\r\n (c1 !== null && c2 === null))\r\n console.log(\"cameraColorCurves\");\r\n if (c1 && c2) {\r\n const prefix = pref ? pref + \" - cameraColorCurves\" : \"cameraColorCurves\";\r\n if (c1.globalDensity !== c2.globalDensity)\r\n console.log(prefix + \" - globalDensity\");\r\n if (c1.globalExposure !== c2.globalExposure)\r\n console.log(prefix + \"- globalExposure\");\r\n if (c1.globalHue !== c2.globalHue)\r\n console.log(prefix + \" - globalHue\");\r\n if (c1.globalSaturation !== c2.globalSaturation)\r\n console.log(prefix + \" - globalSaturation\");\r\n if (c1.highlightsDensity !== c2.highlightsDensity)\r\n console.log(prefix + \" - highlightsDensity\");\r\n if (c1.highlightsExposure !== c2.highlightsExposure)\r\n console.log(prefix + \" - highlightsExposure\");\r\n if (c1.highlightsHue !== c2.highlightsHue)\r\n console.log(prefix + \" - highlightsHue\");\r\n if (c1.highlightsSaturation !== c2.highlightsSaturation)\r\n console.log(prefix + \" - highlightsSaturation\");\r\n if (c1.midtonesDensity !== c2.midtonesDensity)\r\n console.log(prefix + \" - midtonesDensity\");\r\n if (c1.midtonesExposure !== c2.midtonesExposure)\r\n console.log(prefix + \" - midtonesExposure\");\r\n if (c1.midtonesHue !== c2.midtonesHue)\r\n console.log(prefix + \" - midtonesHue\");\r\n if (c1.midtonesSaturation !== c2.midtonesSaturation)\r\n console.log(prefix + \" - midtonesSaturation\");\r\n if (c1.shadowsDensity !== c2.shadowsDensity)\r\n console.log(prefix + \" - shadowsDensity\");\r\n if (c1.shadowsExposure !== c2.shadowsExposure)\r\n console.log(prefix + \" - shadowsExposure\");\r\n if (c1.shadowsHue !== c2.shadowsHue)\r\n console.log(prefix + \" - shadowsHue\");\r\n if (c1.shadowsSaturation !== c2.shadowsSaturation)\r\n console.log(prefix + \" - shadowsSaturation\");\r\n }\r\n }\r\n compareImageProcessingConfiguration(c1, c2) {\r\n const prefix = \"imageProcessingConfiguration\";\r\n this.compareCameraCurve(prefix, c1.colorCurves, c2.colorCurves);\r\n if (c1.vignetteCameraFov !== c2.vignetteCameraFov)\r\n console.log(prefix + \" - vignetteCameraFov\");\r\n if (c1.vignetteCentreX !== c2.vignetteCentreX)\r\n console.log(prefix + \" - vignetteCentreX\");\r\n if (c1.vignetteCentreY !== c2.vignetteCentreY)\r\n console.log(prefix + \" - vignetteCentreY\");\r\n if ((c1.vignetteColor && !c2.vignetteColor) ||\r\n (!c1.vignetteColor && c2.vignetteColor) ||\r\n (c1.vignetteColor && c2.vignetteColor && !c1.vignetteColor.equals(c2.vignetteColor)))\r\n console.log(prefix + \" - vignetteColor\");\r\n if (c1.vignetteStretch !== c2.vignetteStretch)\r\n console.log(prefix + \" - vignetteStretch\");\r\n if (c1.vignetteWeight !== c2.vignetteWeight)\r\n console.log(prefix + \" - vignetteWeight\");\r\n // Accessors\r\n if (c1.applyByPostProcess !== c2.applyByPostProcess)\r\n console.log(prefix + \" - applyByPostProcess\");\r\n if (c1.colorCurvesEnabled !== c2.colorCurvesEnabled)\r\n console.log(prefix + \" - colorCurvesEnabled\");\r\n if (c1.colorGradingBGR !== c2.colorGradingBGR)\r\n console.log(prefix + \" - colorGradingBGR\");\r\n if (c1.colorGradingEnabled !== c2.colorGradingEnabled)\r\n console.log(prefix + \" - colorGradingEnabled\");\r\n if (c1.colorGradingWithGreenDepth !== c2.colorGradingWithGreenDepth)\r\n console.log(prefix + \" - colorGradingWithGreenDepth\");\r\n if (c1.contrast !== c2.contrast)\r\n console.log(prefix + \" - contrast\");\r\n if (c1.exposure !== c2.exposure)\r\n console.log(prefix + \" - exposure\");\r\n if (c1.isEnabled !== c2.isEnabled)\r\n console.log(prefix + \" - isEnabled\");\r\n if (c1.toneMappingEnabled !== c2.toneMappingEnabled)\r\n console.log(prefix + \" - toneMappingEnabled\");\r\n if (c1.toneMappingType !== c2.toneMappingType)\r\n console.log(prefix + \" - toneMappingType\");\r\n if (c1.vignetteBlendMode !== c2.vignetteBlendMode)\r\n console.log(prefix + \" - vignetteBlendMode\");\r\n if (c1.vignetteEnabled !== c2.vignetteEnabled)\r\n console.log(prefix + \" - vignetteEnabled\");\r\n }\r\n compareTexture(type, t1, t2) {\r\n if ((t1 && !t2) || (!t1 && t2)) {\r\n console.log(type);\r\n return;\r\n }\r\n if ((t1 instanceof BABYLON.Texture && !(t2 instanceof BABYLON.Texture)) ||\r\n (t2 instanceof BABYLON.Texture && !(t1 instanceof BABYLON.Texture))) {\r\n console.log(type);\r\n return;\r\n }\r\n if (t1 && t2) {\r\n if (t1.anisotropicFilteringLevel !== t2.anisotropicFilteringLevel)\r\n console.log(type + \" - anisotropicFilteringLevel\");\r\n if (t1 instanceof BABYLON.Texture && t2 instanceof BABYLON.Texture) {\r\n if (t1.homogeneousRotationInUVTransform !== t2.homogeneousRotationInUVTransform)\r\n console.log(type + \" - homogeneousRotationInUVTransform\");\r\n if (t1.uAng !== t2.uAng)\r\n console.log(type + \" - uAng\");\r\n if (t1.uOffset !== t2.uOffset)\r\n console.log(type + \" - uOffset\");\r\n if (t1.uRotationCenter !== t2.uRotationCenter)\r\n console.log(type + \" - uRotationCenterSearch\");\r\n if (t1.uScale !== t2.uScale)\r\n console.log(type + \" - uScale\");\r\n if (t1.vAng !== t2.vAng)\r\n console.log(type + \" - vAng\");\r\n if (t1.vOffset !== t2.vOffset)\r\n console.log(type + \" - vOffset\");\r\n if (t1.vRotationCenter !== t2.vRotationCenter)\r\n console.log(type + \" - vRotationCenterSearch\");\r\n if (t1.vScale !== t2.vScale)\r\n console.log(type + \" - vScale\");\r\n if (t1.wAng !== t2.wAng)\r\n console.log(type + \" - wAng\");\r\n if (t1.wRotationCenter !== t2.wRotationCenter)\r\n console.log(type + \" - wRotationCenterSearch\");\r\n if (t1.invertY !== t2.invertY)\r\n console.log(type + \" - invertY\");\r\n if (t1.mimeType !== t2.mimeType)\r\n console.log(type + \" - mimeType\");\r\n }\r\n if (t1.invertZ !== t2.invertZ)\r\n console.log(type + \" - invertZ\");\r\n if (t1.isRenderTarget !== t2.isRenderTarget)\r\n console.log(type + \" - isRenderTarget\");\r\n if (t1.level !== t2.level)\r\n console.log(type + \" - level\");\r\n if (t1.wrapR !== t2.wrapR)\r\n console.log(type + \" - wrapR\");\r\n // Accessor\r\n if (t1.canRescale !== t2.canRescale)\r\n console.log(type + \" - canRescale\");\r\n if (t1.coordinatesIndex !== t2.coordinatesIndex)\r\n console.log(type + \" - coordinatesIndex\");\r\n if (t1.coordinatesMode !== t2.coordinatesMode)\r\n console.log(type + \" - coordinatesMode\");\r\n if (t1.gammaSpace !== t2.gammaSpace)\r\n console.log(type + \" - gammaSpace\");\r\n if (t1.getAlphaFromRGB !== t2.getAlphaFromRGB)\r\n console.log(type + \" - getAlphaFromRGB\");\r\n if (t1.hasAlpha !== t2.hasAlpha)\r\n console.log(type + \"- hasAlpha\");\r\n if (t1.is2DArray !== t2.is2DArray)\r\n console.log(type + \" - is2DArray\");\r\n if (t1.is3D !== t2.is3D)\r\n console.log(type + \" - is3D\");\r\n if (t1.isBlocking !== t2.isBlocking)\r\n console.log(type + \" - isBlocking\");\r\n if (t1.isCube !== t2.isCube)\r\n console.log(type + \" - isCube\");\r\n if (t1.isRGBD !== t2.isRGBD)\r\n console.log(type + \" - isRGBD\");\r\n if (t1.linearSpecularLOD !== t2.linearSpecularLOD)\r\n console.log(type + \" - linearSpecularLOD\");\r\n if (t1.lodGenerationOffset !== t2.lodGenerationOffset)\r\n console.log(type + \" - lodGenerationOffset\");\r\n if (t1.lodGenerationScale !== t2.lodGenerationScale)\r\n console.log(type + \" - lodGenerationScale\");\r\n if (t1.noMipmap !== t2.noMipmap)\r\n console.log(type + \" - noMipmap\");\r\n if (t1.samplingMode !== t2.samplingMode)\r\n console.log(type + \" - samplingMode\");\r\n if (t1.textureFormat !== t2.textureFormat)\r\n console.log(type + \" - textureFormat\");\r\n if (t1.textureType !== t2.textureType)\r\n console.log(type + \" - textureType\");\r\n if (t1.wrapU !== t2.wrapU)\r\n console.log(type + \" - wrapU\");\r\n if (t1.wrapV !== t2.wrapV)\r\n console.log(type + \" - wrapV\");\r\n }\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/ScenePreview/ScenePreview.ts\":\n/*!************************************************************!*\\\n !*** ../../3D/src/Components/ScenePreview/ScenePreview.ts ***!\n \\************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ScenePreviewData\": () => (/* binding */ ScenePreviewData),\n/* harmony export */ \"ScenesPreview\": () => (/* binding */ ScenesPreview)\n/* harmony export */ });\n/* harmony import */ var _Components_DesignManagers_MeshDesignManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Components/DesignManagers/MeshDesignManager */ \"../../3D/src/Components/DesignManagers/MeshDesignManager.ts\");\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\nclass ScenePreviewData {\r\n}\r\nclass ScenesPreview {\r\n static getPreviewsAsync(scene, rootUrl, options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const previewMaker = new ScenePreviewMaker(scene, rootUrl, options);\r\n const previews = yield previewMaker.getPreviewsAsync();\r\n previewMaker.dispose();\r\n return previews;\r\n });\r\n }\r\n}\r\nclass ScenePreviewMaker {\r\n constructor(scene, rootUrl, options) {\r\n this._rootUrl = \"\";\r\n this._localEngine = null;\r\n this._hostingScene = null;\r\n this._hostingSceneHelper = null;\r\n this._scene = scene;\r\n this._rootUrl = rootUrl;\r\n this._options = options;\r\n }\r\n dispose() {\r\n this.disposeHostingScene();\r\n this.disposeLocalEngine();\r\n }\r\n createLocalEngine() {\r\n var _a, _b;\r\n if (!this._localEngine) {\r\n const localCanvas = document.createElement('canvas');\r\n localCanvas.id = \"ScenePreviewCanvas\";\r\n localCanvas.width = (_a = this._options.width) !== null && _a !== void 0 ? _a : 1024;\r\n localCanvas.height = (_b = this._options.height) !== null && _b !== void 0 ? _b : 1024;\r\n this._localEngine = new BABYLON.Engine(localCanvas, true, { premultipliedAlpha: false, preserveDrawingBuffer: true });\r\n this._localEngine.setSize(localCanvas.width, localCanvas.height);\r\n this._localEngine.displayLoadingUI = () => null;\r\n this._localEngine.hideLoadingUI = () => null;\r\n }\r\n return this._localEngine;\r\n }\r\n createScenePreviewFileAsync(rootUrl, sourceScene, container) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const serialized = BABYLON.SceneSerializer.Serialize(sourceScene);\r\n const serializedScene = JSON.stringify(serialized);\r\n if (serializedScene) {\r\n const scene = new BABYLON.Scene(this._localEngine);\r\n if (scene) {\r\n const helper = new _SceneHelper__WEBPACK_IMPORTED_MODULE_1__.SceneHelper(scene);\r\n yield new Promise((resolve) => {\r\n BABYLON.SceneLoader.Append(rootUrl, \"data:\" + serializedScene, scene, () => __awaiter(this, void 0, void 0, function* () {\r\n var _a, _b, _c;\r\n yield scene.whenReadyAsync();\r\n helper.setupCamera();\r\n helper.setupLights();\r\n const arcCamera = scene.activeCamera;\r\n arcCamera.position = this._options.camera.position;\r\n arcCamera.target = this._options.camera.target;\r\n // Re render dynamic textures\r\n if (this._options.meshesWithCustomizationIds && this._options.zkDesign && this._options.zkModel && this._options.zkScene) {\r\n for (const meshId of this._options.meshesWithCustomizationIds) {\r\n var ourMesh = scene.getMeshByID(meshId);\r\n if (ourMesh) {\r\n // Restore the original material id if it was changed from the mesh design manager\r\n if (ourMesh.metadata && ourMesh.metadata.originalNormalmapMaterialID) {\r\n ourMesh.material = (_a = scene.materials.find(x => x.id === ourMesh.metadata.originalNormalmapMaterialID)) !== null && _a !== void 0 ? _a : null;\r\n }\r\n yield _Components_DesignManagers_MeshDesignManager__WEBPACK_IMPORTED_MODULE_0__.MeshDesignManager.createMeshDesignManagerAsync(scene, this._options.zkScene, ourMesh, ourMesh.subMeshes && ourMesh.subMeshes.length > 0 ? ourMesh.subMeshes[0] : null, this._options.zkModel, this._options.zkDesign, true);\r\n }\r\n }\r\n // Sleep\r\n yield new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, 500);\r\n });\r\n scene.render();\r\n yield new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, 500);\r\n });\r\n }\r\n container.previewFile = yield helper.takeContentScreenshotAsync((_b = this._options.width) !== null && _b !== void 0 ? _b : 1024, (_c = this._options.height) !== null && _c !== void 0 ? _c : 1024);\r\n resolve();\r\n }));\r\n });\r\n }\r\n }\r\n });\r\n }\r\n getPreviewsAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.createLocalEngine();\r\n const container = new ScenePreviewData();\r\n yield this.createScenePreviewFileAsync(this._rootUrl, this._scene, container);\r\n this.disposeHostingScene();\r\n this.disposeLocalEngine();\r\n return container;\r\n });\r\n }\r\n disposeLocalEngine() {\r\n if (this._localEngine)\r\n this._localEngine.dispose();\r\n }\r\n disposeHostingScene() {\r\n if (this._hostingSceneHelper) {\r\n this._hostingSceneHelper.dispose();\r\n this._hostingSceneHelper = null;\r\n }\r\n if (this._hostingScene) {\r\n this._hostingScene.dispose();\r\n this._hostingScene = null;\r\n }\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/SceneToBlobs/SceneToBlobs.ts\":\n/*!************************************************************!*\\\n !*** ../../3D/src/Components/SceneToBlobs/SceneToBlobs.ts ***!\n \\************************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SceneToBlobs\": () => (/* binding */ SceneToBlobs)\n/* harmony export */ });\n/* harmony import */ var _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Misc/WorkerPool */ \"../../3D/src/Misc/WorkerPool.ts\");\n\r\nfunction loadScriptAsync(url) {\r\n if (typeof importScripts === \"function\") {\r\n importScripts(url);\r\n return Promise.resolve();\r\n }\r\n else {\r\n return new Promise((resolve, reject) => {\r\n BABYLON.Tools.LoadScript(url, () => {\r\n resolve();\r\n }, (message) => {\r\n reject(new Error(message));\r\n });\r\n });\r\n }\r\n}\r\nfunction importWorkerScriptsAsync(urls) {\r\n if (urls.length == 0)\r\n return Promise.resolve();\r\n let promises = [];\r\n for (let i = 0; i < urls.length; i++) {\r\n promises.push(loadScriptAsync(urls[i]));\r\n }\r\n return new Promise((resolve) => {\r\n Promise.all(promises).then(() => resolve());\r\n });\r\n}\r\nfunction chunkString(str, size) {\r\n // Rollup will try to execute this function with str as undefined. IDK\r\n if (!str)\r\n return null;\r\n return str.match(new RegExp('.[^]{1,' + size + '}', 'g'));\r\n}\r\nfunction makeBlobs(json, version, onProgress) {\r\n let name = \"scene_\" + version + \".babylon\";\r\n let data = json;\r\n const blobInfos = [];\r\n // Se il file di scena supera i 5000000 di bytes viene spezzato in blocchi di 800000 che vengono compressi\r\n if (data.length <= 5000000) {\r\n // Unico blob. verifico se comprimere i dati \r\n let compressed = false;\r\n if (data.length > 180 && data.length <= 1000000) {\r\n //Logger.info(\"Uncompressed file length: \" + data.length);\r\n // compress file content\r\n data = LZString.compressToUint8Array(data);\r\n //Logger.info(\"Compressed file length: \" + data.length);\r\n name = \"compressed_\" + name;\r\n compressed = true;\r\n }\r\n let blob = null;\r\n if (!compressed) {\r\n blob = new Blob([data], { type: \"text/plain\" });\r\n }\r\n else {\r\n let arrayBuffer = data.buffer;\r\n blob = new Blob([arrayBuffer]);\r\n }\r\n if (blob) {\r\n blobInfos.push({\r\n name: name, blob: blob\r\n });\r\n }\r\n }\r\n else {\r\n // separo il file in chunks da comprimere\r\n let chunks = chunkString(data, 800000);\r\n if (chunks) {\r\n for (let i = 0; i < chunks.length; i++) {\r\n let chunkData = chunks[i];\r\n let chunkFileName = name + \"_part_\" + i;\r\n let compressed = false;\r\n if (chunkData.length > 180) {\r\n //Logger.info(\"Uncompressed file length: \" + chunkData.length);\r\n // compress file content\r\n chunkData = LZString.compressToUint8Array(chunkData);\r\n //Logger.info(\"Compressed file length: \" + chunkData.length);\r\n chunkFileName = \"compressed_\" + chunkFileName;\r\n compressed = true;\r\n }\r\n let blob = null;\r\n if (!compressed) {\r\n blob = new Blob([chunkData], { type: \"text/plain\" });\r\n }\r\n else {\r\n var arrayBuffer = chunkData.buffer;\r\n blob = new Blob([arrayBuffer]);\r\n }\r\n if (blob) {\r\n blobInfos.push({\r\n name: chunkFileName, blob: blob\r\n });\r\n }\r\n onProgress(i / chunks.length * 100);\r\n }\r\n }\r\n }\r\n return blobInfos;\r\n}\r\nfunction getAbsoluteUrl(url) {\r\n if (typeof document !== \"object\" || typeof url !== \"string\") {\r\n return url;\r\n }\r\n return BABYLON.Tools.GetAbsoluteUrl(url);\r\n}\r\n/**\r\n * The worker function that gets converted to a blob url to pass into a worker.\r\n */\r\nfunction worker() {\r\n let initializerPromise;\r\n onmessage = (event) => {\r\n const data = event.data;\r\n switch (data.id) {\r\n case \"init\": {\r\n const urls = data.urls;\r\n initializerPromise = importWorkerScriptsAsync(urls);\r\n postMessage(\"done\");\r\n break;\r\n }\r\n case \"makeBlobs\": {\r\n if (!initializerPromise) {\r\n throw new Error(\"Worker not initialized\");\r\n }\r\n initializerPromise.then(() => {\r\n const json = data.json;\r\n const version = data.version;\r\n const blobInfos = makeBlobs(json, version, (perc) => {\r\n postMessage({ id: \"progress\", perc: perc });\r\n });\r\n postMessage({ id: \"result\", blobInfos: blobInfos });\r\n postMessage(\"done\");\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n}\r\nclass SceneToBlobs {\r\n /**\r\n * Constructor\r\n * @param numWorkers The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.\r\n*/\r\n constructor(numWorkers = SceneToBlobs.DefaultNumWorkers) {\r\n const scriptUrls = ['/Scripts/libs/lz-string/base64-string.js',\r\n '/Scripts/libs/lz-string/lz-string.min.js'\r\n ].map(url => getAbsoluteUrl(url));\r\n if (numWorkers && typeof Worker === \"function\") {\r\n const workerContent = `${loadScriptAsync}${importWorkerScriptsAsync}${chunkString}${makeBlobs}(${worker})()`;\r\n const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: \"application/javascript\" }));\r\n const workerPromises = new Array(numWorkers);\r\n for (let i = 0; i < workerPromises.length; i++) {\r\n workerPromises[i] = new Promise((resolve, reject) => {\r\n const worker = new Worker(workerBlobUrl);\r\n const onError = (error) => {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n reject(error);\r\n };\r\n const onMessage = (message) => {\r\n if (message.data === \"done\") {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n resolve(worker);\r\n }\r\n };\r\n worker.addEventListener(\"error\", onError);\r\n worker.addEventListener(\"message\", onMessage);\r\n worker.postMessage({\r\n id: \"init\",\r\n urls: scriptUrls\r\n });\r\n });\r\n }\r\n this._workerPoolPromise = Promise.all(workerPromises).then((workers) => {\r\n return new _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_0__.WorkerPool(workers);\r\n });\r\n }\r\n }\r\n static GetDefaultNumWorkers() {\r\n if (typeof navigator !== \"object\" || !navigator.hardwareConcurrency) {\r\n return 1;\r\n }\r\n // Use 50% of the available logical processors but capped at 2.\r\n return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 2);\r\n }\r\n /**\r\n * Default instance for the draco compression object.\r\n */\r\n static get Default() {\r\n if (!SceneToBlobs._Default) {\r\n SceneToBlobs._Default = new SceneToBlobs();\r\n }\r\n return SceneToBlobs._Default;\r\n }\r\n dispose() {\r\n //if (this._workerPoolPromise) {\r\n // this._workerPoolPromise.then((workerPool) => {\r\n // workerPool.dispose();\r\n // });\r\n //}\r\n //delete this._workerPoolPromise;\r\n }\r\n /**\r\n * Returns a promise that resolves when ready. Call this manually to ensure draco compression is ready before use.\r\n * @returns a promise that resolves when ready\r\n */\r\n whenReadyAsync() {\r\n if (this._workerPoolPromise) {\r\n return this._workerPoolPromise.then(() => { });\r\n }\r\n return Promise.resolve();\r\n }\r\n getSceneBlobsAsync(json, version, onProgress) {\r\n if (this._workerPoolPromise) {\r\n return this._workerPoolPromise.then((workerPool) => {\r\n return new Promise((resolve, reject) => {\r\n workerPool.push((worker, onComplete) => {\r\n let blobInfos = [];\r\n const onError = (error) => {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n reject(error);\r\n onComplete();\r\n };\r\n const onMessage = (message) => {\r\n if (message.data === \"done\") {\r\n worker.removeEventListener(\"error\", onError);\r\n worker.removeEventListener(\"message\", onMessage);\r\n resolve(blobInfos);\r\n onComplete();\r\n }\r\n else if (message.data.id === \"progress\") {\r\n onProgress(message.data.perc);\r\n }\r\n else if (message.data.id === \"result\") {\r\n blobInfos = message.data.blobInfos;\r\n }\r\n };\r\n worker.addEventListener(\"error\", onError);\r\n worker.addEventListener(\"message\", onMessage);\r\n worker.postMessage({ id: \"makeBlobs\", json: json, version: version });\r\n });\r\n });\r\n });\r\n }\r\n throw new Error(\"SceneToBlob worker is not available\");\r\n }\r\n}\r\n/**\r\n * Default number of workers to create when splitting files\r\n */\r\nSceneToBlobs.DefaultNumWorkers = SceneToBlobs.GetDefaultNumWorkers();\r\nSceneToBlobs._Default = null;\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/Selector/ElementSelector.ts\":\n/*!***********************************************************!*\\\n !*** ../../3D/src/Components/Selector/ElementSelector.ts ***!\n \\***********************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ElementSelector\": () => (/* binding */ ElementSelector)\n/* harmony export */ });\nclass ElementSelector {\r\n constructor() {\r\n }\r\n getSubmeshIdx(selectionExpression) {\r\n let idx = selectionExpression.lastIndexOf(\"-\");\r\n if (idx != -1) {\r\n selectionExpression = selectionExpression.substring(0, idx);\r\n let smidx = Number(selectionExpression.substring(idx + 1));\r\n if (smidx && !isNaN(smidx))\r\n return smidx;\r\n }\r\n return null;\r\n }\r\n getRegExp(selectionExpression, type) {\r\n let subMeshIndex = 0;\r\n if ((type & MPlaza.SceneElementType.SubMesh) == MPlaza.SceneElementType.SubMesh) {\r\n let idx = selectionExpression.lastIndexOf(\"-\");\r\n if (idx != -1) {\r\n selectionExpression = selectionExpression.substring(0, idx);\r\n let smidx = Number(selectionExpression.substring(idx + 1));\r\n if (smidx && !isNaN(smidx)) {\r\n subMeshIndex = smidx;\r\n }\r\n }\r\n }\r\n return new RegExp(this.escapeRegExp(selectionExpression).replace(/\\\\\\*/g, \".*\"), \"i\");\r\n }\r\n getElements(zkScene, scene, filter, expression, type) {\r\n const elements = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let regExp = this.getRegExp(part, type);\r\n if ((type & MPlaza.SceneElementType.Mesh) == MPlaza.SceneElementType.Mesh) {\r\n const meshes = this.getMeshes(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, meshes);\r\n }\r\n if ((type & MPlaza.SceneElementType.SubMesh) == MPlaza.SceneElementType.SubMesh) {\r\n let subMeshIndex = this.getSubmeshIdx(selectionExpression);\r\n if (subMeshIndex) {\r\n const subMeshes = this.getSubMeshes(zkScene, scene, filter, regExp, selectionExpression, subMeshIndex);\r\n Array.prototype.push.apply(elements, subMeshes);\r\n }\r\n }\r\n if ((type & MPlaza.SceneElementType.Material) == MPlaza.SceneElementType.Material) {\r\n const materials = this.getMaterials(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, materials);\r\n }\r\n if ((type & MPlaza.SceneElementType.Light) == MPlaza.SceneElementType.Light) {\r\n const lights = this.getLights(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, lights);\r\n }\r\n if ((type & MPlaza.SceneElementType.Camera) == MPlaza.SceneElementType.Camera) {\r\n const cameras = this.getCameras(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, cameras);\r\n }\r\n if ((type & MPlaza.SceneElementType.CameraLocation) == MPlaza.SceneElementType.CameraLocation) {\r\n const locations = this.getCameraLocations(zkScene, scene, filter, regExp);\r\n Array.prototype.push.apply(elements, locations);\r\n }\r\n }\r\n return elements;\r\n }\r\n getMeshElements(zkScene, scene, filter, expression, type) {\r\n const elements = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let regExp = this.getRegExp(part, type);\r\n if ((type & MPlaza.SceneElementType.Mesh) == MPlaza.SceneElementType.Mesh) {\r\n const meshes = this.getMeshes(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, meshes);\r\n }\r\n }\r\n return elements;\r\n }\r\n getSubMeshElements(zkScene, scene, filter, expression, type) {\r\n const elements = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let regExp = this.getRegExp(part, type);\r\n if ((type & MPlaza.SceneElementType.SubMesh) == MPlaza.SceneElementType.SubMesh) {\r\n let subMeshIndex = this.getSubmeshIdx(selectionExpression);\r\n if (subMeshIndex) {\r\n const subMeshes = this.getSubMeshes(zkScene, scene, filter, regExp, selectionExpression, subMeshIndex);\r\n Array.prototype.push.apply(elements, subMeshes);\r\n }\r\n }\r\n }\r\n return elements;\r\n }\r\n getMaterialElements(zkScene, scene, filter, expression, type) {\r\n const elements = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let regExp = this.getRegExp(part, type);\r\n if ((type & MPlaza.SceneElementType.Material) == MPlaza.SceneElementType.Material) {\r\n const materials = this.getMaterials(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, materials);\r\n }\r\n }\r\n return elements;\r\n }\r\n getLightElements(zkScene, scene, filter, expression, type) {\r\n const elements = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let regExp = this.getRegExp(part, type);\r\n if ((type & MPlaza.SceneElementType.Light) == MPlaza.SceneElementType.Light) {\r\n const lights = this.getLights(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, lights);\r\n }\r\n }\r\n return elements;\r\n }\r\n getCameraElements(zkScene, scene, filter, expression, type) {\r\n const elements = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let regExp = this.getRegExp(part, type);\r\n if ((type & MPlaza.SceneElementType.Camera) == MPlaza.SceneElementType.Camera) {\r\n const cameras = this.getCameras(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(elements, cameras);\r\n }\r\n }\r\n return elements;\r\n }\r\n getCameraLocationElements(zkScene, scene, filter, expression, type) {\r\n const elements = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let regExp = this.getRegExp(part, type);\r\n if ((type & MPlaza.SceneElementType.CameraLocation) == MPlaza.SceneElementType.CameraLocation) {\r\n const locations = this.getCameraLocations(zkScene, scene, filter, regExp);\r\n Array.prototype.push.apply(elements, locations);\r\n }\r\n }\r\n return elements;\r\n }\r\n getOffloadedElementIDs(zkScene, scene, filter, expression, type) {\r\n const ids = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let subMeshIndex = 0;\r\n if ((type & MPlaza.SceneElementType.SubMesh) == MPlaza.SceneElementType.SubMesh) {\r\n var idx = part.lastIndexOf(\"-\");\r\n if (idx != -1) {\r\n selectionExpression = part.substring(0, idx);\r\n let smidx = Number(part.substring(idx + 1));\r\n if (smidx && !isNaN(smidx)) {\r\n subMeshIndex = smidx;\r\n }\r\n }\r\n }\r\n var regExp = new RegExp(this.escapeRegExp(selectionExpression).replace(/\\\\\\*/g, \".*\"), \"i\");\r\n if ((type & MPlaza.SceneElementType.Material) == MPlaza.SceneElementType.Material) {\r\n var materialIDs = this.getOffloadedMaterialIDs(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(ids, materialIDs);\r\n }\r\n }\r\n return ids;\r\n }\r\n getDelayedElementIDs(zkScene, scene, filter, expression, type) {\r\n const ids = [];\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let subMeshIndex = 0;\r\n if ((type & MPlaza.SceneElementType.SubMesh) == MPlaza.SceneElementType.SubMesh) {\r\n var idx = part.lastIndexOf(\"-\");\r\n if (idx != -1) {\r\n selectionExpression = part.substring(0, idx);\r\n let smidx = Number(part.substring(idx + 1));\r\n if (smidx && !isNaN(smidx)) {\r\n subMeshIndex = smidx;\r\n }\r\n }\r\n }\r\n var regExp = new RegExp(this.escapeRegExp(selectionExpression).replace(/\\\\\\*/g, \".*\"), \"i\");\r\n if ((type & MPlaza.SceneElementType.Material) == MPlaza.SceneElementType.Material) {\r\n var materialIDs = this.getDelayedMaterialIDs(zkScene, scene, filter, regExp, selectionExpression);\r\n Array.prototype.push.apply(ids, materialIDs);\r\n }\r\n }\r\n return ids;\r\n }\r\n getMeshes(zkScene, scene, filter, regExp, originalExpression) {\r\n const meshes = [];\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.meshes.length; i++) {\r\n const mesh = scene.meshes[i];\r\n if (((mesh.name && regExp.test(mesh.name)) ||\r\n (mesh.id && mesh.id == originalExpression)) &&\r\n this.verifyFilter(mesh.id, filter))\r\n meshes.push(mesh);\r\n }\r\n }\r\n return meshes;\r\n }\r\n getSubMeshes(zkScene, scene, filter, regExp, originalExpression, subMeshIndex) {\r\n const subMeshes = [];\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.meshes.length; i++) {\r\n const mesh = scene.meshes[i];\r\n if (((mesh.name && regExp.test(mesh.name)) ||\r\n (mesh.id && mesh.id == originalExpression)) &&\r\n this.verifyFilter(mesh.id, filter) &&\r\n subMeshIndex < mesh.subMeshes.length &&\r\n subMeshIndex >= 0)\r\n subMeshes.push(mesh.subMeshes[subMeshIndex]);\r\n }\r\n }\r\n return subMeshes;\r\n }\r\n getMaterials(zkScene, scene, filter, regExp, originalExpression) {\r\n const materials = [];\r\n // Nella selezione considero anche i materiali creati clonati usati per gli effetti sul design\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.materials.length; i++) {\r\n const material = scene.materials[i];\r\n if (((material.name && regExp.test(material.name)) ||\r\n (material.id && material.id == originalExpression) ||\r\n (material.metadata && !material.metadata.isRealMaterial && material.metadata.originalMaterialID == originalExpression)) &&\r\n this.verifyFilter(material.id, filter))\r\n materials.push(material);\r\n }\r\n }\r\n return materials;\r\n }\r\n getOffloadedMaterialIDs(zkScene, scene, filter, regExp, originalExpression) {\r\n const materialIDs = [];\r\n if (scene && scene instanceof BABYLON.Scene && scene.metadata && scene.metadata.offloadedMaterials) {\r\n for (let key in scene.metadata.offloadedMaterials) {\r\n const info = scene.metadata.offloadedMaterials[key];\r\n if (((info.name && regExp.test(info.name)) ||\r\n (key && key == originalExpression)) &&\r\n this.verifyFilter(key, filter))\r\n materialIDs.push(key);\r\n }\r\n }\r\n return materialIDs;\r\n }\r\n getDelayedMaterialIDs(zkScene, scene, filter, regExp, originalExpression) {\r\n const materialIDs = [];\r\n if (scene && scene instanceof BABYLON.Scene && scene.metadata && scene.metadata.delayedMaterials) {\r\n for (let key in scene.metadata.delayedMaterials) {\r\n const info = scene.metadata.delayedMaterials[key];\r\n if (((info.name && regExp.test(info.name)) ||\r\n (key && key == originalExpression)) &&\r\n this.verifyFilter(key, filter))\r\n materialIDs.push(key);\r\n }\r\n }\r\n return materialIDs;\r\n }\r\n getLights(zkScene, scene, filter, regExp, originalExpression) {\r\n const lights = [];\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.lights.length; i++) {\r\n const light = scene.lights[i];\r\n if (((light.name && regExp.test(light.name)) ||\r\n (light.id && light.id == originalExpression)) &&\r\n this.verifyFilter(light.id, filter))\r\n lights.push(light);\r\n }\r\n }\r\n return lights;\r\n }\r\n getCameras(zkScene, scene, filter, regExp, originalExpression) {\r\n const cameras = [];\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.cameras.length; i++) {\r\n const camera = scene.cameras[i];\r\n if (((camera.name && regExp.test(camera.name)) ||\r\n (camera.id && camera.id == originalExpression)) &&\r\n this.verifyFilter(camera.id, filter))\r\n cameras.push(camera);\r\n }\r\n }\r\n return cameras;\r\n }\r\n getCameraLocations(zkScene, scene, filter, regExp) {\r\n var locations = [];\r\n if (zkScene && zkScene instanceof Zakeke.Scene) {\r\n for (var i = 0; i < zkScene.get(\"cameraLocations\").length; i++) {\r\n var cameraLocation = zkScene.get(\"cameraLocations\").at(i);\r\n var id = cameraLocation.getLocationID();\r\n var name = cameraLocation.get(\"name\");\r\n if (((name && regExp.test(name)) ||\r\n (id && regExp.test(id))) &&\r\n this.verifyFilter(id, filter))\r\n locations.push(cameraLocation);\r\n }\r\n }\r\n return locations;\r\n }\r\n getYesNoElements(zkScene, scene, filter, expression, type) {\r\n const elements = { yes: [], no: [] };\r\n // Le espressioni ammesse sono quelle con i caratteri jolly *\r\n // Es. A*ric* è soddisfatto da Apricena ma non da Apicena.\r\n // E' possibile concatenare più espressione usando il simbolo \";\" come separatore.\r\n // Es. \"classic_*;modern_*;sport_*\"\r\n const parts = expression.split(\";\");\r\n for (let i = 0; i < parts.length; i++) {\r\n const part = parts[i];\r\n let selectionExpression = part;\r\n let subMeshIndex = 0;\r\n if ((type & MPlaza.SceneElementType.SubMesh) == MPlaza.SceneElementType.SubMesh) {\r\n let idx = part.lastIndexOf(\"-\");\r\n if (idx != -1) {\r\n selectionExpression = part.substring(0, idx);\r\n let smidx = Number(part.substring(idx + 1));\r\n if (smidx && !isNaN(smidx)) {\r\n subMeshIndex = smidx;\r\n }\r\n }\r\n }\r\n const regExp = new RegExp(this.escapeRegExp(selectionExpression).replace(/\\\\\\*/g, \".*\"), \"i\");\r\n if ((type & MPlaza.SceneElementType.Mesh) == MPlaza.SceneElementType.Mesh) {\r\n const meshes = this.getYesNoMeshes(zkScene, scene, filter, regExp);\r\n Array.prototype.push.apply(elements.yes, meshes.yes);\r\n Array.prototype.push.apply(elements.no, meshes.no);\r\n }\r\n if ((type & MPlaza.SceneElementType.SubMesh) == MPlaza.SceneElementType.SubMesh) {\r\n const subMeshes = this.getYesNoSubMeshes(zkScene, scene, filter, regExp, subMeshIndex);\r\n Array.prototype.push.apply(elements.yes, subMeshes.yes);\r\n Array.prototype.push.apply(elements.no, subMeshes.no);\r\n }\r\n if ((type & MPlaza.SceneElementType.Material) == MPlaza.SceneElementType.Material) {\r\n const materials = this.getYesNoMaterials(zkScene, scene, filter, regExp);\r\n Array.prototype.push.apply(elements.yes, materials.yes);\r\n Array.prototype.push.apply(elements.no, materials.no);\r\n }\r\n if ((type & MPlaza.SceneElementType.Light) == MPlaza.SceneElementType.Light) {\r\n const lights = this.getYesNoLights(zkScene, scene, filter, regExp);\r\n Array.prototype.push.apply(elements.yes, lights.yes);\r\n Array.prototype.push.apply(elements.no, lights.no);\r\n }\r\n if ((type & MPlaza.SceneElementType.Camera) == MPlaza.SceneElementType.Camera) {\r\n const cameras = this.getYesNoCameras(zkScene, scene, filter, regExp);\r\n Array.prototype.push.apply(elements.yes, cameras.yes);\r\n Array.prototype.push.apply(elements.no, cameras.no);\r\n }\r\n if ((type & MPlaza.SceneElementType.CameraLocation) == MPlaza.SceneElementType.CameraLocation) {\r\n const locations = this.getYesNoCameraLocations(zkScene, scene, filter, regExp);\r\n Array.prototype.push.apply(elements.yes, locations.yes);\r\n Array.prototype.push.apply(elements.no, locations.no);\r\n }\r\n }\r\n return elements;\r\n }\r\n getYesNoMeshes(zkScene, scene, filter, regExp) {\r\n const elements = { yes: [], no: [] };\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.meshes.length; i++) {\r\n let mesh = scene.meshes[i];\r\n let arr = elements.no;\r\n if (((mesh.name && regExp.test(mesh.name)) ||\r\n (mesh.id && regExp.test(mesh.id))) &&\r\n this.verifyFilter(mesh.id, filter)) {\r\n arr = elements.yes;\r\n }\r\n arr.push(mesh);\r\n }\r\n }\r\n return elements;\r\n }\r\n getYesNoSubMeshes(zkScene, scene, filter, regExp, subMeshIndex) {\r\n const elements = { yes: [], no: [] };\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.meshes.length; i++) {\r\n let mesh = scene.meshes[i];\r\n if (((mesh.name && regExp.test(mesh.name)) ||\r\n (mesh.id && regExp.test(mesh.id))) &&\r\n this.verifyFilter(mesh.id, filter) &&\r\n mesh.subMeshes) {\r\n for (let j = 0; j < mesh.subMeshes.length; j++) {\r\n if (j == subMeshIndex)\r\n elements.yes.push(mesh.subMeshes[j]);\r\n else\r\n elements.no.push(mesh.subMeshes[j]);\r\n }\r\n }\r\n }\r\n }\r\n return elements;\r\n }\r\n getYesNoMaterials(zkScene, scene, filter, regExp) {\r\n const elements = { yes: [], no: [] };\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.materials.length; i++) {\r\n let material = scene.materials[i];\r\n if (((material.name && regExp.test(material.name)) ||\r\n (material.id && regExp.test(material.id))) &&\r\n this.verifyFilter(material.id, filter)) {\r\n elements.yes.push(material);\r\n }\r\n else {\r\n elements.no.push(material);\r\n }\r\n }\r\n }\r\n return elements;\r\n }\r\n getYesNoLights(zkScene, scene, filter, regExp) {\r\n const elements = { yes: [], no: [] };\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.lights.length; i++) {\r\n let light = scene.lights[i];\r\n if (((light.name && regExp.test(light.name)) ||\r\n (light.id && regExp.test(light.id))) &&\r\n this.verifyFilter(light.id, filter)) {\r\n elements.yes.push(light);\r\n }\r\n else {\r\n elements.no.push(light);\r\n }\r\n }\r\n }\r\n return elements;\r\n }\r\n getYesNoCameras(zkScene, scene, filter, regExp) {\r\n const elements = { yes: [], no: [] };\r\n if (scene && scene instanceof BABYLON.Scene) {\r\n for (let i = 0; i < scene.cameras.length; i++) {\r\n let camera = scene.cameras[i];\r\n if (((camera.name && regExp.test(camera.name)) ||\r\n (camera.id && regExp.test(camera.id))) &&\r\n this.verifyFilter(camera.id, filter)) {\r\n elements.yes.push(camera);\r\n }\r\n else {\r\n elements.no.push(camera);\r\n }\r\n }\r\n }\r\n return elements;\r\n }\r\n getYesNoCameraLocations(zkScene, scene, filter, regExp) {\r\n const elements = { yes: [], no: [] };\r\n if (zkScene && zkScene instanceof Zakeke.Scene) {\r\n for (let i = 0; i < zkScene.get(\"cameraLocations\").length; i++) {\r\n let cameraLocation = zkScene.get(\"cameraLocations\").at(i);\r\n let id = cameraLocation.getLocationID();\r\n let name = cameraLocation.get(\"name\");\r\n if (((name && regExp.test(name)) ||\r\n (id && regExp.test(id))) &&\r\n this.verifyFilter(id, filter)) {\r\n elements.yes.push(cameraLocation);\r\n }\r\n else {\r\n elements.no.push(cameraLocation);\r\n }\r\n }\r\n }\r\n return elements;\r\n }\r\n escapeRegExp(str) {\r\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n }\r\n verifyFilter(id, filter) {\r\n if (!filter)\r\n return true;\r\n if (filter.length == 0)\r\n return true;\r\n return filter.indexOf(id) !== -1;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/Shadows/InnerShadow.ts\":\n/*!******************************************************!*\\\n !*** ../../3D/src/Components/Shadows/InnerShadow.ts ***!\n \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"InnerShadow\": () => (/* binding */ InnerShadow)\n/* harmony export */ });\n/* harmony import */ var _ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ProceduralTextures/ForegroundBackgroundProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/ForegroundBackgroundProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ProceduralTextures/BlurXProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurXProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ProceduralTextures/BlurYProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurYProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_MoveProceduralTexture__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ProceduralTextures/MoveProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/MoveProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ProceduralTextures/MultiplyProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/MultiplyProceduralTexture.ts\");\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass InnerShadow {\r\n constructor(baseTexture, size, config, scene) {\r\n this._baseTexture = baseTexture;\r\n this._size = size;\r\n this._scene = scene;\r\n this._mask = new _ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.ForegroundBackgroundProceduralTexture(\"mask\", this._size, this._scene, this._baseTexture);\r\n this._mask.backColor = new BABYLON.Vector3(0, 0, 0);\r\n this._mask.foreColor = new BABYLON.Vector3(1, 1, 1);\r\n this._mask.refreshRate = 0;\r\n this._shadow = new _ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.ForegroundBackgroundProceduralTexture(\"shadow\", this._size, this._scene, this._baseTexture);\r\n this._shadow.backColor = new BABYLON.Vector3(0.1, 0.1, 0.1);\r\n this._shadow.foreColor = new BABYLON.Vector3(1, 1, 1);\r\n this._shadow.refreshRate = 0;\r\n this._shadowBlurX = new _ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_1__.BlurXProceduralTexture(\"shadow_blurX\", this._size, this._scene, this._shadow);\r\n this._shadowBlurX.blur = 5;\r\n this._shadowBlurX.refreshRate = 0;\r\n this._shadowBlurY = new _ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_2__.BlurYProceduralTexture(\"shadow_blurY\", this._size, this._scene, this._shadowBlurX);\r\n this._shadowBlurY.blur = 5;\r\n this._shadowBlurY.refreshRate = 0;\r\n this._shadowMove = new _ProceduralTextures_MoveProceduralTexture__WEBPACK_IMPORTED_MODULE_3__.MoveProceduralTexture(\"shadow_move\", this._size, this._scene, this._shadowBlurY);\r\n this._shadowMove.offset = new BABYLON.Vector2(2.5, 2.5);\r\n this._shadowMove.refreshRate = 0;\r\n this._lightmap = new _ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_4__.MultiplyProceduralTexture(\"lightmap\", this._size, this._scene, this._shadowMove, this._mask);\r\n this._lightmap.refreshRate = 0;\r\n this.updateParameters(config);\r\n }\r\n updateParameters(config) {\r\n if (config) {\r\n let backColor = new BABYLON.Vector3(0, 0, 0);\r\n if (config.get(\"color\")) {\r\n const color = BABYLON.Color3.FromHexString(config.get(\"color\"));\r\n backColor = new BABYLON.Vector3(color.r, color.g, color.b);\r\n }\r\n this._shadow.backColor = backColor;\r\n let distance = 1;\r\n let angle = 135;\r\n if (config.get(\"angle\") !== undefined && config.get(\"angle\") !== null)\r\n angle = config.get(\"angle\");\r\n if (config.get(\"distance\") != undefined && config.get(\"distance\") !== null)\r\n distance = config.get(\"distance\");\r\n let radians = angle * Math.PI / 180;\r\n radians = this.wrapPi(radians);\r\n const xDistance = Math.cos(radians) * distance;\r\n const yDistance = Math.sin(radians) * distance;\r\n this._shadowMove.offset = new BABYLON.Vector2(-xDistance, yDistance);\r\n let blur = 5;\r\n if (config.get(\"size\") !== undefined && config.get(\"size\") !== null)\r\n blur = Math.max(0, Math.min(100, config.get(\"size\")));\r\n this._shadowBlurX.blur = blur;\r\n this._shadowBlurY.blur = blur;\r\n }\r\n }\r\n // riporta angle nel range -180, + 180\r\n wrapPi(angle) {\r\n if (Math.abs(angle) > Math.PI) {\r\n var twoppi = 2.0 * Math.PI;\r\n var revolutions = Math.floor((angle + Math.PI) * (1.0 / twoppi));\r\n angle -= revolutions * twoppi;\r\n }\r\n return angle;\r\n }\r\n dispose() {\r\n this._mask.dispose();\r\n this._shadow.dispose();\r\n this._shadowBlurX.dispose();\r\n this._shadowBlurY.dispose();\r\n this._shadowMove.dispose();\r\n this._lightmap.dispose();\r\n }\r\n getInnerShadowTextureAsync(baseTexture) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.updateAsync(baseTexture);\r\n return this._lightmap;\r\n });\r\n }\r\n updateAsync(baseTexture, config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.updateParameters(config);\r\n this._baseTexture = baseTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_5__.SceneHelper.whenTextureIsReadyAsync(this._baseTexture);\r\n this._mask.baseTexture = this._baseTexture;\r\n yield this._mask.isReadyAsync();\r\n this._mask.render();\r\n this._shadow.baseTexture = this._baseTexture;\r\n yield this._shadow.isReadyAsync();\r\n this._shadow.render();\r\n yield this._shadowBlurX.isReadyAsync();\r\n this._shadowBlurX.render();\r\n yield this._shadowBlurY.isReadyAsync();\r\n this._shadowBlurY.render();\r\n yield this._shadowMove.isReadyAsync();\r\n this._shadowMove.render();\r\n yield this._lightmap.isReadyAsync();\r\n this._lightmap.render();\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/Shadows/OuterShadow.ts\":\n/*!******************************************************!*\\\n !*** ../../3D/src/Components/Shadows/OuterShadow.ts ***!\n \\******************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"OuterShadow\": () => (/* binding */ OuterShadow)\n/* harmony export */ });\n/* harmony import */ var _ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ProceduralTextures/ForegroundBackgroundProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/ForegroundBackgroundProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ProceduralTextures/BlurXProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurXProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../ProceduralTextures/BlurYProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurYProceduralTexture.ts\");\n/* harmony import */ var _ProceduralTextures_MoveProceduralTexture__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ProceduralTextures/MoveProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/MoveProceduralTexture.ts\");\n/* harmony import */ var _SceneHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\nclass OuterShadow {\r\n constructor(baseTexture, size, config, scene) {\r\n this._size = size;\r\n this._baseTexture = baseTexture;\r\n this._scene = scene;\r\n this._shadow = new _ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_0__.ForegroundBackgroundProceduralTexture(\"shadow\", this._size, this._scene, this._baseTexture);\r\n this._shadow.backColor = new BABYLON.Vector3(1, 1, 1);\r\n this._shadow.foreColor = new BABYLON.Vector3(0.2, 0.2, 0.2);\r\n this._shadow.refreshRate = 0;\r\n this._shadowBlurX = new _ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_1__.BlurXProceduralTexture(\"shadow_blurX\", this._size, this._scene, this._shadow);\r\n this._shadowBlurX.blur = 15;\r\n this._shadowBlurX.refreshRate = 0;\r\n this._shadowBlurY = new _ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_2__.BlurYProceduralTexture(\"shadow_blurY\", this._size, this._scene, this._shadowBlurX);\r\n this._shadowBlurY.blur = 15;\r\n this._shadowBlurY.refreshRate = 0;\r\n this._shadowMove = new _ProceduralTextures_MoveProceduralTexture__WEBPACK_IMPORTED_MODULE_3__.MoveProceduralTexture(\"shadow_move\", this._size, this._scene, this._shadowBlurY);\r\n this._shadowMove.offset = new BABYLON.Vector2(2.5, 2.5);\r\n this._shadowMove.refreshRate = 0;\r\n this.updateParameters(config);\r\n }\r\n updateParameters(config) {\r\n if (config) {\r\n var foreColor = new BABYLON.Vector3(0, 0, 0);\r\n if (config.get(\"color\")) {\r\n var color = BABYLON.Color3.FromHexString(config.get(\"color\"));\r\n foreColor = new BABYLON.Vector3(color.r, color.g, color.b);\r\n }\r\n this._shadow.foreColor = foreColor;\r\n let distance = 1;\r\n let angle = 135;\r\n if (config.get(\"angle\") !== undefined && config.get(\"angle\") !== null)\r\n angle = config.get(\"angle\");\r\n if (config.get(\"distance\") != undefined && config.get(\"distance\") !== null)\r\n distance = config.get(\"distance\");\r\n let radians = angle * Math.PI / 180;\r\n radians = this.wrapPi(radians);\r\n const xDistance = Math.cos(radians) * distance;\r\n const yDistance = Math.sin(radians) * distance;\r\n this._shadowMove.offset = new BABYLON.Vector2(-xDistance, yDistance);\r\n let blur = 5;\r\n if (config.get(\"size\") !== undefined && config.get(\"size\") !== null)\r\n blur = Math.max(0, Math.min(100, config.get(\"size\")));\r\n this._shadowBlurX.blur = blur;\r\n this._shadowBlurY.blur = blur;\r\n }\r\n }\r\n wrapPi(angle) {\r\n if (Math.abs(angle) > Math.PI) {\r\n var twoppi = 2.0 * Math.PI;\r\n var revolutions = Math.floor((angle + Math.PI) * (1.0 / twoppi));\r\n angle -= revolutions * twoppi;\r\n }\r\n return angle;\r\n }\r\n dispose() {\r\n this._shadow.dispose();\r\n this._shadowBlurX.dispose();\r\n this._shadowBlurY.dispose();\r\n this._shadowMove.dispose();\r\n }\r\n getOuterShadowTextureAsync(baseTexture) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.updateAsync(baseTexture);\r\n return this._shadowMove;\r\n });\r\n }\r\n updateAsync(baseTexture, config) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.updateParameters(config);\r\n this._baseTexture = baseTexture;\r\n yield _SceneHelper__WEBPACK_IMPORTED_MODULE_4__.SceneHelper.whenTextureIsReadyAsync(this._baseTexture);\r\n this._shadow.baseTexture = this._baseTexture;\r\n yield this._shadow.isReadyAsync();\r\n this._shadow.render();\r\n yield this._shadowBlurX.isReadyAsync();\r\n this._shadowBlurX.render();\r\n yield this._shadowBlurY.isReadyAsync();\r\n this._shadowBlurY.render();\r\n yield this._shadowMove.isReadyAsync();\r\n this._shadowMove.render();\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Components/USDZ/UsdzHelper.ts\":\n/*!**************************************************!*\\\n !*** ../../3D/src/Components/USDZ/UsdzHelper.ts ***!\n \\**************************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"UsdzHelper\": () => (/* binding */ UsdzHelper)\n/* harmony export */ });\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nclass UsdzHelper {\r\n static convertGlbToUsdz(glbUrl) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n let usdz = null;\r\n /* Test without renderer\r\n const localCanvas = document.createElement('canvas');\r\n localCanvas.id = \"Threejs - usdz converter\";\r\n localCanvas.width = 1024;\r\n localCanvas.height = 1024;\r\n \r\n let camera, scene, renderer;\r\n \r\n renderer = new THREE.WebGLRenderer({ antialias: true, canvas: localCanvas });\r\n renderer.setPixelRatio(window.devicePixelRatio);\r\n renderer.setSize(window.innerWidth, window.innerHeight);\r\n renderer.toneMapping = THREE.ACESFilmicToneMapping;\r\n renderer.outputEncoding = THREE.sRGBEncoding;\r\n */\r\n //document.body.appendChild(renderer.domElement);\r\n //camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.25, 20);\r\n //camera.position.set(- 2.5, 0.6, 3.0);\r\n //const pmremGenerator = new THREE.PMREMGenerator(renderer);\r\n //scene = new THREE.Scene();\r\n //scene.background = new THREE.Color(0xf0f0f0);\r\n //scene.environment = pmremGenerator.fromScene( new RoomEnvironment(), 0.04 ).texture;\r\n const loader = new THREE.GLTFLoader();\r\n loader.load(glbUrl, function (gltf) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n //scene.add(gltf.scene);\r\n // modifico la geometria in base alle trasformazioni\r\n // gltf.scene.scale.multiplyScalar(scalingFactor); // scaling\r\n gltf.scene.updateWorldMatrix(true, true);\r\n //render();\r\n // USDZ\r\n const exporter = new THREE.USDZExporter();\r\n const arraybuffer = yield exporter.parse(gltf.scene);\r\n usdz = new Blob([arraybuffer], { type: 'model/vnd.usdz+zip' });\r\n //renderer.dispose();\r\n resolve(usdz);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Enumerations.ts\":\n/*!************************************!*\\\n !*** ../../3D/src/Enumerations.ts ***!\n \\************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EditingMode\": () => (/* binding */ EditingMode),\n/* harmony export */ \"EnvironmentMode\": () => (/* binding */ EnvironmentMode),\n/* harmony export */ \"ZakekeEnvironment\": () => (/* binding */ ZakekeEnvironment)\n/* harmony export */ });\nvar EnvironmentMode;\r\n(function (EnvironmentMode) {\r\n EnvironmentMode[EnvironmentMode[\"Editor\"] = 1] = \"Editor\";\r\n EnvironmentMode[EnvironmentMode[\"Viewer\"] = 2] = \"Viewer\";\r\n})(EnvironmentMode || (EnvironmentMode = {}));\r\nvar EditingMode;\r\n(function (EditingMode) {\r\n EditingMode[\"None\"] = \"None\";\r\n EditingMode[\"Translate\"] = \"Translate\";\r\n EditingMode[\"Rotate\"] = \"Rotate\";\r\n EditingMode[\"Scaling\"] = \"Scaling\";\r\n})(EditingMode || (EditingMode = {}));\r\nvar ZakekeEnvironment;\r\n(function (ZakekeEnvironment) {\r\n ZakekeEnvironment[ZakekeEnvironment[\"Customizer\"] = 1] = \"Customizer\";\r\n ZakekeEnvironment[ZakekeEnvironment[\"Composer\"] = 2] = \"Composer\";\r\n ZakekeEnvironment[ZakekeEnvironment[\"Viewer\"] = 3] = \"Viewer\";\r\n})(ZakekeEnvironment || (ZakekeEnvironment = {}));\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Helpers/debounce.ts\":\n/*!****************************************!*\\\n !*** ../../3D/src/Helpers/debounce.ts ***!\n \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"debounce\": () => (/* binding */ debounce)\n/* harmony export */ });\n/*\r\nexport function debounceAsync any>(time: number, func: T): (...funcArgs: Parameters) => Promise> {\r\n let timeout: Timeout;\r\n\r\n return (...args: Parameters): Promise> => new Promise((resolve) => {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => {\r\n resolve(func(...args));\r\n }, time)\r\n });\r\n}\r\n*/\r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nfunction debounce(func, waitMilliseconds = 50, options = {\r\n isImmediate: false\r\n}) {\r\n let timeoutId;\r\n return function (...args) {\r\n const context = this;\r\n const doLater = function () {\r\n timeoutId = undefined;\r\n if (!options.isImmediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n const shouldCallNow = options.isImmediate && timeoutId === undefined;\r\n if (timeoutId !== undefined) {\r\n clearTimeout(timeoutId);\r\n }\r\n timeoutId = setTimeout(doLater, waitMilliseconds);\r\n if (shouldCallNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n}\r\nfunction pippo(name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return;\r\n });\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Helpers/utils.ts\":\n/*!*************************************!*\\\n !*** ../../3D/src/Helpers/utils.ts ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Utils\": () => (/* binding */ Utils)\n/* harmony export */ });\n/// \r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nclass Utils {\r\n static isIPhoneX() {\r\n // Really basic check for the ios platform\r\n // https://stackoverflow.com/questions/9038625/detect-if-device-is-ios\r\n const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\r\n // Get the device pixel ratio\r\n const ratio = window.devicePixelRatio || 1;\r\n // Define the users device screen dimensions\r\n const screen = {\r\n width: window.screen.width * ratio,\r\n height: window.screen.height * ratio\r\n };\r\n // iPhone X Detection\r\n if (iOS && screen.width === 1125 && screen.height === 2436) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n static isAndroid() {\r\n return /android/i.test(navigator.userAgent);\r\n }\r\n static isiOS() {\r\n return (/iPad|iPhone|iPod/.test(navigator.userAgent) && !self.MSStream) ||\r\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);\r\n }\r\n static isMobile() {\r\n const userAgent = navigator.userAgent || navigator.vendor || self[\"opera\"];\r\n return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i\r\n .test(userAgent) ||\r\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i\r\n .test(userAgent.substr(0, 4));\r\n }\r\n static getViewport() {\r\n const m = document.compatMode === 'CSS1Compat';\r\n return {\r\n l: window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),\r\n t: window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),\r\n w: window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),\r\n h: window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)\r\n };\r\n }\r\n static getContrastYIQ(r, g, b) {\r\n var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\r\n return (yiq >= 128) ? 'black' : 'white';\r\n }\r\n static getContrastYIQHex(hexcolor) {\r\n var r = parseInt(hexcolor.substr(0, 2), 16);\r\n var g = parseInt(hexcolor.substr(2, 2), 16);\r\n var b = parseInt(hexcolor.substr(4, 2), 16);\r\n var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\r\n return (yiq >= 128) ? 'black' : 'white';\r\n }\r\n static arrayContains(array, itemToSearch) {\r\n if (typeof itemToSearch === \"undefined\" || typeof itemToSearch === null)\r\n return false;\r\n const contains = function (array, needle) {\r\n // Per spec, the way to identify NaN is that it is not equal to itself\r\n let findNaN = needle !== needle;\r\n let indexOf;\r\n if (!findNaN && typeof Array.prototype.indexOf === 'function') {\r\n indexOf = Array.prototype.indexOf;\r\n return indexOf.call(array, needle) > -1;\r\n }\r\n else {\r\n indexOf = function (array, needle) {\r\n var i = -1, index = -1;\r\n for (i = 0; i < array.length; i++) {\r\n var item = array[i];\r\n if ((findNaN && item !== item) || item === needle) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n return index;\r\n };\r\n return indexOf(array, needle) > -1;\r\n }\r\n };\r\n return contains(array, itemToSearch);\r\n }\r\n static getColorBrightness(hex) {\r\n // validate hex string\r\n hex = String(hex).replace(/[^0-9a-f]/gi, '');\r\n if (hex.length < 6) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n var r = parseInt(hex.substr(0 * 2, 2), 16);\r\n var g = parseInt(hex.substr(1 * 2, 2), 16);\r\n var b = parseInt(hex.substr(2 * 2, 2), 16);\r\n var brightness = Math.sqrt(r * r * 0.241 +\r\n g * g * 0.691 +\r\n b * b * 0.068);\r\n return brightness;\r\n }\r\n static isColorDark(hex) {\r\n return Utils.getColorBrightness(hex) < 130;\r\n }\r\n static changeColorLuminosity(hex, lum = 0) {\r\n // validate hex string\r\n hex = String(hex).replace(/[^0-9a-f]/gi, '');\r\n if (hex.length < 6) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n lum = lum || 0;\r\n // convert to decimal and change luminosity\r\n var rgb = \"#\", c, i;\r\n for (i = 0; i < 3; i++) {\r\n c = parseInt(hex.substr(i * 2, 2), 16);\r\n c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);\r\n rgb += (\"00\" + c).substr(c.length);\r\n }\r\n return rgb;\r\n }\r\n static cropImageTransparency(imageDataURI, targetWidth, targetHeight, callback) {\r\n var img = new Image();\r\n var $canvas = $(\"\"); // create an offscreen canvas\r\n var canvas = $canvas[0];\r\n var context = canvas.getContext(\"2d\");\r\n img.crossOrigin = \"anonymous\";\r\n img.onload = function () {\r\n $canvas.attr({ width: img.width, height: img.height });\r\n context = canvas.getContext(\"2d\");\r\n if (context) {\r\n context.drawImage(img, 0, 0);\r\n let dataUrl = Utils.removeBlanks(canvas, img.width, img.height, targetWidth, targetHeight);\r\n if (callback)\r\n callback(dataUrl);\r\n }\r\n else {\r\n alert('Get a real browser!');\r\n }\r\n };\r\n img.src = imageDataURI;\r\n }\r\n static trimImageAsync(imageDataURI) {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const $canvas = $(\"\"); // create an offscreen canvas\r\n let canvas = $canvas[0];\r\n let context = canvas.getContext(\"2d\");\r\n img.crossOrigin = \"anonymous\";\r\n img.onload = function () {\r\n $canvas.attr({ width: img.width, height: img.height });\r\n context = canvas.getContext(\"2d\");\r\n if (context) {\r\n context.drawImage(img, 0, 0);\r\n let dataUrl = Utils.trimCanvas(canvas);\r\n resolve(dataUrl);\r\n }\r\n else {\r\n reject(new Error(\"HTML5 Canvas not supported\"));\r\n }\r\n };\r\n img.src = imageDataURI;\r\n });\r\n }\r\n static trimCanvas(canvas) {\r\n const context = canvas.getContext(\"2d\");\r\n if (!context)\r\n return null;\r\n const imgWidth = canvas.width;\r\n const imgHeight = canvas.height;\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n const data = imageData.data;\r\n const getAlpha = (x, y) => data[(imgWidth * y + x) * 4 + 3];\r\n const getRBGA = (x, y) => {\r\n return {\r\n red: data[(imgWidth * y + x) * 4],\r\n green: data[(imgWidth * y + x) * 4 + 1],\r\n blue: data[(imgWidth * y + x) * 4 + 2],\r\n alpha: data[(imgWidth * y + x) * 4 + 3]\r\n };\r\n };\r\n const isTransparent = (alpha) => alpha < 10;\r\n const scanY = (fromTop) => {\r\n const offset = fromTop ? 1 : -1;\r\n // loop through each row\r\n for (var y = fromTop ? 0 : imgHeight - 1; fromTop ? (y < imgHeight) : (y > -1); y += offset) {\r\n // loop through each column\r\n for (var x = 0; x < imgWidth; x++) {\r\n if (!isTransparent(getAlpha(x, y))) {\r\n return y;\r\n }\r\n }\r\n }\r\n return null; // all image is transparent\r\n };\r\n const scanX = (fromLeft) => {\r\n const offset = fromLeft ? 1 : -1;\r\n // loop through each column\r\n for (var x = fromLeft ? 0 : imgWidth - 1; fromLeft ? (x < imgWidth) : (x > -1); x += offset) {\r\n // loop through each row\r\n for (var y = 0; y < imgHeight; y++) {\r\n if (!isTransparent(getAlpha(x, y))) {\r\n return x;\r\n }\r\n }\r\n }\r\n return null; // all image is transparent\r\n };\r\n const cropTop = scanY(true);\r\n const cropBottom = scanY(false);\r\n const cropLeft = scanX(true);\r\n const cropRight = scanX(false);\r\n if (cropTop != null && cropBottom != null && cropLeft != null && cropRight != null) {\r\n const cropWidth = cropRight - cropLeft + 1;\r\n const cropHeight = cropBottom - cropTop + 1;\r\n const $croppedCanvas = $(\"\").attr({ width: cropWidth, height: cropHeight });\r\n const croppedCanvas = $croppedCanvas[0];\r\n var croppedContext = croppedCanvas.getContext(\"2d\");\r\n if (!croppedContext)\r\n return null;\r\n croppedContext.drawImage(canvas, cropLeft, cropTop, cropWidth, cropHeight, 0, 0, cropWidth, cropHeight);\r\n var croppedImageData = croppedContext.getImageData(0, 0, croppedCanvas.width, croppedCanvas.height);\r\n var croppedDataUrl = croppedCanvas.toDataURL();\r\n return croppedDataUrl;\r\n }\r\n else\r\n return null;\r\n }\r\n static cropImageTransparencyAsync(imageDataURI, targetWidth, targetHeight) {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const $canvas = $(\"\"); // create an offscreen canvas\r\n let canvas = $canvas[0];\r\n let context = canvas.getContext(\"2d\");\r\n img.crossOrigin = \"anonymous\";\r\n img.onload = function () {\r\n $canvas.attr({ width: img.width, height: img.height });\r\n context = canvas.getContext(\"2d\");\r\n if (context) {\r\n context.drawImage(img, 0, 0);\r\n let dataUrl = Utils.removeBlanks(canvas, img.width, img.height, targetWidth, targetHeight);\r\n resolve(dataUrl);\r\n }\r\n else {\r\n reject(new Error(\"HTML5 Canvas not supported\"));\r\n }\r\n };\r\n img.src = imageDataURI;\r\n });\r\n }\r\n ;\r\n static removeBlanks(canvas, imgWidth, imgHeight, targetWidth, targetHeight) {\r\n const context = canvas.getContext(\"2d\");\r\n if (!context)\r\n return null;\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n const data = imageData.data;\r\n const getAlpha = (x, y) => data[(imgWidth * y + x) * 4 + 3];\r\n const getRBGA = (x, y) => {\r\n return {\r\n red: data[(imgWidth * y + x) * 4],\r\n green: data[(imgWidth * y + x) * 4 + 1],\r\n blue: data[(imgWidth * y + x) * 4 + 2],\r\n alpha: data[(imgWidth * y + x) * 4 + 3]\r\n };\r\n };\r\n const isTransparent = (alpha) => alpha === 0;\r\n const scanY = (fromTop) => {\r\n const offset = fromTop ? 1 : -1;\r\n // loop through each row\r\n for (var y = fromTop ? 0 : imgHeight - 1; fromTop ? (y < imgHeight) : (y > -1); y += offset) {\r\n // loop through each column\r\n for (var x = 0; x < imgWidth; x++) {\r\n if (!isTransparent(getAlpha(x, y))) {\r\n return y;\r\n }\r\n }\r\n }\r\n return null; // all image is transparent\r\n };\r\n const scanX = (fromLeft) => {\r\n const offset = fromLeft ? 1 : -1;\r\n // loop through each column\r\n for (var x = fromLeft ? 0 : imgWidth - 1; fromLeft ? (x < imgWidth) : (x > -1); x += offset) {\r\n // loop through each row\r\n for (var y = 0; y < imgHeight; y++) {\r\n if (!isTransparent(getAlpha(x, y))) {\r\n return x;\r\n }\r\n }\r\n }\r\n return null; // all image is transparent\r\n };\r\n const cropTop = scanY(true);\r\n const cropBottom = scanY(false);\r\n const cropLeft = scanX(true);\r\n const cropRight = scanX(false);\r\n if (cropTop != null && cropBottom != null && cropLeft != null && cropRight != null) {\r\n const cropWidth = cropRight - cropLeft;\r\n const cropHeight = cropBottom - cropTop;\r\n // Mantain proportions in canvas\r\n const canvasWidth = targetWidth;\r\n const canvasHeight = targetHeight;\r\n const ratioX = canvasWidth / cropWidth;\r\n const ratioY = canvasHeight / cropHeight;\r\n let finalWidth = cropWidth * ratioX;\r\n let finalHeight = cropHeight * ratioX;\r\n if (finalHeight > canvasHeight) {\r\n finalWidth = cropWidth * ratioY;\r\n finalHeight = cropHeight * ratioY;\r\n }\r\n const $croppedCanvas = $(\"\").attr({ width: canvasWidth, height: canvasHeight });\r\n const croppedCanvas = $croppedCanvas[0];\r\n var croppedContext = croppedCanvas.getContext(\"2d\");\r\n if (!croppedContext)\r\n return null;\r\n croppedContext.drawImage(canvas, cropLeft, cropTop, cropWidth, cropHeight, (canvasWidth - finalWidth) / 2, (canvasHeight - finalHeight) / 2, finalWidth, finalHeight);\r\n var croppedImageData = croppedContext.getImageData(0, 0, croppedCanvas.width, croppedCanvas.height);\r\n var croppedDataUrl = croppedCanvas.toDataURL();\r\n return croppedDataUrl;\r\n }\r\n else\r\n return null;\r\n }\r\n /** Draw an image from data uri on a width * height canvas, create canvas inside method and return the data uri of canvas */\r\n static resizeImageFromDataUri(dataUrl, width, height, padding) {\r\n return new Promise(resolve => {\r\n const img = new Image();\r\n img.crossOrigin = \"anonymous\";\r\n img.onload = function () {\r\n const $canvas = $(\"\"); // create an offscreen canvas\r\n let canvas = $canvas[0];\r\n let context = canvas.getContext(\"2d\");\r\n if (context) {\r\n canvas.width = width;\r\n canvas.height = height;\r\n // Fit the image\r\n const ratio = Math.min(width / img.width, height / img.height);\r\n const newImageWidth = img.width * ratio;\r\n const newImageHeight = img.height * ratio;\r\n context.drawImage(img, 0, 0, img.width, img.height, (width - newImageWidth + padding) / 2, (height - newImageHeight + padding) / 2, newImageWidth - padding, newImageHeight - padding);\r\n const dataUrl = canvas.toDataURL();\r\n resolve(dataUrl);\r\n }\r\n };\r\n img.src = dataUrl;\r\n });\r\n }\r\n static getColorImage(hex, width, height) {\r\n var $canvas = $(\"\"); // create an offscreen canvas\r\n $canvas.attr({ width: width, height: height });\r\n var canvas = $canvas[0];\r\n var context = canvas.getContext(\"2d\");\r\n if (context) {\r\n context.fillStyle = hex;\r\n context.fillRect(0, 0, width, height);\r\n var dataUrl = canvas.toDataURL();\r\n return dataUrl;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n /**\r\n * Split a string into chunks of the given size\r\n * @param {String} str is the String to split\r\n * @param {Number} size is the size you of the cuts\r\n * @return {Array} an Array with the strings\r\n */\r\n static chunkString(str, size) {\r\n // Rollup will try to execute this function with str as undefined. IDK\r\n if (!str)\r\n return null;\r\n return str.match(new RegExp('.[^]{1,' + size + '}', 'g'));\r\n }\r\n static getStringHashCode(str) {\r\n let hash = 0, i, chr;\r\n if (str.length === 0)\r\n return hash;\r\n for (i = 0; i < str.length; i++) {\r\n chr = str.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + chr;\r\n hash |= 0; // Convert to 32bit integer\r\n }\r\n return hash;\r\n }\r\n static getAbsoluteUrl(relative) {\r\n var tempLink = document.createElement(\"a\");\r\n tempLink.href = relative;\r\n const absolute = tempLink.href;\r\n return absolute;\r\n }\r\n static dataURItoBlob(dataURI) {\r\n // convert base64 to raw binary data held in a string\r\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\r\n var byteString = atob(dataURI.split(',')[1]);\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\r\n // write the bytes of the string to an ArrayBuffer\r\n var ab = new ArrayBuffer(byteString.length);\r\n var ia = new Uint8Array(ab);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n // write the ArrayBuffer to a blob, and you're done\r\n var bb = new Blob([ab], { type: mimeString });\r\n return bb;\r\n }\r\n static getRandomString(length, keyspace) {\r\n if ((typeof length !== 'number') && (length < 1)) {\r\n throw new RangeError('Length must be a positive integer!');\r\n }\r\n if (keyspace === undefined) {\r\n keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n }\r\n let result = '';\r\n const charactersLength = keyspace.length;\r\n for (var i = 0; i < length; i++) {\r\n result += keyspace.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return (result);\r\n }\r\n // Flip image vertically using canvas\r\n static flipImage(arrayBuffer, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve) => {\r\n const arrayBufferView = new Uint8Array(arrayBuffer);\r\n const blob = new Blob([arrayBufferView], { type });\r\n const urlCreator = window.URL || window.webkitURL;\r\n const imageUrl = urlCreator.createObjectURL(blob);\r\n // ArrayBuffer to image\r\n const image = new Image();\r\n image.src = imageUrl;\r\n image.onload = () => __awaiter(this, void 0, void 0, function* () {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n canvas.width = image.width;\r\n canvas.height = image.height;\r\n ctx.translate(0, image.height);\r\n ctx.scale(1, -1);\r\n ctx.drawImage(image, 0, 0);\r\n // Canvas to arraybuffer\r\n canvas.toBlob((blob) => {\r\n const reader = new FileReader();\r\n reader.addEventListener('loadend', () => {\r\n const arrayBuffer = reader.result;\r\n resolve(arrayBuffer);\r\n });\r\n reader.readAsArrayBuffer(blob);\r\n }, type);\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Interfaces/IDisposable.ts\":\n/*!**********************************************!*\\\n !*** ../../3D/src/Interfaces/IDisposable.ts ***!\n \\**********************************************/\n/***/ (() => {\n\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Interfaces/ISceneEditor.ts\":\n/*!***********************************************!*\\\n !*** ../../3D/src/Interfaces/ISceneEditor.ts ***!\n \\***********************************************/\n/***/ (() => {\n\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Interfaces/ISupportInitialize.ts\":\n/*!*****************************************************!*\\\n !*** ../../3D/src/Interfaces/ISupportInitialize.ts ***!\n \\*****************************************************/\n/***/ (() => {\n\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Layers/AxesLayer.ts\":\n/*!****************************************!*\\\n !*** ../../3D/src/Layers/AxesLayer.ts ***!\n \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"AxesLayer\": () => (/* binding */ AxesLayer)\n/* harmony export */ });\nclass AxesLayer {\r\n constructor(sceneEditor) {\r\n this._axisRoot = null;\r\n this._axes = [];\r\n this._sceneEditor = sceneEditor;\r\n if (!sceneEditor.engine)\r\n throw Error(\"LightsLayer requires a valid Babylon JS 3D Engine\");\r\n const engine = sceneEditor.engine;\r\n if (!sceneEditor.scene)\r\n throw Error(\"LightsLayer requires a valid Babylon JS 3D Scene\");\r\n this._editorScene = sceneEditor.scene;\r\n this._scene = new BABYLON.Scene(engine);\r\n this._scene.autoClear = false;\r\n this._scene.postProcessesEnabled = false;\r\n this._sceneEditor.addPreUpdateListener(() => this.onPreUpdate());\r\n this._sceneEditor.addPostUpdateListener(() => this.onPostUpdate());\r\n this.createAxes();\r\n }\r\n dispose() {\r\n if (this._scene) {\r\n this._scene.dispose();\r\n }\r\n }\r\n onPreUpdate() {\r\n if (!this._scene)\r\n return;\r\n // Update camera\r\n const camera = this._editorScene.activeCamera;\r\n if (camera) {\r\n this._scene.activeCamera = camera;\r\n if (this._axisRoot) {\r\n const distance = BABYLON.Vector3.Distance(camera.position, this._axisRoot.position) * 0.03;\r\n this._axisRoot.scaling = new BABYLON.Vector3(distance, distance, distance);\r\n this._axisRoot.computeWorldMatrix(true);\r\n }\r\n }\r\n }\r\n onPostUpdate() {\r\n // nothing to do\r\n }\r\n createAxes() {\r\n const size = 10;\r\n const scene = this._scene;\r\n const parent = new BABYLON.Mesh(\"axisRoot\", scene);\r\n parent.isVisible = this._sceneEditor.canShowAxes();\r\n const makeTextPlane = (text, color, size) => {\r\n let dynamicTexture = new BABYLON.DynamicTexture(\"DynamicTexture\", 50, scene, true);\r\n dynamicTexture.hasAlpha = true;\r\n dynamicTexture.drawText(text, 5, 40, \"bold 36px Arial\", color, \"transparent\", true);\r\n const plane = BABYLON.MeshBuilder.CreatePlane(\"TextPlane\", { size: size, updatable: true }, scene);\r\n const material = new BABYLON.StandardMaterial(\"TextPlaneMaterial\", scene);\r\n material.metadata = { isRealMaterial: false };\r\n material.backFaceCulling = false;\r\n material.specularColor = new BABYLON.Color3(0, 0, 0);\r\n material.diffuseTexture = dynamicTexture;\r\n plane.material = material;\r\n plane.metadata = { isRealMesh: false, isAxis: true };\r\n plane.parent = parent;\r\n plane.isVisible = this._sceneEditor.canShowAxes();\r\n return plane;\r\n };\r\n const axisX = BABYLON.Mesh.CreateLines(\"axisX\", [\r\n BABYLON.Vector3.Zero(),\r\n new BABYLON.Vector3(size, 0, 0),\r\n new BABYLON.Vector3(size * 0.95, 0.05 * size, 0),\r\n new BABYLON.Vector3(size, 0, 0),\r\n new BABYLON.Vector3(size * 0.95, -0.05 * size, 0)\r\n ], scene, true);\r\n axisX.metadata = { isRealMesh: false, isAxis: true };\r\n axisX.color = new BABYLON.Color3(1, 0, 0);\r\n axisX.parent = parent;\r\n axisX.isVisible = this._sceneEditor.canShowAxes();\r\n const xChar = makeTextPlane(\"X\", \"red\", size / 10);\r\n xChar.position = new BABYLON.Vector3(0.9 * size, -0.05 * size, 0);\r\n const axisY = BABYLON.Mesh.CreateLines(\"axisY\", [\r\n BABYLON.Vector3.Zero(),\r\n new BABYLON.Vector3(0, size, 0),\r\n new BABYLON.Vector3(-0.05 * size, size * 0.95, 0),\r\n new BABYLON.Vector3(0, size, 0),\r\n new BABYLON.Vector3(0.05 * size, size * 0.95, 0)\r\n ], scene, true);\r\n axisY.metadata = { isRealMesh: false, isAxis: true };\r\n axisY.color = new BABYLON.Color3(0, 1, 0);\r\n axisY.parent = parent;\r\n axisY.isVisible = this._sceneEditor.canShowAxes();\r\n const yChar = makeTextPlane(\"Y\", \"green\", size / 10);\r\n yChar.position = new BABYLON.Vector3(0, 0.9 * size, -0.05 * size);\r\n const axisZ = BABYLON.Mesh.CreateLines(\"axisZ\", [\r\n BABYLON.Vector3.Zero(),\r\n new BABYLON.Vector3(0, 0, size),\r\n new BABYLON.Vector3(0, -0.05 * size, size * 0.95),\r\n new BABYLON.Vector3(0, 0, size),\r\n new BABYLON.Vector3(0, 0.05 * size, size * 0.95)\r\n ], scene, true);\r\n axisZ.metadata = { isRealMesh: false, isAxis: true };\r\n axisZ.color = new BABYLON.Color3(0, 0, 1);\r\n axisZ.parent = parent;\r\n axisZ.isVisible = this._sceneEditor.canShowAxes();\r\n const zChar = makeTextPlane(\"Z\", \"blue\", size / 10);\r\n zChar.position = new BABYLON.Vector3(0, 0.05 * size, 0.9 * size);\r\n this._axisRoot = parent;\r\n this._axes.push(parent, axisX, axisY, axisZ, xChar, yChar, zChar);\r\n }\r\n refresh() {\r\n for (let i = 0; i < this._axes.length; i++) {\r\n const mesh = this._axes[i];\r\n mesh.isVisible = this._sceneEditor.canShowAxes();\r\n }\r\n }\r\n render() {\r\n if (this._scene && this._scene.activeCamera)\r\n this._scene.render();\r\n }\r\n getScene() {\r\n return this._scene;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Layers/LightsLayer.ts\":\n/*!******************************************!*\\\n !*** ../../3D/src/Layers/LightsLayer.ts ***!\n \\******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"LightsLayer\": () => (/* binding */ LightsLayer)\n/* harmony export */ });\nclass LightsLayer {\r\n constructor(sceneEditor) {\r\n this._lightMeshes = [];\r\n this._lightSelectedListeners = [];\r\n this._sceneEditor = sceneEditor;\r\n if (!sceneEditor.engine)\r\n throw Error(\"LightsLayer requires a valid Babylon JS 3D Engine\");\r\n const engine = sceneEditor.engine;\r\n if (!sceneEditor.scene)\r\n throw Error(\"LightsLayer requires a valid Babylon JS 3D Scene\");\r\n this._editorScene = sceneEditor.scene;\r\n this._scene = new BABYLON.Scene(engine);\r\n this._scene.autoClear = false;\r\n this._scene.postProcessesEnabled = false;\r\n this._scene.onPointerDown = this.onPointerDown;\r\n this._sceneEditorPreUpdate = () => this.onPreUpdate();\r\n this._sceneEditorPostUpdate = () => this.onPostUpdate();\r\n this._sceneEditor.addPreUpdateListener(this._sceneEditorPreUpdate);\r\n this._sceneEditor.addPostUpdateListener(this._sceneEditorPostUpdate);\r\n }\r\n dispose() {\r\n if (this._sceneEditor) {\r\n this._sceneEditor.removePreUpdateListener(this._sceneEditorPreUpdate);\r\n this._sceneEditor.removePostUpdateListener(this._sceneEditorPostUpdate);\r\n }\r\n if (this._scene) {\r\n this._scene.dispose();\r\n }\r\n }\r\n onPreUpdate() {\r\n this._scene.activeCamera = this._editorScene.activeCamera;\r\n }\r\n onPostUpdate() {\r\n const engine = this._scene.getEngine();\r\n for (let i = 0; i < this._lightMeshes.length; i++) {\r\n const lightMesh = this._lightMeshes[i];\r\n const light = this._editorScene.getLightByID(lightMesh.id);\r\n if (light) {\r\n this.configureLightMesh(lightMesh, light);\r\n }\r\n }\r\n }\r\n onPointerDown(evt, pickInfo, type) {\r\n if (pickInfo.hit && pickInfo.pickedMesh) {\r\n const event = { name: pickInfo.pickedMesh.name, id: pickInfo.pickedMesh.id };\r\n //Logger.info(\"Light Picked: \" + pickInfo.pickedMesh.id);\r\n this.fireLightSelectedEvent(event);\r\n }\r\n }\r\n refresh() {\r\n this.updateLightMeshes();\r\n }\r\n updateLightMeshes() {\r\n if (this._scene && this._sceneEditor) {\r\n for (let i = 0; i < this._editorScene.lights.length; i++) {\r\n const light = this._editorScene.lights[i];\r\n const lightMesh = this._scene.getMeshByID(light.id);\r\n if (lightMesh)\r\n this.configureLightMesh(lightMesh, light);\r\n else {\r\n this._lightMeshes.push(this.createLightMesh(light));\r\n }\r\n }\r\n for (let i = 0; i < this._lightMeshes.length; i++) {\r\n const lightMesh = this._lightMeshes[i];\r\n const light = this._editorScene.getLightByID(lightMesh.id);\r\n if (!light) {\r\n lightMesh.dispose();\r\n this._lightMeshes.splice(i--, 1);\r\n }\r\n }\r\n }\r\n }\r\n createLightMesh(light) {\r\n //const lightTexture = new BABYLON.Texture(\"/Content/css/composer/images/bulb_01.png\", this._scene);\r\n const lightTexture = new BABYLON.Texture(LightsLayer._lightTexture, this._scene);\r\n lightTexture.hasAlpha = true;\r\n const material = new BABYLON.StandardMaterial(\"LightMeshMaterial_\" + light.id, this._scene);\r\n material.emissiveColor = BABYLON.Color3.White();\r\n material.useAlphaFromDiffuseTexture = true;\r\n material.disableDepthWrite = false;\r\n material.diffuseTexture = lightTexture;\r\n const mesh = BABYLON.Mesh.CreatePlane(light.name, 1, this._scene);\r\n mesh.id = light.id;\r\n mesh.billboardMode = BABYLON.Mesh.BILLBOARDMODE_ALL;\r\n mesh.material = material;\r\n this.configureLightMesh(mesh, light);\r\n return mesh;\r\n }\r\n clearLightMeshes() {\r\n if (this._scene) {\r\n while (this._lightMeshes.length > 0) {\r\n const lightMesh = this._lightMeshes.pop();\r\n if (lightMesh)\r\n lightMesh.dispose();\r\n }\r\n }\r\n }\r\n configureLightMesh(lightMesh, light) {\r\n const camera = this._editorScene.activeCamera;\r\n if (camera && lightMesh && light) {\r\n lightMesh.position = light.getAbsolutePosition();\r\n const distance = BABYLON.Vector3.Distance(camera.position, lightMesh.position) * 0.03;\r\n lightMesh.scaling = new BABYLON.Vector3(distance, distance, distance);\r\n lightMesh.computeWorldMatrix(true);\r\n lightMesh.isVisible = this._sceneEditor.canShowLights();\r\n }\r\n }\r\n render() {\r\n if (this._scene)\r\n this._scene.render();\r\n }\r\n getScene() {\r\n return this._scene;\r\n }\r\n fireLightSelectedEvent(evt) {\r\n for (let i = 0; i < this._lightSelectedListeners.length; ++i) {\r\n this._lightSelectedListeners[i](evt);\r\n }\r\n }\r\n addLightSelectedListener(listener) {\r\n this._lightSelectedListeners.push(listener);\r\n }\r\n}\r\nLightsLayer._lightTexture = \"data:image/png;base64,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\";\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Misc/Database.ts\":\n/*!*************************************!*\\\n !*** ../../3D/src/Misc/Database.ts ***!\n \\*************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Database\": () => (/* binding */ Database)\n/* harmony export */ });\nclass Database {\r\n /**\r\n * Creates a new Database\r\n */\r\n constructor() {\r\n // Handling various flavors of prefixed version of IndexedDB\r\n this._idbFactory = (typeof window !== \"undefined\" ? window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB : indexedDB);\r\n this._db = null;\r\n this._hasReachedQuota = false;\r\n this._isSupported = true;\r\n }\r\n openAsync() {\r\n return new Promise((resolve, reject) => this.open(resolve, reject));\r\n }\r\n /**\r\n * Open the database and make it available\r\n * @param successCallback defines the callback to call on success\r\n * @param errorCallback defines the callback to call on error\r\n */\r\n open(successCallback, errorCallback) {\r\n const handleError = () => {\r\n this._isSupported = false;\r\n if (errorCallback) {\r\n errorCallback();\r\n }\r\n };\r\n if (!this._idbFactory) {\r\n // Your browser doesn't support IndexedDB\r\n this._isSupported = false;\r\n if (errorCallback) {\r\n errorCallback();\r\n }\r\n }\r\n else {\r\n // If the DB hasn't been opened or created yet\r\n if (!this._db) {\r\n this._hasReachedQuota = false;\r\n this._isSupported = true;\r\n const request = this._idbFactory.open(\"zakeke\", 1);\r\n // Could occur if user is blocking the quota for the DB and/or doesn't grant access to IndexedDB\r\n request.onerror = () => {\r\n handleError();\r\n };\r\n // executes when a version change transaction cannot complete due to other active transactions\r\n request.onblocked = () => {\r\n Logger.info(\"IDB request blocked. Please reload the page.\");\r\n handleError();\r\n };\r\n // DB has been opened successfully\r\n request.onsuccess = () => {\r\n this._db = request.result;\r\n successCallback();\r\n };\r\n // Initialization of the DB. Creating Scenes & Textures stores\r\n request.onupgradeneeded = (event) => {\r\n this._db = event.target.result;\r\n if (this._db) {\r\n try {\r\n this._db.createObjectStore(\"files\", { keyPath: \"fileId\" });\r\n }\r\n catch (ex) {\r\n Logger.info(\"Error while creating object stores. Exception: \" + ex.message);\r\n handleError();\r\n }\r\n }\r\n };\r\n }\r\n // DB has already been created and opened\r\n else {\r\n if (successCallback) {\r\n successCallback();\r\n }\r\n }\r\n }\r\n }\r\n loadFileAsync(fileId) {\r\n return new Promise((resolve, reject) => {\r\n if (this._isSupported && this._db) {\r\n const targetStore = \"files\";\r\n let file;\r\n const transaction = this._db.transaction([targetStore]);\r\n transaction.oncomplete = () => {\r\n if (file) {\r\n resolve(file.data);\r\n }\r\n // file was not found in DB\r\n else {\r\n resolve(null);\r\n }\r\n };\r\n transaction.onabort = () => {\r\n resolve(null);\r\n };\r\n const getRequest = transaction.objectStore(targetStore).get(fileId);\r\n getRequest.onsuccess = (event) => {\r\n file = event.target.result;\r\n };\r\n getRequest.onerror = () => {\r\n Logger.info(\"Error loading file \" + fileId + \" from DB.\");\r\n resolve(null);\r\n };\r\n }\r\n else {\r\n Logger.info(\"Error: IndexedDB not supported by your browser or Zakeke database is not open.\");\r\n reject(\"IndexedDB not supported or Db is not open\");\r\n }\r\n });\r\n }\r\n saveFileAsync(fileId, data) {\r\n return new Promise((resolve, reject) => {\r\n if (this._isSupported) {\r\n const targetStore = \"files\";\r\n if (!this._hasReachedQuota && this._db) {\r\n // Open a transaction to the database\r\n const transaction = this._db.transaction([targetStore], \"readwrite\");\r\n // the transaction could abort because of a QuotaExceededError error\r\n transaction.onabort = (event) => {\r\n //backwards compatibility with ts 1.0, srcElement doesn't have an \"error\" according to ts 1.3\r\n const error = event.srcElement[\"error\"];\r\n if (error && error.name === \"QuotaExceededError\") {\r\n this._hasReachedQuota = true;\r\n reject(\"Quota Exceeded\");\r\n }\r\n };\r\n transaction.oncomplete = () => {\r\n Logger.info(\"File saved successfully\");\r\n resolve();\r\n };\r\n const newFile = { fileId, data };\r\n // Put the file into the database\r\n const addRequest = transaction.objectStore(targetStore).put(newFile);\r\n addRequest.onsuccess = () => { };\r\n addRequest.onerror = () => {\r\n Logger.info(\"Error in DB add file request in Zakeke3D.Database.\");\r\n reject(\"Error in DB add file request\");\r\n };\r\n }\r\n else {\r\n const error = this._hasReachedQuota ? \"Quota has been reached\" : \"Database closed\";\r\n reject(error);\r\n }\r\n }\r\n else {\r\n Logger.info(\"Error: IndexedDB not supported by your browser or Zakeke database is not open.\");\r\n reject(\"IndexedDB not supported or Db is not open\");\r\n }\r\n });\r\n }\r\n deleteFileAsync(fileId) {\r\n return new Promise((resolve, reject) => {\r\n if (this._isSupported && this._db) {\r\n const targetStore = \"files\";\r\n const transaction = this._db.transaction([targetStore]);\r\n transaction.oncomplete = () => {\r\n resolve();\r\n };\r\n transaction.onabort = () => {\r\n reject(\"aborted cancellation\");\r\n };\r\n const getRequest = transaction.objectStore(targetStore).get(fileId);\r\n getRequest.onerror = () => {\r\n Logger.info(\"Error deleting file \" + fileId + \" from DB.\");\r\n reject(\"Error deleting file from DB\");\r\n };\r\n }\r\n else {\r\n Logger.info(\"Error: IndexedDB not supported by your browser or Zakeke database is not open.\");\r\n reject(\"IndexedDB not supported or Db is not open\");\r\n }\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Misc/DefaultAssetUrls.ts\":\n/*!*********************************************!*\\\n !*** ../../3D/src/Misc/DefaultAssetUrls.ts ***!\n \\*********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DefaultAssetUrls\": () => (/* binding */ DefaultAssetUrls)\n/* harmony export */ });\nclass DefaultAssetUrls {\r\n}\r\nDefaultAssetUrls.Environment = {\r\n //EnvironmentTextureName: \"environmentSpecular.dds\",\r\n EnvironmentTextureName: \"environmentSpecular_0af79b7524dc4cd4825eae49c5d9e22fae220fd.env\",\r\n GroundTextureCDNUrl: \"https://zakekecdn.azureedge.net/cdn/3d/assets/environments/backgroundGround9.png\",\r\n SkyboxTextureCDNUrl: \"https://zakekecdn.azureedge.net/cdn/3d/assets/environments/backgroundSkybox.dds\",\r\n //EnvironmentTextureCDNUrl: \"https://zakekecdn.azureedge.net/cdn/3d/assets/environments/environmentSpecular.dds\"\r\n EnvironmentTextureCDNUrl: \"https://zakekecdn.blob.core.windows.net/cdn/3d/assets/environments/environmentSpecular_0af79b7524dc4cd4825eae49c5d9e22fae220fd.env\",\r\n};\r\nDefaultAssetUrls.Tryon = {\r\n RootUrl: \"https://zakekecdn.blob.core.windows.net/cdn/3d/assets/tryon/references/\",\r\n ReferenceGlassesFrameName: \"Reference Glasses Frame\",\r\n ReferenceGlassesFrameFileName: \"Reference_Glasses_Frame_001.json\"\r\n};\r\nDefaultAssetUrls.Shapes = {\r\n RootUrl: \"https://zakekecdn.blob.core.windows.net/cdn/3d/assets/shapes/\",\r\n RoundedCubeName: \"Rounded Cube\",\r\n RoundedCubeFileName: \"rounded_cube.babylon\",\r\n RoundedCylinderName: \"Rounded Cylinder\",\r\n RoundedCylinderFileName: \"rounded_cylinder.babylon\",\r\n MatBallName: \"Mat Ball\",\r\n MatBallFileName: \"mat_ball.babylon\",\r\n MaleHeadName: \"Group48944\",\r\n MaleHeadFileName: \"DemoHead.babylon\",\r\n FemaleHeadName: \"Group12208\",\r\n FemaleHeadFileName: \"FemaleHead.babylon\",\r\n PokemonBallName: \"PokemonBall\",\r\n PokemonBallFileName: \"PokemonBall.babylon\",\r\n ShaderBallName: \"Elements\",\r\n ShaderBallFileName: \"ShaderBall.babylon\",\r\n BootsFolder: \"boots/\",\r\n BootsName: \"shoe\",\r\n BootsFileName: \"boots.incremental.babylon\",\r\n SuzanneName: \"Suzanne\",\r\n SuzanneFileName: \"suzanne.babylon\",\r\n StepPyramidName: \"Pyramid\",\r\n StepPyramidFileName: \"step-pyramid.babylon\",\r\n TeapotName: \"Teapot\",\r\n TeapotFileName: \"teapot.babylon\",\r\n AlloyWheelName: \"Wheel\",\r\n AlloyWheelFolder: \"alloy_wheel/\",\r\n AlloyWheelFileName: \"alloy_wheel.incremental.babylon\"\r\n};\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Misc/Observable.ts\":\n/*!***************************************!*\\\n !*** ../../3D/src/Misc/Observable.ts ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EventState\": () => (/* binding */ EventState),\n/* harmony export */ \"MultiObserver\": () => (/* binding */ MultiObserver),\n/* harmony export */ \"Observable\": () => (/* binding */ Observable),\n/* harmony export */ \"Observer\": () => (/* binding */ Observer)\n/* harmony export */ });\n/**\r\n * A class serves as a medium between the observable and its observers\r\n */\r\nclass EventState {\r\n /**\r\n * Create a new EventState\r\n * @param mask defines the mask associated with this state\r\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n */\r\n constructor(mask, skipNextObservers = false, target, currentTarget) {\r\n /**\r\n * An Observer can set this property to true to prevent subsequent observers of being notified\r\n */\r\n this.skipNextObservers = false;\r\n /**\r\n * Get the mask value that were used to trigger the event corresponding to this EventState object\r\n */\r\n this.mask = 0;\r\n this.initalize(mask, skipNextObservers, target, currentTarget);\r\n }\r\n /**\r\n * Initialize the current event state\r\n * @param mask defines the mask associated with this state\r\n * @param skipNextObservers defines a flag which will instruct the observable to skip following observers when set to true\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n * @returns the current event state\r\n */\r\n initalize(mask, skipNextObservers = false, target, currentTarget) {\r\n this.mask = mask;\r\n this.skipNextObservers = skipNextObservers;\r\n this.target = target;\r\n this.currentTarget = currentTarget;\r\n return this;\r\n }\r\n}\r\n/**\r\n * Represent an Observer registered to a given Observable object.\r\n */\r\nclass Observer {\r\n /**\r\n * Creates a new observer\r\n * @param callback defines the callback to call when the observer is notified\r\n * @param mask defines the mask of the observer (used to filter notifications)\r\n * @param scope defines the current scope used to restore the JS context\r\n */\r\n constructor(\r\n /**\r\n * Defines the callback to call when the observer is notified\r\n */\r\n callback, \r\n /**\r\n * Defines the mask of the observer (used to filter notifications)\r\n */\r\n mask, \r\n /**\r\n * Defines the current scope used to restore the JS context\r\n */\r\n scope = null) {\r\n this.callback = callback;\r\n this.mask = mask;\r\n this.scope = scope;\r\n /** @hidden */\r\n this._willBeUnregistered = false;\r\n /**\r\n * Gets or sets a property defining that the observer as to be unregistered after the next notification\r\n */\r\n this.unregisterOnNextCall = false;\r\n }\r\n}\r\n/**\r\n * Represent a list of observers registered to multiple Observables object.\r\n */\r\nclass MultiObserver {\r\n constructor() {\r\n this._observers = null;\r\n this._observables = null;\r\n }\r\n /**\r\n * Release associated resources\r\n */\r\n dispose() {\r\n if (this._observers && this._observables) {\r\n for (var index = 0; index < this._observers.length; index++) {\r\n this._observables[index].remove(this._observers[index]);\r\n }\r\n }\r\n this._observers = null;\r\n this._observables = null;\r\n }\r\n /**\r\n * Raise a callback when one of the observable will notify\r\n * @param observables defines a list of observables to watch\r\n * @param callback defines the callback to call on notification\r\n * @param mask defines the mask used to filter notifications\r\n * @param scope defines the current scope used to restore the JS context\r\n * @returns the new MultiObserver\r\n */\r\n static Watch(observables, callback, mask = 0, scope = null) {\r\n let result = new MultiObserver();\r\n result._observers = new Array();\r\n result._observables = observables;\r\n for (var observable of observables) {\r\n let observer = observable.add(callback, mask, false, scope);\r\n if (observer) {\r\n result._observers.push(observer);\r\n }\r\n }\r\n return result;\r\n }\r\n}\r\n/**\r\n * The Observable class is a simple implementation of the Observable pattern.\r\n *\r\n * There's one slight particularity though: a given Observable can notify its observer using a particular mask value, only the Observers registered with this mask value will be notified.\r\n * This enable a more fine grained execution without having to rely on multiple different Observable objects.\r\n * For instance you may have a given Observable that have four different types of notifications: Move (mask = 0x01), Stop (mask = 0x02), Turn Right (mask = 0X04), Turn Left (mask = 0X08).\r\n * A given observer can register itself with only Move and Stop (mask = 0x03), then it will only be notified when one of these two occurs and will never be for Turn Left/Right.\r\n */\r\nclass Observable {\r\n /**\r\n * Creates a new observable\r\n * @param onObserverAdded defines a callback to call when a new observer is added\r\n */\r\n constructor(onObserverAdded) {\r\n this._observers = new Array();\r\n this._onObserverAdded = null;\r\n this._eventState = new EventState(0);\r\n if (onObserverAdded) {\r\n this._onObserverAdded = onObserverAdded;\r\n }\r\n }\r\n /**\r\n * Gets the list of observers\r\n */\r\n get observers() {\r\n return this._observers;\r\n }\r\n /**\r\n * Create a new Observer with the specified callback\r\n * @param callback the callback that will be executed for that Observer\r\n * @param mask the mask used to filter observers\r\n * @param insertFirst if true the callback will be inserted at the first position, hence executed before the others ones. If false (default behavior) the callback will be inserted at the last position, executed after all the others already present.\r\n * @param scope optional scope for the callback to be called from\r\n * @param unregisterOnFirstCall defines if the observer as to be unregistered after the next notification\r\n * @returns the new observer created for the callback\r\n */\r\n add(callback, mask = 0, insertFirst = false, scope = null, unregisterOnFirstCall = false) {\r\n if (!callback) {\r\n return null;\r\n }\r\n var observer = new Observer(callback, mask, scope);\r\n observer.unregisterOnNextCall = unregisterOnFirstCall;\r\n if (insertFirst) {\r\n this._observers.unshift(observer);\r\n }\r\n else {\r\n this._observers.push(observer);\r\n }\r\n if (this._onObserverAdded) {\r\n this._onObserverAdded(observer);\r\n }\r\n return observer;\r\n }\r\n /**\r\n * Create a new Observer with the specified callback and unregisters after the next notification\r\n * @param callback the callback that will be executed for that Observer\r\n * @returns the new observer created for the callback\r\n */\r\n addOnce(callback) {\r\n return this.add(callback, undefined, undefined, undefined, true);\r\n }\r\n /**\r\n * Remove an Observer from the Observable object\r\n * @param observer the instance of the Observer to remove\r\n * @returns false if it doesn't belong to this Observable\r\n */\r\n remove(observer) {\r\n if (!observer) {\r\n return false;\r\n }\r\n var index = this._observers.indexOf(observer);\r\n if (index !== -1) {\r\n this._deferUnregister(observer);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Remove a callback from the Observable object\r\n * @param callback the callback to remove\r\n * @param scope optional scope. If used only the callbacks with this scope will be removed\r\n * @returns false if it doesn't belong to this Observable\r\n */\r\n removeCallback(callback, scope) {\r\n for (var index = 0; index < this._observers.length; index++) {\r\n const observer = this._observers[index];\r\n if (observer._willBeUnregistered) {\r\n continue;\r\n }\r\n if (observer.callback === callback && (!scope || scope === observer.scope)) {\r\n this._deferUnregister(observer);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n _deferUnregister(observer) {\r\n observer.unregisterOnNextCall = false;\r\n observer._willBeUnregistered = true;\r\n setTimeout(() => {\r\n this._remove(observer);\r\n }, 0);\r\n }\r\n // This should only be called when not iterating over _observers to avoid callback skipping.\r\n // Removes an observer from the _observer Array.\r\n _remove(observer) {\r\n if (!observer) {\r\n return false;\r\n }\r\n var index = this._observers.indexOf(observer);\r\n if (index !== -1) {\r\n this._observers.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Moves the observable to the top of the observer list making it get called first when notified\r\n * @param observer the observer to move\r\n */\r\n makeObserverTopPriority(observer) {\r\n this._remove(observer);\r\n this._observers.unshift(observer);\r\n }\r\n /**\r\n * Moves the observable to the bottom of the observer list making it get called last when notified\r\n * @param observer the observer to move\r\n */\r\n makeObserverBottomPriority(observer) {\r\n this._remove(observer);\r\n this._observers.push(observer);\r\n }\r\n /**\r\n * Notify all Observers by calling their respective callback with the given data\r\n * Will return true if all observers were executed, false if an observer set skipNextObservers to true, then prevent the subsequent ones to execute\r\n * @param eventData defines the data to send to all observers\r\n * @param mask defines the mask of the current notification (observers with incompatible mask (ie mask & observer.mask === 0) will not be notified)\r\n * @param target defines the original target of the state\r\n * @param currentTarget defines the current target of the state\r\n * @returns false if the complete observer chain was not processed (because one observer set the skipNextObservers to true)\r\n */\r\n notifyObservers(eventData, mask = 0, target, currentTarget) {\r\n if (!this._observers.length) {\r\n return true;\r\n }\r\n let state = this._eventState;\r\n state.mask = mask;\r\n state.target = target;\r\n state.currentTarget = currentTarget;\r\n state.skipNextObservers = false;\r\n state.lastReturnValue = eventData;\r\n for (var obs of this._observers) {\r\n if (obs._willBeUnregistered) {\r\n continue;\r\n }\r\n if (obs.mask & mask) {\r\n if (obs.scope) {\r\n state.lastReturnValue = obs.callback.apply(obs.scope, [eventData, state]);\r\n }\r\n else {\r\n state.lastReturnValue = obs.callback(eventData, state);\r\n }\r\n if (obs.unregisterOnNextCall) {\r\n this._deferUnregister(obs);\r\n }\r\n }\r\n if (state.skipNextObservers) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n /**\r\n * Calling this will execute each callback, expecting it to be a promise or return a value.\r\n * If at any point in the chain one function fails, the promise will fail and the execution will not continue.\r\n * This is useful when a chain of events (sometimes async events) is needed to initialize a certain object\r\n * and it is crucial that all callbacks will be executed.\r\n * The order of the callbacks is kept, callbacks are not executed parallel.\r\n *\r\n * @param eventData The data to be sent to each callback\r\n * @param mask is used to filter observers defaults to 0\r\n * @param target defines the callback target (see EventState)\r\n * @param currentTarget defines he current object in the bubbling phase\r\n * @returns {Promise} will return a Promise than resolves when all callbacks executed successfully.\r\n */\r\n notifyObserversWithPromise(eventData, mask = 0, target, currentTarget) {\r\n // create an empty promise\r\n let p = Promise.resolve(eventData);\r\n // no observers? return this promise.\r\n if (!this._observers.length) {\r\n return p;\r\n }\r\n let state = this._eventState;\r\n state.mask = mask;\r\n state.target = target;\r\n state.currentTarget = currentTarget;\r\n state.skipNextObservers = false;\r\n // execute one callback after another (not using Promise.all, the order is important)\r\n this._observers.forEach((obs) => {\r\n if (state.skipNextObservers) {\r\n return;\r\n }\r\n if (obs._willBeUnregistered) {\r\n return;\r\n }\r\n if (obs.mask & mask) {\r\n if (obs.scope) {\r\n p = p.then((lastReturnedValue) => {\r\n state.lastReturnValue = lastReturnedValue;\r\n return obs.callback.apply(obs.scope, [eventData, state]);\r\n });\r\n }\r\n else {\r\n p = p.then((lastReturnedValue) => {\r\n state.lastReturnValue = lastReturnedValue;\r\n return obs.callback(eventData, state);\r\n });\r\n }\r\n if (obs.unregisterOnNextCall) {\r\n this._deferUnregister(obs);\r\n }\r\n }\r\n });\r\n // return the eventData\r\n return p.then(() => { return eventData; });\r\n }\r\n /**\r\n * Notify a specific observer\r\n * @param observer defines the observer to notify\r\n * @param eventData defines the data to be sent to each callback\r\n * @param mask is used to filter observers defaults to 0\r\n */\r\n notifyObserver(observer, eventData, mask = 0) {\r\n let state = this._eventState;\r\n state.mask = mask;\r\n state.skipNextObservers = false;\r\n observer.callback(eventData, state);\r\n }\r\n /**\r\n * Gets a boolean indicating if the observable has at least one observer\r\n * @returns true is the Observable has at least one Observer registered\r\n */\r\n hasObservers() {\r\n return this._observers.length > 0;\r\n }\r\n /**\r\n * Clear the list of observers\r\n */\r\n clear() {\r\n this._observers = new Array();\r\n this._onObserverAdded = null;\r\n }\r\n /**\r\n * Clone the current observable\r\n * @returns a new observable\r\n */\r\n clone() {\r\n var result = new Observable();\r\n result._observers = this._observers.slice(0);\r\n return result;\r\n }\r\n /**\r\n * Does this observable handles observer registered with a given mask\r\n * @param mask defines the mask to be tested\r\n * @return whether or not one observer registered with the given mask is handeled\r\n **/\r\n hasSpecificMask(mask = 0) {\r\n for (var obs of this._observers) {\r\n if (obs.mask & mask || obs.mask === mask) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Misc/StringTools.ts\":\n/*!****************************************!*\\\n !*** ../../3D/src/Misc/StringTools.ts ***!\n \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"StringTools\": () => (/* binding */ StringTools)\n/* harmony export */ });\n/**\r\n * Helper to manipulate strings\r\n */\r\nclass StringTools {\r\n /**\r\n * Checks for a matching suffix at the end of a string (for ES5 and lower)\r\n * @param str Source string\r\n * @param suffix Suffix to search for in the source string\r\n * @returns Boolean indicating whether the suffix was found (true) or not (false)\r\n */\r\n static EndsWith(str, suffix) {\r\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\r\n }\r\n /**\r\n * Checks for a matching suffix at the beginning of a string (for ES5 and lower)\r\n * @param str Source string\r\n * @param suffix Suffix to search for in the source string\r\n * @returns Boolean indicating whether the suffix was found (true) or not (false)\r\n */\r\n static StartsWith(str, suffix) {\r\n return str.indexOf(suffix) === 0;\r\n }\r\n /**\r\n * Decodes a buffer into a string\r\n * @param buffer The buffer to decode\r\n * @returns The decoded string\r\n */\r\n static Decode(buffer) {\r\n if (typeof TextDecoder !== \"undefined\") {\r\n return new TextDecoder().decode(buffer);\r\n }\r\n let result = \"\";\r\n for (let i = 0; i < buffer.byteLength; i++) {\r\n result += String.fromCharCode(buffer[i]);\r\n }\r\n return result;\r\n }\r\n /**\r\n * Encode a buffer to a base64 string\r\n * @param buffer defines the buffer to encode\r\n * @returns the encoded string\r\n */\r\n static EncodeArrayBufferToBase64(buffer) {\r\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n var output = \"\";\r\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n var i = 0;\r\n var bytes = ArrayBuffer.isView(buffer) ? new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength) : new Uint8Array(buffer);\r\n while (i < bytes.length) {\r\n chr1 = bytes[i++];\r\n chr2 = i < bytes.length ? bytes[i++] : Number.NaN;\r\n chr3 = i < bytes.length ? bytes[i++] : Number.NaN;\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n }\r\n else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n output += keyStr.charAt(enc1) + keyStr.charAt(enc2) +\r\n keyStr.charAt(enc3) + keyStr.charAt(enc4);\r\n }\r\n return output;\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Misc/WorkerPool.ts\":\n/*!***************************************!*\\\n !*** ../../3D/src/Misc/WorkerPool.ts ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"WorkerPool\": () => (/* binding */ WorkerPool)\n/* harmony export */ });\n/**\r\n * Helper class to push actions to a pool of workers.\r\n */\r\nclass WorkerPool {\r\n /**\r\n * Constructor\r\n * @param workers Array of workers to use for actions\r\n */\r\n constructor(workers) {\r\n this._pendingActions = new Array();\r\n this._workerInfos = workers.map((worker) => ({\r\n worker: worker,\r\n active: false\r\n }));\r\n }\r\n /**\r\n * Terminates all workers and clears any pending actions.\r\n */\r\n dispose() {\r\n for (const workerInfo of this._workerInfos) {\r\n workerInfo.worker.terminate();\r\n }\r\n delete this._workerInfos;\r\n delete this._pendingActions;\r\n }\r\n /**\r\n * Pushes an action to the worker pool. If all the workers are active, the action will be\r\n * pended until a worker has completed its action.\r\n * @param action The action to perform. Call onComplete when the action is complete.\r\n */\r\n push(action) {\r\n for (const workerInfo of this._workerInfos) {\r\n if (!workerInfo.active) {\r\n this._execute(workerInfo, action);\r\n return;\r\n }\r\n }\r\n this._pendingActions.push(action);\r\n }\r\n _execute(workerInfo, action) {\r\n workerInfo.active = true;\r\n action(workerInfo.worker, () => {\r\n workerInfo.active = false;\r\n const nextAction = this._pendingActions.shift();\r\n if (nextAction) {\r\n this._execute(workerInfo, nextAction);\r\n }\r\n });\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Viewers/MaterialEditor.ts\":\n/*!**********************************************!*\\\n !*** ../../3D/src/Viewers/MaterialEditor.ts ***!\n \\**********************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EditorMeshType\": () => (/* binding */ EditorMeshType),\n/* harmony export */ \"MaterialEditor\": () => (/* binding */ MaterialEditor)\n/* harmony export */ });\n/* harmony import */ var _SceneEditor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SceneEditor */ \"../../3D/src/Viewers/SceneEditor.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\nvar EditorMeshType;\r\n(function (EditorMeshType) {\r\n EditorMeshType[EditorMeshType[\"Box\"] = 0] = \"Box\";\r\n EditorMeshType[EditorMeshType[\"RoundedBox\"] = 1] = \"RoundedBox\";\r\n EditorMeshType[EditorMeshType[\"Sphere\"] = 2] = \"Sphere\";\r\n EditorMeshType[EditorMeshType[\"Plane\"] = 3] = \"Plane\";\r\n EditorMeshType[EditorMeshType[\"Cylinder\"] = 4] = \"Cylinder\";\r\n EditorMeshType[EditorMeshType[\"RoundedCylinder\"] = 5] = \"RoundedCylinder\";\r\n EditorMeshType[EditorMeshType[\"Torus\"] = 6] = \"Torus\";\r\n EditorMeshType[EditorMeshType[\"Knot\"] = 7] = \"Knot\";\r\n EditorMeshType[EditorMeshType[\"Ribbon\"] = 8] = \"Ribbon\";\r\n EditorMeshType[EditorMeshType[\"Custom\"] = 9] = \"Custom\";\r\n})(EditorMeshType || (EditorMeshType = {}));\r\nclass MaterialEditor extends _SceneEditor__WEBPACK_IMPORTED_MODULE_0__.SceneEditor {\r\n constructor(options) {\r\n super(options);\r\n this._zkMaterial = null;\r\n this._material = null;\r\n this._meshType = EditorMeshType.Box;\r\n this._mesh = null;\r\n this._materialCreatedListeners = [];\r\n this._filesInput = null;\r\n }\r\n get zkMaterial() {\r\n return this._zkMaterial;\r\n }\r\n get material() {\r\n return this._material;\r\n }\r\n static createMaterialEditorAsync(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!options) {\r\n options = {\r\n showGround: false,\r\n editorBackgroundColor: \"#33334c\",\r\n showHighlight: false,\r\n };\r\n }\r\n const editor = new MaterialEditor(options);\r\n yield editor.initAsync();\r\n return editor;\r\n });\r\n }\r\n deleteComponents() {\r\n super.deleteComponents();\r\n this.deleteEditorMaterial();\r\n this.deleteEditorMesh();\r\n }\r\n deleteEditorMaterial() {\r\n if (this._material) {\r\n this._material.dispose();\r\n this._material = null;\r\n this.fireMaterialCreatedEvent();\r\n }\r\n }\r\n deleteEditorMesh() {\r\n if (this._mesh) {\r\n this._mesh.dispose();\r\n this._mesh = null;\r\n }\r\n // Elimino tutte le mesh della scena\r\n if (this._scene && this._sceneHelper) {\r\n let meshes = this._sceneHelper.getSceneMeshes();\r\n meshes.forEach(m => m.dispose());\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n createEmptySceneAsync() {\r\n const _super = Object.create(null, {\r\n createEmptySceneAsync: { get: () => super.createEmptySceneAsync }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield _super.createEmptySceneAsync.call(this);\r\n this.createEditorMaterial(undefined, \"Standard\");\r\n yield this.createEditorMeshAsync();\r\n });\r\n }\r\n createEditorMaterial(name, type, group) {\r\n let material = null;\r\n if (type != \"ShaderMaterial\") {\r\n material = super.createMaterial(name, type, group);\r\n }\r\n else {\r\n material = this.createShaderMaterial();\r\n if (material) {\r\n material.id = Zakeke.generateUUID();\r\n this.checkSceneEmptyEnvironmentTexture();\r\n }\r\n }\r\n this._material = material;\r\n this.setRenderingNeeded();\r\n this.fireMaterialCreatedEvent();\r\n return material;\r\n }\r\n applyEditorMaterial() {\r\n if (this._material && this._mesh)\r\n this.applyMaterial(this._material, this._mesh);\r\n }\r\n replaceSceneAsync(newScene) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n // Serializzo il materiale per la vecchia scena\r\n var jsonObj = null;\r\n var rootUrl = null;\r\n if (this._material && this._zkMaterial) {\r\n jsonObj = this._material.serialize();\r\n rootUrl = this._zkMaterial.get(\"rootUrl\");\r\n }\r\n this.deleteScene();\r\n this._scene = newScene;\r\n yield this.setupSceneAsync();\r\n // Deserializzo il material sulla nuova scena\r\n if (jsonObj && rootUrl) {\r\n this._material = BABYLON.Material.Parse(jsonObj, this._scene, rootUrl);\r\n this.fireMaterialCreatedEvent();\r\n }\r\n else {\r\n this.createEditorMaterial(undefined, \"Standard\");\r\n }\r\n this.applyEditorMaterial();\r\n this.adjustCamera(false);\r\n });\r\n }\r\n createShaderMaterial() {\r\n let material = null;\r\n if (this._scene && this._zkMaterial && this._zkMaterial.get(\"shaders\")) {\r\n const name = this._zkMaterial.get(\"name\") || \"ShaderMaterial - \" + Zakeke.makeID(5);\r\n var paths = {\r\n vertex: this._zkMaterial.get(\"shaders\").get(\"name\"),\r\n fragment: this._zkMaterial.get(\"shaders\").get(\"name\")\r\n };\r\n const options = {\r\n attributes: this._zkMaterial.getShaderAttributeOptions(Zakeke.ShaderOptionType.Attribute),\r\n uniforms: this._zkMaterial.getShaderAttributeOptions(Zakeke.ShaderOptionType.Uniform),\r\n samplers: this._zkMaterial.getShaderAttributeOptions(Zakeke.ShaderOptionType.Sampler)\r\n };\r\n material = new BABYLON.ShaderMaterial(name, this._scene, paths, options);\r\n this.setupShaderMaterialCameraPosition(material);\r\n }\r\n return material;\r\n }\r\n createEditorMaterialFromJson(jsonText, rootUrl) {\r\n if (this._scene) {\r\n var jsonObj = JSON.parse(jsonText);\r\n this._material = BABYLON.Material.Parse(jsonObj, this._scene, rootUrl);\r\n if (this._material)\r\n this.setupShaderMaterialCameraPosition(this._material);\r\n this.checkSceneEmptyEnvironmentTexture();\r\n this.fireMaterialCreatedEvent();\r\n }\r\n }\r\n createEditorMeshAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.deleteEditorMesh();\r\n switch (this._meshType) {\r\n case EditorMeshType.Box:\r\n this._mesh = this.createBox(null, \"box\");\r\n break;\r\n case EditorMeshType.RoundedBox:\r\n {\r\n const meshes = yield this.createRoundedCubeAsync(null, \"rounded box\");\r\n if (meshes.length == 1)\r\n this._mesh = meshes[0];\r\n else {\r\n this._mesh = this.createGroup(null, \"rounded box group\", meshes);\r\n }\r\n }\r\n break;\r\n case EditorMeshType.Sphere:\r\n this._mesh = this.createSphere(null, \"sphere\");\r\n break;\r\n case EditorMeshType.Plane:\r\n this._mesh = this.createPlane(null, \"plane\");\r\n break;\r\n case EditorMeshType.Cylinder:\r\n this._mesh = this.createCylinder(null, \"cylinder\");\r\n break;\r\n case EditorMeshType.RoundedCylinder:\r\n {\r\n const meshes = yield this.createRoundedCylinderAsync(null, \"rounded cylinder\");\r\n if (meshes.length == 1)\r\n this._mesh = meshes[0];\r\n else {\r\n this._mesh = this.createGroup(null, \"rounded cylinder group\");\r\n meshes.forEach(m => m.parent = this._mesh);\r\n }\r\n }\r\n break;\r\n case EditorMeshType.Torus:\r\n this._mesh = this.createTorus(null, \"torus\");\r\n break;\r\n case EditorMeshType.Knot:\r\n this._mesh = this.createKnot(null, \"knot\");\r\n break;\r\n case EditorMeshType.Ribbon:\r\n this._mesh = this.createRibbon(null, \"ribbon\");\r\n break;\r\n }\r\n this.applyEditorMaterial();\r\n this.adjustCamera(false);\r\n });\r\n }\r\n setEditorMeshType(meshType) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this._meshType = meshType;\r\n yield this.createEditorMeshAsync();\r\n });\r\n }\r\n updateMaterialModelAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkMaterial && this._material && this._sceneHelper) {\r\n const data = yield this._sceneHelper.takeMaterialScreenshotAsync(this._material.id, 500, 450);\r\n this._zkMaterial.set(\"imageData\", data);\r\n const name = this._zkMaterial.get(\"name\");\r\n if (name && name != this._material.name)\r\n this._material.name = name;\r\n var json = this.getEditorMaterialJson();\r\n if (json)\r\n this._zkMaterial.set(\"JSON\", json);\r\n }\r\n });\r\n }\r\n getEditorMaterialJson() {\r\n if (this._scene && this._sceneHelper && this._material) {\r\n const sceneHelper = this._sceneHelper;\r\n // Sistemo il nome delle texture che deve essere relativo al root path\r\n // .../materialID/textures/materialID/filename.xxx\r\n this._scene.textures.forEach((txt) => {\r\n if (sceneHelper.isTextureWithUrl(txt)) {\r\n if (txt.url) {\r\n var idx = txt.url.lastIndexOf(\"/\");\r\n if (idx !== -1) {\r\n idx = txt.url.lastIndexOf(\"/\", idx - 1);\r\n if (idx !== -1) {\r\n idx = txt.url.lastIndexOf(\"/\", idx - 1);\r\n if (idx != -1) {\r\n var newName = txt.url.substring(idx + 1);\r\n txt.name = newName;\r\n txt.url = txt.name;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n var jsonObj = this._material.serialize();\r\n var json = JSON.stringify(jsonObj);\r\n return json;\r\n }\r\n return null;\r\n }\r\n setMaterialModel(zkMaterial, type) {\r\n this._zkMaterial = zkMaterial;\r\n this.deleteEditorMaterial();\r\n if (this._zkMaterial && this._zkMaterial instanceof Zakeke.Material) {\r\n const materialShaders = this._zkMaterial.get(\"shaders\");\r\n if (materialShaders) {\r\n const name = materialShaders.get(\"name\");\r\n const vertex = materialShaders.get(\"vertex\");\r\n const fragment = materialShaders.get(\"fragment\");\r\n if (name && vertex && fragment) {\r\n this.setupShadersStore({ name, vertex, fragment });\r\n }\r\n }\r\n var jsonText = this._zkMaterial.get(\"JSON\");\r\n var rootUrl = this._zkMaterial.get(\"rootUrl\");\r\n if (jsonText && rootUrl)\r\n this.createEditorMaterialFromJson(jsonText, rootUrl);\r\n else\r\n this.createEditorMaterial(this._zkMaterial.get(\"name\") || undefined, type);\r\n if (this._material)\r\n this._material.id = this._zkMaterial.getMaterialID();\r\n }\r\n else\r\n this.createEditorMaterial(undefined, type);\r\n this.applyEditorMaterial();\r\n this.adjustCamera(false);\r\n this.setupShaderMaterialsCameraPosition();\r\n }\r\n getTexturesUploadUrl(materialID) {\r\n if (this._zkMaterial)\r\n return this._zkMaterial.getTexturesUrl();\r\n return \"\";\r\n }\r\n loadEditorMaterialTextureFiles__(filesToLoad, type, onSuccess, onError) {\r\n this.loadTextureFiles(filesToLoad, this._material, type, onSuccess, onError);\r\n }\r\n loadEditorMaterialTextureFiles(filesToLoad, type, onSuccess, onError) {\r\n if (!this._material)\r\n return;\r\n const getExtension = (name) => {\r\n let idx = name.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n const ext = name.substring(idx);\r\n return ext;\r\n }\r\n };\r\n const isCubeImage = (name, suffix) => {\r\n const idx = name.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n const nameWithoutExt = name.substring(0, idx);\r\n return nameWithoutExt.endsWith(\"_\" + suffix);\r\n }\r\n return false;\r\n };\r\n if (!filesToLoad || filesToLoad.length == 0)\r\n return;\r\n var isCubemap = this.canLoadCubemap(this._material, type) && (filesToLoad.length == 6 || getExtension(filesToLoad[0].name) == \".dds\" || getExtension(filesToLoad[0].name) == \".hdr\");\r\n var files = [];\r\n if (isCubemap && filesToLoad.length == 6) {\r\n // verfico che ci siano tutte le estensioni accettate dalla cubemap\r\n var suffixes = [\"px\", \"py\", \"pz\", \"nx\", \"ny\", \"nz\"];\r\n for (let k = 0; k < filesToLoad.length; k++) {\r\n const file = filesToLoad[k];\r\n let lastIdx = -1;\r\n for (var i = 0; i < suffixes.length; i++) {\r\n if (isCubeImage(file.name, suffixes[i])) {\r\n files.push(file);\r\n lastIdx = i;\r\n break;\r\n }\r\n }\r\n if (lastIdx !== -1)\r\n suffixes.splice(lastIdx, 1);\r\n }\r\n if (suffixes.length != 0) {\r\n var msg = \"Immagini per la cube map non valide\";\r\n if (onError)\r\n onError(msg);\r\n Logger.info(msg);\r\n return;\r\n }\r\n }\r\n else {\r\n // Carico solo la prima selezionata\r\n files.push(filesToLoad[0]);\r\n }\r\n // Upload\r\n var data = new FormData();\r\n for (let i = 0; i < files.length; i++) {\r\n data.append('file-' + i, files[i]);\r\n }\r\n jQuery.ajax({\r\n url: this.getTexturesUploadUrl(this._material.id),\r\n data: data,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'POST',\r\n success: (data) => {\r\n if (Object.prototype.toString.call(data) === '[object Array]') {\r\n if (isCubemap)\r\n this.setEditorMaterialCubeTextureImages(data, type);\r\n else\r\n this.setEditorMaterialTextureImage(data[0], type);\r\n }\r\n if (onSuccess)\r\n onSuccess();\r\n },\r\n error: (xhr, textStatus, errorThrown) => {\r\n var msg = \"An error occurred: \" + textStatus + \"nError: \" + errorThrown;\r\n if (onError)\r\n onError(msg);\r\n }\r\n });\r\n }\r\n setEditorMaterialTextureImage(textureImage, type) {\r\n if (this._scene && this._zkMaterial && this._material && textureImage && textureImage.imageUrl && textureImage.fileObjectID) {\r\n // salvo i dati dell'immagine con il materiale\r\n const item = new Zakeke.MaterialTextureImage();\r\n item.set(\"textureImageID\", Zakeke.generateUUID());\r\n item.set(\"fileObjectID\", textureImage.fileObjectID);\r\n item.set(\"imageUrl\", textureImage.imageUrl);\r\n this._zkMaterial.get(\"textureImages\").push(item);\r\n const url = textureImage.imageUrl;\r\n const texture = new BABYLON.Texture(url, this._scene);\r\n const oldTexture = this.getMaterialTexture(this._material, type);\r\n if (oldTexture && oldTexture instanceof BABYLON.Texture) {\r\n texture.uScale = oldTexture.uScale;\r\n texture.vScale = oldTexture.vScale;\r\n texture.uOffset = oldTexture.uOffset;\r\n texture.vOffset = oldTexture.vOffset;\r\n texture.uAng = oldTexture.uAng;\r\n texture.vAng = oldTexture.vAng;\r\n texture.level = oldTexture.level;\r\n texture.coordinatesIndex = oldTexture.coordinatesIndex;\r\n texture.coordinatesMode = oldTexture.coordinatesMode;\r\n texture.hasAlpha = oldTexture.hasAlpha;\r\n texture.wrapU = oldTexture.wrapU;\r\n texture.wrapV = oldTexture.wrapV;\r\n }\r\n this.applyTexture(texture, this._material, type);\r\n if (oldTexture && !this.isTextureUsed(oldTexture))\r\n oldTexture.dispose();\r\n }\r\n }\r\n setEditorMaterialCubeTextureImages(textureImages, type) {\r\n if (!this._scene || !this._zkMaterial || !this._material || Object.prototype.toString.call(textureImages) != '[object Array]')\r\n return;\r\n let texture = null;\r\n const onImagesLoad = () => this.setRenderingNeeded();\r\n if (textureImages.length == 1) {\r\n let textureImage = textureImages[0];\r\n if (textureImage.imageUrl && textureImage.fileObjectID) {\r\n if (textureImage.imageUrl.endsWith(\".dds\"))\r\n texture = BABYLON.CubeTexture.CreateFromPrefilteredData(textureImage.imageUrl, this._scene);\r\n else if (textureImage.imageUrl.endsWith(\".hdr\"))\r\n texture = new BABYLON.HDRCubeTexture(textureImage.imageUrl, this._scene, 512, undefined, undefined, undefined, undefined, onImagesLoad);\r\n // salvo i dati dell'immagine con il materiale\r\n var item = new Zakeke.MaterialTextureImage();\r\n item.set(\"textureImageID\", Zakeke.generateUUID());\r\n item.set(\"fileObjectID\", textureImage.fileObjectID);\r\n item.set(\"imageUrl\", textureImage.imageUrl);\r\n this._zkMaterial.get(\"textureImages\").push(item);\r\n }\r\n }\r\n else if (textureImages.length == 6) {\r\n const suffixes = [\"px\", \"py\", \"pz\", \"nx\", \"ny\", \"nz\"];\r\n let rootUrl = \"\";\r\n const files = [];\r\n const extensions = [];\r\n const containsSuffix = (name, suffix) => {\r\n var idx = name.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n var nameWithoutExt = name.substring(0, idx);\r\n return nameWithoutExt.endsWith(\"_\" + suffix);\r\n }\r\n return false;\r\n };\r\n const getRootUrl = (url, suffix) => {\r\n const idx = url.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n var nameWithoutExt = url.substring(0, idx);\r\n if (nameWithoutExt.endsWith(\"_\" + suffix)) {\r\n const rootUrl = nameWithoutExt.substring(0, nameWithoutExt.length - (\"_\" + suffix).length);\r\n return rootUrl;\r\n }\r\n }\r\n return null;\r\n };\r\n const getFileExtension = (url, suffix) => {\r\n const idx = url.lastIndexOf(\"_\" + suffix);\r\n if (idx !== -1) {\r\n return url.substr(idx);\r\n }\r\n return null;\r\n };\r\n for (let i = 0; i < suffixes.length; i++) {\r\n var suffix = suffixes[i];\r\n for (let k = 0; k < textureImages.length; k++) {\r\n const textureImage = textureImages[k];\r\n const url = textureImage.imageUrl;\r\n if (url && containsSuffix(url, suffix)) {\r\n files.push(url);\r\n extensions.push(getFileExtension(url, suffix));\r\n if (!rootUrl)\r\n rootUrl = getRootUrl(url, suffix);\r\n break;\r\n }\r\n }\r\n }\r\n // salvo i dati delle immagini con il materiale\r\n for (let i = 0; i < textureImages.length; i++) {\r\n const textureImage = textureImages[i];\r\n if (textureImage.imageUrl && textureImage.fileObjectID != undefined) {\r\n const imageUrl = textureImage.imageUrl;\r\n const fileObjectID = textureImage.fileObjectID;\r\n const item = new Zakeke.MaterialTextureImage();\r\n item.set(\"textureImageID\", Zakeke.generateUUID());\r\n item.set(\"fileObjectID\", fileObjectID);\r\n item.set(\"imageUrl\", imageUrl);\r\n this._zkMaterial.get(\"textureImages\").push(item);\r\n }\r\n }\r\n //CubeTexture(rootUrl, scene, extensions, noMipmap, files\r\n texture = new BABYLON.CubeTexture(rootUrl, this._scene, extensions, false, files);\r\n }\r\n if (texture) {\r\n var oldTexture = this.getMaterialTexture(this._material, type);\r\n this.applyTexture(texture, this._material, type);\r\n if (oldTexture && !this.isTextureUsed(oldTexture))\r\n oldTexture.dispose();\r\n }\r\n }\r\n // -------------------------------------------------------------\r\n // Events\r\n // -------------------------------------------------------------\r\n fireMaterialCreatedEvent() {\r\n for (let i = 0; i < this._materialCreatedListeners.length; ++i) {\r\n this._materialCreatedListeners[i]();\r\n }\r\n }\r\n addMaterialCreatedListener(listenerFunction) {\r\n this._materialCreatedListeners.push(listenerFunction);\r\n }\r\n //#region Load Custom Mesh\r\n loadFiles(event, onSuccess, onError) {\r\n if (!this._engine || !this._scene || !this._sceneHelper)\r\n return;\r\n const engine = this._engine;\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n if (!this._filesInput) {\r\n this._filesInput = new BABYLON.FilesInput(engine, scene, (sceneFile, babylonScene) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.replaceSceneAsync(babylonScene);\r\n const meshes = sceneHelper.getSceneMeshes();\r\n // Raggruppo tutte le mesh\r\n this._meshType = EditorMeshType.Custom;\r\n this._mesh = this.createGroup(null, \"group\", meshes);\r\n this.applyEditorMaterial();\r\n if (onSuccess)\r\n onSuccess();\r\n }), null, //(progress: BABYLON.SceneLoaderProgressEvent) => { }, // progressCallback\r\n null, //() => { }, // additionalRenderLoopLogicCallback\r\n null, //(remaining: number) => { }, // textureLoadingCallback\r\n null, //(files?: File[]) => { }, // startingProcessingFilesCallback\r\n null, //(sceneFile: File) => { }, // onReloadCallback\r\n (sceneFile, babylonScene, message) => {\r\n if (onError)\r\n onError(message);\r\n });\r\n }\r\n if (this._filesInput)\r\n this._filesInput.loadFiles(event);\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Viewers/SceneEditor.ts\":\n/*!*******************************************!*\\\n !*** ../../3D/src/Viewers/SceneEditor.ts ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"MaterialGroup\": () => (/* binding */ MaterialGroup),\n/* harmony export */ \"SceneEditor\": () => (/* binding */ SceneEditor),\n/* harmony export */ \"SourceTaskStatus\": () => (/* binding */ SourceTaskStatus)\n/* harmony export */ });\n/* harmony import */ var _Components_Environment_EnvironmentManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Components/Environment/EnvironmentManager */ \"../../3D/src/Components/Environment/EnvironmentManager.ts\");\n/* harmony import */ var _Components_IncrementalFiles_IncrementalFiles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Components/IncrementalFiles/IncrementalFiles */ \"../../3D/src/Components/IncrementalFiles/IncrementalFiles.ts\");\n/* harmony import */ var _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Components/MaterialsPreview/MaterialsPreview */ \"../../3D/src/Components/MaterialsPreview/MaterialsPreview.ts\");\n/* harmony import */ var _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Components/SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n/* harmony import */ var _Components_SceneToBlobs_SceneToBlobs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Components/SceneToBlobs/SceneToBlobs */ \"../../3D/src/Components/SceneToBlobs/SceneToBlobs.ts\");\n/* harmony import */ var _Enumerations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Enumerations */ \"../../3D/src/Enumerations.ts\");\n/* harmony import */ var _Helpers_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Helpers/utils */ \"../../3D/src/Helpers/utils.ts\");\n/* harmony import */ var _Layers_AxesLayer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Layers/AxesLayer */ \"../../3D/src/Layers/AxesLayer.ts\");\n/* harmony import */ var _Layers_LightsLayer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Layers/LightsLayer */ \"../../3D/src/Layers/LightsLayer.ts\");\n/* harmony import */ var _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Misc/DefaultAssetUrls */ \"../../3D/src/Misc/DefaultAssetUrls.ts\");\n/* harmony import */ var _SceneViewer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./SceneViewer */ \"../../3D/src/Viewers/SceneViewer.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass MaterialGroup {\r\n constructor(groupName) {\r\n this.materials = [];\r\n this.guid = Zakeke.generateUUID();\r\n this.groupName = groupName;\r\n }\r\n}\r\nvar SourceTaskStatus;\r\n(function (SourceTaskStatus) {\r\n SourceTaskStatus[SourceTaskStatus[\"uploading\"] = 0] = \"uploading\";\r\n SourceTaskStatus[SourceTaskStatus[\"progress\"] = 1] = \"progress\";\r\n SourceTaskStatus[SourceTaskStatus[\"checking\"] = 2] = \"checking\";\r\n SourceTaskStatus[SourceTaskStatus[\"success\"] = 3] = \"success\";\r\n SourceTaskStatus[SourceTaskStatus[\"completed_success\"] = 4] = \"completed_success\";\r\n SourceTaskStatus[SourceTaskStatus[\"completed_error\"] = 5] = \"completed_error\";\r\n})(SourceTaskStatus || (SourceTaskStatus = {}));\r\nclass SceneEditor extends _SceneViewer__WEBPACK_IMPORTED_MODULE_10__.SceneViewer {\r\n constructor(options) {\r\n super({ configPreview: true });\r\n this._dracoEnabled = true;\r\n // Sets the desired encoding and decoding speed for the given options.\r\n //\r\n // 0 = slowest speed, but the best compression.\r\n // 10 = fastest, but the worst compression.\r\n // -1 = undefined.\r\n //\r\n // Note that both speed options affect the encoder choice of used methods and\r\n // algorithms. For example, a requirement for fast decoding may prevent the\r\n // encoder from using the best compression methods even if the encoding speed\r\n // is set to 0. In general, the faster of the two options limits the choice of\r\n // features that can be used by the encoder. Additionally, setting\r\n // |decoding_speed| to be faster than the |encoding_speed| may allow the\r\n // encoder to choose the optimal method out of the available features for the\r\n // given |decoding_speed|.\r\n this._dracoEncodingSpeed = 5;\r\n this._dracoDecodingSpeed = 5;\r\n this._envMode = _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor;\r\n this._selectOnPick = true;\r\n this._showBoundingBox = false;\r\n this._editorBackgroundColor = \"#444444\";\r\n this._showGround = true;\r\n this._ground = null;\r\n this._showLights = false;\r\n this._lightsLayer = null;\r\n this._showAxes = false;\r\n this._axesLayer = null;\r\n this._showHighlight = true;\r\n this._highlightOver = true;\r\n this._highlightOverColor = \"#0082ff\";\r\n this._editingMode = _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EditingMode.None;\r\n this._manipulatedNode = null;\r\n this._oldManipulatedNode = null;\r\n this._EditControl = org.ssatguru.babylonjs.component.EditControl;\r\n this._editControl = null;\r\n this._editControlVisible = false;\r\n this._shiftPressed = false;\r\n this._ctrlPressed = false;\r\n this._realMeshVisibility = {};\r\n this._sceneSourceTasks = [];\r\n this._isLoadingSourceFiles = false;\r\n // Per gli eventi\r\n this._preUpdateListeners = [];\r\n this._postUpdateListeners = [];\r\n this._meshSelectedListeners = [];\r\n this._selectionChangedListeners = [];\r\n this._lightSelectedListeners = [];\r\n this._sceneCreatedListeners = [];\r\n this._cameraLocationCreatedListeners = [];\r\n this._sceneSourceTaskSuccessListeners = []; // Per comunicare che l'importazione dei file ha avuto successo\r\n this._sceneSourceTaskErrorListeners = []; // Per notificare che l'importazione dei file è andata in errore\r\n this._sceneSourceTasksCheckListeners = []; // Eseguita ad ogni tick/controllo della task per avere l'elenco aggiornato delle tasks\r\n this._meshesUpdateListeners = []; // Quando qualcosa nella struttura delle mesh cambia, oppure cambia una singola mesh\r\n this._materialsUpdateListeners = []; // Quando qualcosa nella struttura del materiali cambia, oppure un singolo materiale\r\n this._lightsUpdateListeners = []; // Quando qualcosa nella struttura delle luci cambia, oppure una singola luce\r\n this._cameraLocationsUpdateListeners = [];\r\n this._meshLocationCreatedListeners = [];\r\n this._meshLocationsUpdateListeners = [];\r\n this._arTaskSuccessListeners = []; // Per comunicare che la conversione dei file per AR ha avuto successo\r\n this._arTaskErrorListeners = []; // Per notificare che la conversione dei file per AR è andata in errore\r\n this._arTasksCheckListeners = []; // Eseguita ad ogni tick/controllo del task per avere l'elenco aggiornato dei tasks\r\n // Materiali iniziali\r\n this._initialMeshMaterials = {}; // hash meshID -> materialID\r\n this._initialSubMeshMaterials = {}; // hash subMeshID -> materialID\r\n // Ultimi material applicati\r\n this._lastMeshMaterials = {}; // hash meshID -> materialID\r\n this._lastSubMeshMaterials = {}; // hash subMeshID -> materialID\r\n this._meshOver = null;\r\n this._incrementalFilesMaker = null;\r\n this._sceneToBlobs = null;\r\n if (options) {\r\n if (options.showGround != undefined && options.showGround != null)\r\n this._showGround = options.showGround;\r\n if (options.editorBackgroundColor !== undefined && options.editorBackgroundColor !== null)\r\n this._editorBackgroundColor = options.editorBackgroundColor;\r\n if (options.showHighlight !== undefined && options.showHighlight !== null)\r\n this._showHighlight = options.showHighlight;\r\n if (options.highlightColor !== undefined && options.highlightColor !== null)\r\n this._highlightColor = options.highlightColor;\r\n if (options.highlightOver !== undefined && options.highlightOver != null)\r\n this._highlightOver = options.highlightOver;\r\n if (options.highlightOverColor !== undefined && options.highlightOverColor != null)\r\n this._highlightOverColor = options.highlightOverColor;\r\n }\r\n }\r\n // Real mesh visibility\r\n get realMeshVisibility() {\r\n return this._realMeshVisibility;\r\n }\r\n // Environemnt manager\r\n get environmentManager() {\r\n return this._environmentManager;\r\n }\r\n // EnvMode\r\n get envMode() {\r\n return this._envMode;\r\n }\r\n // Source tasks\r\n get sceneSourceTasks() {\r\n return this._sceneSourceTasks;\r\n }\r\n set envMode(value) {\r\n if (this._envMode != value) {\r\n this._envMode = value;\r\n this.refreshEnvironment();\r\n }\r\n }\r\n // SelectOnPick\r\n get selectOnPick() {\r\n return this._selectOnPick;\r\n }\r\n set seletOnPick(value) {\r\n if (this._selectOnPick != value)\r\n this._selectOnPick = value;\r\n }\r\n // ShowBoundingBox\r\n get showBoundingBox() {\r\n return this._showBoundingBox;\r\n }\r\n set showBoundingBox(value) {\r\n if (this._showBoundingBox != value) {\r\n this._showBoundingBox = value;\r\n this.updateBoundingBox();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n // EditorBackgroundColor\r\n get editorBackgroundColor() {\r\n return this._editorBackgroundColor;\r\n }\r\n set editorBackgroundColor(value) {\r\n if (this._editorBackgroundColor != value) {\r\n this.setEditorBackgroundColor(value);\r\n }\r\n }\r\n // ShowGround\r\n get showGround() {\r\n return this._showGround;\r\n }\r\n set showGround(value) {\r\n if (this._showGround != value) {\r\n this._showGround = value;\r\n this.refreshGround();\r\n }\r\n }\r\n // ShowLights\r\n get showLights() {\r\n return this._showLights;\r\n }\r\n set showLights(value) {\r\n if (this._showLights != value) {\r\n this._showLights = value;\r\n if (this._lightsLayer)\r\n this._lightsLayer.refresh();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n // ShowAxes\r\n get showAxes() {\r\n return this._showAxes;\r\n }\r\n set showAxes(value) {\r\n if (this._showAxes != value) {\r\n this._showAxes = value;\r\n if (this._axesLayer)\r\n this._axesLayer.refresh();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n // ShowHighlight\r\n get showHighlight() {\r\n return this._showHighlight;\r\n }\r\n set showHighlight(value) {\r\n if (this._showHighlight != value) {\r\n this._showHighlight = value;\r\n }\r\n }\r\n // HighlightOver\r\n get highlightOver() {\r\n return this._highlightOver;\r\n }\r\n set highlightOver(value) {\r\n if (this._highlightOver != value) {\r\n this._highlightOver = value;\r\n }\r\n }\r\n // HighlightOverColor\r\n get highlightOverColor() {\r\n return this._highlightOverColor;\r\n }\r\n set highlightOverColor(value) {\r\n if (this._highlightOverColor != value) {\r\n this._highlightOverColor = value;\r\n }\r\n }\r\n // EditingMode\r\n get editingMode() {\r\n return this._editingMode;\r\n }\r\n set editingMode(value) {\r\n if (this._editingMode != value) {\r\n this.setEditingMode(value);\r\n }\r\n }\r\n // EditingControlVisible\r\n get editControlVisible() {\r\n return this._editControlVisible;\r\n }\r\n set editControlVisible(value) {\r\n if (this._editControlVisible != value) {\r\n this.showHideEditControl(value);\r\n }\r\n }\r\n static createSceneEditorAsync(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const editor = new SceneEditor(options);\r\n yield editor.initAsync();\r\n editor.checkSceneSourceTasks();\r\n return editor;\r\n });\r\n }\r\n createCanvas() {\r\n const canvas = super.createCanvas();\r\n canvas.addEventListener(\"keydown\", (e) => {\r\n this._shiftPressed = e.key == \"Shift\";\r\n this._ctrlPressed = e.key == \"Control\";\r\n }, false);\r\n canvas.addEventListener(\"keyup\", (e) => {\r\n this._shiftPressed = !(e.key == \"Shift\");\r\n this._ctrlPressed = !(e.key == \"Control\");\r\n }, false);\r\n canvas.addEventListener(\"dblclick\", (e) => {\r\n this.setRenderingNeeded();\r\n });\r\n return canvas;\r\n }\r\n deleteComponents() {\r\n super.deleteComponents();\r\n if (this._editControl) {\r\n this._editControl.detach();\r\n this._editControl = null;\r\n }\r\n if (this._lightsLayer) {\r\n this._lightsLayer.dispose();\r\n this._lightsLayer = null;\r\n }\r\n if (this._axesLayer) {\r\n this._axesLayer.dispose();\r\n this._axesLayer = null;\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n if (this._incrementalFilesMaker) {\r\n this._incrementalFilesMaker.dispose();\r\n delete this._incrementalFilesMaker;\r\n }\r\n if (this._sceneToBlobs) {\r\n this._sceneToBlobs.dispose();\r\n delete this._sceneToBlobs;\r\n }\r\n // ...\r\n }\r\n createEngine() {\r\n super.createEngine();\r\n // Forzo il caricamento totale per i file incrementali\r\n BABYLON.SceneLoader.ForceFullSceneLoadingForIncremental = true;\r\n }\r\n createEmptySceneAsync() {\r\n const _super = Object.create(null, {\r\n createEmptySceneAsync: { get: () => super.createEmptySceneAsync }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield _super.createEmptySceneAsync.call(this);\r\n if (this._engine) {\r\n this.fireSceneCreatedEvent();\r\n }\r\n });\r\n }\r\n setupSceneAsync() {\r\n const _super = Object.create(null, {\r\n setupSceneAsync: { get: () => super.setupSceneAsync }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield _super.setupSceneAsync.call(this);\r\n if (this._engine && this._scene) {\r\n this._scene.setRenderingAutoClearDepthStencil(1, true, true, false);\r\n this._scene.setRenderingAutoClearDepthStencil(2, true, true, false);\r\n this._lightsLayer = new _Layers_LightsLayer__WEBPACK_IMPORTED_MODULE_8__.LightsLayer(this);\r\n this._lightsLayer.addLightSelectedListener((event) => { this.lightsLayer_onLightSelected(event); });\r\n this.setupAxes();\r\n if (this._zkModel && this._meshLocationsManager) {\r\n this._meshLocationsManager.addBeforeSaveMeshLocationListener(() => this.onBeforeSaveMeshLocation());\r\n this._meshLocationsManager.addAfterSaveMeshLocationListener(() => this.onAfterSaveMeshLocation());\r\n }\r\n this._scene.onPointerMove = (evt, pickInfo) => this.onPointerMove(evt, pickInfo);\r\n }\r\n });\r\n }\r\n render() {\r\n this.firePreUpdateEvent();\r\n super.render();\r\n if (this._lightsLayer)\r\n this._lightsLayer.render();\r\n if (this._axesLayer)\r\n this._axesLayer.render();\r\n this.firePostUpdateEvent();\r\n }\r\n deleteHighlightLayer() {\r\n if (this._highlightLayer) {\r\n this._highlightLayer.dispose();\r\n this._highlightLayer = null;\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n setupAntialiasPostProcesses() {\r\n if (this.antialias && this.getAntialiasEnabled()) {\r\n this.createAntialiasPostProcesses();\r\n this.disableAntialiasing();\r\n }\r\n }\r\n canEnableAntialiasing() {\r\n return (this._scene && this._antialias && this.getAntialiasEnabled() && this.envMode === _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Viewer);\r\n }\r\n setupHighlightLayerIntensity() {\r\n if (this._highlightLayer) {\r\n this._highlightLayer.blurHorizontalSize = this._highlightBlurHorizontalSize;\r\n this._highlightLayer.blurVerticalSize = this._highlightBlurVerticalSize;\r\n }\r\n }\r\n setupAxes() {\r\n this._axesLayer = new _Layers_AxesLayer__WEBPACK_IMPORTED_MODULE_7__.AxesLayer(this);\r\n }\r\n getMatchSameNameTextures() {\r\n if (this._zkScene) {\r\n let val = this._zkScene.getMatchSameNameTextures();\r\n if (val === undefined || val === null)\r\n return false;\r\n return val;\r\n }\r\n return false;\r\n }\r\n setMatchSameNameTextures(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setMatchSameNameTextures(value);\r\n }\r\n }\r\n getAREnabled() {\r\n let def = false;\r\n if (this._zkScene) {\r\n let val = this._zkScene.getAREnabled();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setAREnabled(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setAREnabled(value);\r\n }\r\n }\r\n getArOnTheFly() {\r\n let def = false;\r\n if (this._zkScene) {\r\n let val = this._zkScene.getArOnTheFly();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setArOnTheFly(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setArOnTheFly(value);\r\n }\r\n }\r\n getTryOnEnabled() {\r\n let def = false;\r\n if (this._zkScene) {\r\n let val = this._zkScene.getTryOnEnabled();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setTryOnEnabled(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setTryOnEnabled(value);\r\n }\r\n }\r\n getUseDelayedMaterialLoading() {\r\n let def = false;\r\n if (this.zkScene) {\r\n let val = this.zkScene.getUseDelayedMaterialLoading();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setUseDelayedMaterialLoading(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setUseDelayedMaterialLoading(value);\r\n }\r\n }\r\n getUseDelayedTextureLoading() {\r\n const def = false;\r\n if (this._zkScene) {\r\n let val = this._zkScene.getUseDelayedTextureLoading();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setUseDelayedTextureLoading(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setUseDelayedTextureLoading(value);\r\n }\r\n }\r\n getGlowEnabled() {\r\n if (this._glowManager)\r\n return this._glowManager.enabled;\r\n return false;\r\n }\r\n setGlowEnabled(enabled) {\r\n if (this._glowManager) {\r\n this._glowManager.enabled = enabled;\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n getGlowIntensity() {\r\n if (this._glowManager)\r\n return this._glowManager.intensity;\r\n return 1;\r\n }\r\n setGlowIntensity(intensity) {\r\n if (this._glowManager) {\r\n this._glowManager.intensity = intensity;\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n getGlowBlurSize() {\r\n if (this._glowManager)\r\n return this._glowManager.blurSize;\r\n return 16;\r\n }\r\n setGlowBlurSize(blurSize) {\r\n if (this._glowManager) {\r\n this._glowManager.blurSize = blurSize;\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n getInfoPointsEnabled() {\r\n let def = false;\r\n if (this._zkScene) {\r\n let val = this._zkScene.getInfoPointsEnabled();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setInfoPointsEnabled(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setInfoPointsEnabled(value);\r\n }\r\n this.refreshInfoPoints();\r\n }\r\n getInfoPointsBorderColor() {\r\n const def = \"\";\r\n if (this._zkScene) {\r\n const val = this._zkScene.getInfoPointsBorderColor();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setInfoPointsBorderColor(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setInfoPointsBorderColor(value);\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n getInfoPointsInnerPointColor() {\r\n const def = \"\";\r\n if (this._zkScene) {\r\n const val = this._zkScene.getInfoPointsInnerPointColor();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setInfoPointsInnerPointColor(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setInfoPointsInnerPointColor(value);\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n getInfoPointsColor() {\r\n const def = \"\";\r\n if (this._zkScene) {\r\n const val = this._zkScene.getInfoPointsColor();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setInfoPointsColor(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setInfoPointsColor(value);\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n getInfoPointsHighlightColor() {\r\n const def = \"\";\r\n if (this._zkScene) {\r\n const val = this._zkScene.getInfoPointsHighlightColor();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setInfoPointsHighlightColor(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setInfoPointsHighlightColor(value);\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n enableGlowForMesh(mesh) {\r\n if (this._glowManager) {\r\n this._glowManager.enableGlowForMesh(mesh);\r\n }\r\n }\r\n disableGlowForMesh(mesh) {\r\n if (this._glowManager) {\r\n this._glowManager.disableGlowForMesh(mesh);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n enableARForMesh(mesh) {\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.AR = true;\r\n }\r\n }\r\n disableARForMesh(mesh) {\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.AR = false;\r\n }\r\n }\r\n disableTryOnForMesh(mesh) {\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.TryOn = false;\r\n mesh.getChildMeshes().forEach(child => this.disableTryOnForMesh(child));\r\n }\r\n }\r\n enableTryOnForMesh(mesh) {\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.TryOn = true;\r\n mesh.getChildMeshes().forEach(child => this.enableTryOnForMesh(child));\r\n }\r\n }\r\n enableInfoPointsForMesh(mesh) {\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.showInfoPoints = true;\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n disableInfoPointsForMesh(mesh) {\r\n if (mesh && mesh.metadata &&\r\n mesh.metadata.showInfoPoints !== undefined &&\r\n mesh.metadata.showInfoPoints !== null) {\r\n delete mesh.metadata.showInfoPoints;\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n enableForcedInfoPointsVisibilityOnMesh(mesh) {\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.forceShowInfoPoints = true;\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n disableForcedInfoPointsVisibilityOnMesh(mesh) {\r\n if (mesh && mesh.metadata &&\r\n mesh.metadata.forceShowInfoPoints !== undefined &&\r\n mesh.metadata.forceShowInfoPoints !== null) {\r\n delete mesh.metadata.forceShowInfoPoints;\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n setEditorBackgroundColor(hexColor) {\r\n this._editorBackgroundColor = hexColor;\r\n this.refreshEnvironment();\r\n }\r\n setViewerBackgroundAlpha(alpha) {\r\n if (this._zkScene) {\r\n const generalConfig = this._zkScene.getOrCreateGeneralConfig();\r\n generalConfig.set(\"backgroundAlpha\", alpha);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerBackgroundColor(hexColor) {\r\n if (this._zkScene) {\r\n const generalConfig = this._zkScene.getOrCreateGeneralConfig();\r\n generalConfig.set(\"backgroundColor\", hexColor);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerEnvironmentSizeAuto(sizeAuto) {\r\n if (this._zkScene) {\r\n const environmentConfig = this._zkScene.getOrCreateEnvironmentConfig();\r\n environmentConfig.set(\"sizeAuto\", sizeAuto);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerEnvironmentMainColor(hexColor) {\r\n if (this._zkScene) {\r\n const environmentConfig = this._zkScene.getOrCreateEnvironmentConfig();\r\n environmentConfig.set(\"mainColor\", hexColor);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerSkyboxCreateSkybox(createSkybox) {\r\n if (this._zkScene) {\r\n const skyboxConfig = this._zkScene.getOrCreateSkyboxConfig();\r\n skyboxConfig.set(\"createSkybox\", createSkybox);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerSkyboxSize(size) {\r\n if (this._zkScene) {\r\n const skyboxConfig = this._zkScene.getOrCreateSkyboxConfig();\r\n skyboxConfig.set(\"size\", size);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerSkyboxBlur(blur) {\r\n if (this._zkScene) {\r\n let blurSize = blur >= 0 ? blur : 0;\r\n const skyboxConfig = this._zkScene.getOrCreateSkyboxConfig();\r\n skyboxConfig.set(\"blur\", blurSize);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerSkyboxTexture(url, extensions, files) {\r\n if (this._zkScene && url != undefined && typeof (url) === \"string\") {\r\n const skyboxConfig = this._zkScene.getOrCreateSkyboxConfig();\r\n skyboxConfig.set(\"texture\", url);\r\n skyboxConfig.set(\"extensions\", extensions);\r\n skyboxConfig.set(\"files\", files);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n removeViewerSkyboxTexture() {\r\n if (this._zkScene) {\r\n const skyboxConfig = this._zkScene.getSkyboxConfig();\r\n if (skyboxConfig && skyboxConfig.get(\"texture\") != undefined) {\r\n skyboxConfig.unset(\"texture\");\r\n this.refreshEnvironment();\r\n }\r\n }\r\n }\r\n setViewerSkyboxColor(hexColor) {\r\n if (this._zkScene && hexColor != undefined && typeof (hexColor) === \"string\") {\r\n const skyboxConfig = this._zkScene.getOrCreateSkyboxConfig();\r\n skyboxConfig.set(\"color\", hexColor);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundCreateGround(createGround) {\r\n if (this._zkScene && createGround != undefined && typeof (createGround) === \"boolean\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"createGround\", createGround);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundSize(size) {\r\n if (this._zkScene) {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"size\", size);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundTexture(url) {\r\n if (this._zkScene && url != undefined && typeof (url) === \"string\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"texture\", url);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n removeViewerGroundTexture() {\r\n if (this._zkScene) {\r\n const groundConfig = this._zkScene.getGroundConfig();\r\n if (groundConfig && groundConfig.get(\"texture\") != undefined) {\r\n groundConfig.unset(\"texture\");\r\n this.refreshEnvironment();\r\n }\r\n }\r\n }\r\n setViewerGroundColor(hexColor) {\r\n if (this._zkScene && hexColor != undefined && typeof (hexColor) === \"string\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"color\", hexColor);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundOpacity(opacity) {\r\n if (this._zkScene && opacity != undefined && typeof (opacity) === \"number\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"opacity\", opacity);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundEnableShadow(enableShadow) {\r\n if (this._zkScene && enableShadow != undefined && typeof (enableShadow) === \"boolean\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"enableShadow\", enableShadow);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundShadowLevel(shadowLevel) {\r\n if (this._zkScene && shadowLevel != undefined && typeof (shadowLevel) === \"number\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"shadowLevel\", shadowLevel);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundEnableMirror(enableMirror) {\r\n if (this._zkScene && enableMirror != undefined && typeof (enableMirror) === \"boolean\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"enableMirror\", enableMirror);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerGroundMirrorBlur(mirrorBlur) {\r\n if (this._zkScene && mirrorBlur != undefined && typeof (mirrorBlur) === \"number\") {\r\n const groundConfig = this._zkScene.getOrCreateGroundConfig();\r\n groundConfig.set(\"mirrorBlurKernel\", mirrorBlur);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerCameraAutoRotate(autoRotate) {\r\n if (this._zkScene && autoRotate != undefined && typeof (autoRotate) === \"boolean\") {\r\n const cameraConfig = this._zkScene.getOrCreateCameraConfig();\r\n cameraConfig.set(\"autoRotate\", autoRotate);\r\n this.autoRender = autoRotate;\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerCameraContrast(contrast) {\r\n if (this._zkScene && contrast != undefined && typeof (contrast) === \"number\") {\r\n const cameraConfig = this._zkScene.getOrCreateCameraConfig();\r\n cameraConfig.set(\"contrast\", contrast);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerCameraExposure(exposure) {\r\n if (this._zkScene && exposure != undefined && typeof (exposure) === \"number\") {\r\n const cameraConfig = this._zkScene.getOrCreateCameraConfig();\r\n cameraConfig.set(\"exposure\", exposure);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n setViewerCameraToneMappingEnabled(toneMappingEnabled) {\r\n if (this._zkScene && toneMappingEnabled != undefined && typeof (toneMappingEnabled) === \"boolean\") {\r\n const cameraConfig = this._zkScene.getOrCreateCameraConfig();\r\n cameraConfig.set(\"toneMappingEnabled\", toneMappingEnabled);\r\n this.refreshEnvironment();\r\n }\r\n }\r\n resetEditorEnvironment() {\r\n this.resetEditorBackground();\r\n this.resetEditorCamera();\r\n this.setRenderingNeeded();\r\n }\r\n resetEditorBackground() {\r\n if (this._scene) {\r\n this._scene.clearColor = BABYLON.Color3.FromHexString(this._editorBackgroundColor).toColor4();\r\n this.refreshGround();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n resetEditorCamera() {\r\n if (this._scene) {\r\n const camera = this._scene.activeCamera;\r\n if (camera instanceof BABYLON.ArcRotateCamera)\r\n camera.useAutoRotationBehavior = false;\r\n this._autoRender = false;\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n preSceneContentScreenshot() {\r\n this.resetEditorEnvironment();\r\n this.removeGround();\r\n }\r\n postSceneContentScreenshot() {\r\n }\r\n preSceneMaterialScreenshot() {\r\n super.preSceneMaterialScreenshot();\r\n this.adjustSceneForSerialization();\r\n }\r\n postSceneMaterialScreenshot() {\r\n super.postSceneMaterialScreenshot();\r\n }\r\n sceneReadyForSave() {\r\n if (this._scene) {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (!mesh.isReady())\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n isCurrentCameraPivot(meshID) {\r\n if (this._sceneHelper) {\r\n const cameraPivot = this._sceneHelper.getCameraPivot();\r\n return cameraPivot && cameraPivot.id === meshID;\r\n }\r\n return false;\r\n }\r\n getCurrentCameraPivotID() {\r\n if (this._scene && this._sceneHelper) {\r\n const cameraPivot = this._sceneHelper.getCameraPivot();\r\n if (cameraPivot) {\r\n const mesh = this._scene.getMeshByID(cameraPivot.id);\r\n if (mesh)\r\n return mesh.id;\r\n }\r\n }\r\n return null;\r\n }\r\n // Riscritta quella di SceneViewer perché viene salvata l'informazione\r\n // sul nuovo pivot, non solo modifcato il punto di vista\r\n setCameraPivot(meshID) {\r\n if (this._scene && this._sceneHelper) {\r\n // Elmino il pivot corrente\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n var m = this._scene.meshes[i];\r\n if (m.metadata && m.metadata.isCameraPivot != undefined)\r\n delete m.metadata.isCameraPivot;\r\n }\r\n if (meshID) {\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n mesh.metadata = mesh.metadata || {};\r\n mesh.metadata.isCameraPivot = true;\r\n }\r\n this._sceneHelper.setCameraPivot(mesh || null);\r\n }\r\n else {\r\n this._sceneHelper.setCameraPivot(null);\r\n }\r\n }\r\n }\r\n // --------------------------------------------------------\r\n // Funzioni per il salvataggio della scena\r\n // --------------------------------------------------------\r\n getBlobFromEmbeddedTextureAsync(texture) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let blob = null;\r\n if (texture.url) {\r\n const url = texture.url;\r\n var fromData = url.substring(0, 5) === \"data:\";\r\n var fromBlob = url.substring(0, 5) === \"blob:\";\r\n var isBase64 = fromData && url.indexOf(\";base64,\") !== -1;\r\n if (fromData && texture._buffer && (texture._buffer instanceof ArrayBuffer || texture._buffer instanceof Uint8Array || texture._buffer instanceof Blob)) {\r\n if (texture._buffer instanceof Blob)\r\n blob = texture._buffer;\r\n else if (texture._buffer instanceof Uint8Array)\r\n blob = new Blob([texture._buffer], { type: texture.mimeType });\r\n else if (texture._buffer instanceof ArrayBuffer)\r\n blob = new Blob([new Uint8Array(texture._buffer)], { type: texture.mimeType });\r\n }\r\n else if (fromBlob) {\r\n yield new Promise(resolve => {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function (e) {\r\n if (this.status == 200) {\r\n resolve(this.response);\r\n }\r\n };\r\n xhr.send();\r\n });\r\n }\r\n else if (isBase64) {\r\n const buffer = new Uint8Array(BABYLON.Tools.DecodeBase64(url));\r\n blob = new Blob([buffer], { type: texture.mimeType });\r\n }\r\n }\r\n return blob;\r\n });\r\n }\r\n uploadEmbeddedTexturesAsync(onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const textureToUpload = [];\r\n if (this._zkScene && this._scene && this._sceneHelper) {\r\n const scene = this._scene;\r\n const zkScene = this._zkScene;\r\n const sceneHelper = this._sceneHelper;\r\n const materials = this.getAllMaterials();\r\n materials.forEach(m => {\r\n const textures = m.getActiveTextures().filter(t => t instanceof BABYLON.Texture);\r\n textures.forEach(t => {\r\n if (t.url) {\r\n var fromData = t.url.substring(0, 5) === \"data:\";\r\n var fromBlob = t.url.substring(0, 5) === \"blob:\";\r\n var isBase64 = fromData && t.url.indexOf(\";base64,\") !== -1;\r\n if (fromData || fromBlob || isBase64) {\r\n const type = sceneHelper.getMaterialTextureType(m, t);\r\n if (type) {\r\n textureToUpload.push({\r\n texture: t,\r\n material: m,\r\n type: type\r\n });\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n let perc = 0;\r\n for (let i = 0; i < textureToUpload.length; i++) {\r\n const info = textureToUpload[i];\r\n const texture = info.texture;\r\n const blob = yield this.getBlobFromEmbeddedTextureAsync(texture);\r\n if (blob) {\r\n let extension = \".png\";\r\n if (texture.mimeType === \"image/jpeg\")\r\n extension = \".jpg\";\r\n const name = info.type.replace(' ', '_');\r\n //const filename = `${Utils.getRandomString(8, \"0123456789abcdefghijklmnopqrstuvwxyz\")}${extension}`;\r\n const filename = `${name}${extension}`;\r\n let file = new File([blob], filename);\r\n const zkTexture = yield this.uploadTextureFileAsync(file, info.material);\r\n if (zkTexture) {\r\n const newUrl = zkTexture.get(\"url\");\r\n if (newUrl) {\r\n yield new Promise((resolve, reject) => {\r\n texture.updateURL(newUrl, undefined, () => resolve(), () => reject());\r\n });\r\n }\r\n }\r\n if (onProgress)\r\n onProgress(i / textureToUpload.length * 100, \"textures\");\r\n }\r\n }\r\n });\r\n }\r\n useIncrementalLoading() {\r\n if (this._sceneHelper) {\r\n //var vertices = this.sceneHelper.getHiddenMeshTotalVertices();\r\n //var indices = this.sceneHelper.getHiddenMeshTotalIndices();\r\n const vertices = this._sceneHelper.getTotalVertices();\r\n const indices = this._sceneHelper.getTotalIndices();\r\n if (vertices + indices >= 1000)\r\n return true;\r\n }\r\n return false;\r\n }\r\n // Prepara il modello backbone zkScene per il salvataggio. Nel dettaglio:\r\n // 1. Esegue lo screenshot della scena e imposta i byte nel modello zkScene\r\n // 2. Recupera il JSON della scena da Babylon JS. \r\n // 3. Esegue l'upload del file in modo che possa essere salvato nel percorso previsto per la scena corrente.\r\n // 4. Aggiorna il modello impostando i dati relativi al file \"uploadato\" (essenzialmente il fileObject)\r\n updateSceneModel(onSuccess, onError, onProgress) {\r\n if (this._zkScene && this._scene) {\r\n const scene = this._scene;\r\n const zkScene = this._zkScene;\r\n this.resetRealVisibility();\r\n const infoPointsShown = this.infoPointsShown;\r\n if (infoPointsShown)\r\n this.hideInfoPoints();\r\n this.uploadEmbeddedTexturesAsync((perc, type) => {\r\n if (onProgress)\r\n onProgress(perc, type);\r\n }).then(() => {\r\n this.getSceneScreenshotAsync(500, 450).then((data) => {\r\n if (infoPointsShown)\r\n this.showInfoPoints();\r\n zkScene.set(\"imageData\", data);\r\n // Incremento la versione\r\n zkScene.set(\"version\", zkScene.get(\"version\") + 1);\r\n // Si potrebbe rendere opzionale il caricamento incrementale\r\n var incremental = this.useIncrementalLoading();\r\n if (!incremental) {\r\n // Salvo il file di scena per intero\r\n this.uploadSceneFile((sceneFileInfo) => {\r\n this.onUploadScenFileSuccess(sceneFileInfo);\r\n if (onSuccess)\r\n onSuccess();\r\n }, (reason) => {\r\n if (onError)\r\n onError(reason);\r\n }, (percentage, type) => {\r\n if (onProgress)\r\n onProgress(percentage, type);\r\n });\r\n }\r\n else {\r\n // Salvo il file di scena in maniera incrementale\r\n this.uploadSceneIncrementalFiles((sceneFileInfo) => {\r\n this.onUploadScenFileSuccess(sceneFileInfo);\r\n if (onSuccess)\r\n onSuccess();\r\n }, (reason) => {\r\n if (onError)\r\n onError(reason);\r\n }, (percentage) => {\r\n if (onProgress)\r\n onProgress(percentage);\r\n });\r\n }\r\n });\r\n }).catch((reason) => {\r\n if (onError)\r\n onError(reason);\r\n });\r\n }\r\n }\r\n // Aggiorna il modello con i dati sul file di scena salvato\r\n onUploadScenFileSuccess(sceneFileInfo) {\r\n if (this._zkScene && sceneFileInfo && sceneFileInfo.hasOwnProperty(\"fileObjectID\") && sceneFileInfo.hasOwnProperty(\"rootUrl\") && sceneFileInfo.hasOwnProperty(\"sceneFileName\") && sceneFileInfo.hasOwnProperty(\"manifestFileObjectID\") && sceneFileInfo.hasOwnProperty(\"incrementalsFileObjectID\")) {\r\n // Aggiorno il modello in modo che riporti i dati del file di scena salvato\r\n this._zkScene.set(\"fileObjectID\", sceneFileInfo.fileObjectID);\r\n this._zkScene.set(\"url\", sceneFileInfo.url);\r\n this._zkScene.set(\"rootUrl\", sceneFileInfo.rootUrl);\r\n this._zkScene.set(\"sceneFileName\", sceneFileInfo.sceneFileName);\r\n this._zkScene.set(\"manifestFileObjectID\", sceneFileInfo.manifestFileObjectID);\r\n this._zkScene.set(\"incrementalsFileObjectID\", sceneFileInfo.incrementalsFileObjectID);\r\n }\r\n else\r\n Logger.info(\"le informazioni sul file di scena salvato sono vuote o incorrette\");\r\n }\r\n uploadSceneFile(onSuccess, onError, onProgress) {\r\n if (!this._scene || !this._zkScene) {\r\n if (onError)\r\n onError(\"No scene to upload\");\r\n return;\r\n }\r\n const scene = this._scene;\r\n const zkScene = this._zkScene;\r\n const version = zkScene.get(\"version\");\r\n const json = this.getSceneJson();\r\n const param = { json, version };\r\n this.getSceneFileBlobsAsync(json, version, (percentage) => {\r\n if (onProgress)\r\n onProgress(percentage, \"optimize\");\r\n }).then(blobInfos => {\r\n // Blobs ricevuti, ora va fallo l'upload sul server\r\n const formData = new FormData();\r\n for (let i = 0; i < blobInfos.length; i++) {\r\n const blobInfo = blobInfos[i];\r\n formData.append('file_' + i, blobInfo.blob, blobInfo.name);\r\n }\r\n jQuery.ajax({\r\n url: zkScene.getSceneFileUploadUrl(),\r\n data: formData,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'POST',\r\n xhr: () => {\r\n let xhr = new XMLHttpRequest();\r\n //Upload progress\r\n xhr.upload.addEventListener(\"progress\", (evt) => {\r\n if (evt.lengthComputable) {\r\n const percentComplete = evt.loaded / evt.total;\r\n if (onProgress)\r\n onProgress(percentComplete * 100, \"upload\");\r\n }\r\n }, false);\r\n return xhr;\r\n },\r\n success: function (data) {\r\n if (onSuccess)\r\n onSuccess(data);\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n if (onError)\r\n onError(thrownError);\r\n }\r\n });\r\n });\r\n }\r\n getSceneFileBlobsAsync(json, version, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let blobInfos = [];\r\n if (!this._sceneToBlobs) {\r\n this._sceneToBlobs = _Components_SceneToBlobs_SceneToBlobs__WEBPACK_IMPORTED_MODULE_4__.SceneToBlobs.Default;\r\n }\r\n if (this._sceneToBlobs) {\r\n yield this._sceneToBlobs.whenReadyAsync();\r\n blobInfos = yield this._sceneToBlobs.getSceneBlobsAsync(json, version, onProgress);\r\n }\r\n return blobInfos;\r\n });\r\n }\r\n // Serializza in JSON la scena Babylon JS\r\n getSceneJson() {\r\n var _a;\r\n let json = \"\";\r\n if (this._scene && this._sceneHelper) {\r\n const oldEnvMode = this._envMode;\r\n this.setEnvironmentMode(_Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor);\r\n // Disabilito l'antialiasing per evitare che vengano serializzati anche i PassPostProcess\r\n this.disableAntialiasing(true);\r\n // Resetto i limiti di rotazione che comunque sono salvati nella configurazione della scena\r\n const oldLimits = this.resetCameraRotationLimits();\r\n this.deleteHighlightLayer();\r\n const manipulatedNode = this._manipulatedNode;\r\n this.setManipulatedNode(null);\r\n // Se useMaterialOffloading e !useDelayedMaterialLoading scarico tutti materiali non utilizzati e li ricarico dopo\r\n if (this.getUseMaterialOffloading() && !this.getUseDelayedMaterialLoading()) {\r\n this._sceneHelper.offloadAllUnusedMaterials();\r\n }\r\n // Sulle mesh nascosto imposto un materiale di default in modo da non caricare subiti materiali assegnati a mesh nascoste\r\n this._sceneHelper.setDummyMaterialToInvisibleMeshes();\r\n this.adjustSceneForSerialization();\r\n const serializedScene = BABYLON.SceneSerializer.Serialize(this._scene);\r\n serializedScene.postProcesses = []; // elimino gli eventuali post process\r\n json = JSON.stringify(serializedScene);\r\n // Ricarico gli eventuali materiali scaricati\r\n if (this.getUseMaterialOffloading() && !this.getUseDelayedMaterialLoading()) {\r\n const rootUrl = (_a = this._zkScene) === null || _a === void 0 ? void 0 : _a.get(\"rootUrl\");\r\n if (rootUrl)\r\n this._sceneHelper.loadAllOffloadedMaterials(rootUrl);\r\n }\r\n // Ripristino i materiali originali sulle mesh nascoste\r\n this._sceneHelper.unsetAllDummyMaterials();\r\n if (oldEnvMode != _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor)\r\n this.setEnvironmentMode(oldEnvMode);\r\n this.enableAntialiasing();\r\n this.createHighlightLayer();\r\n this.setManipulatedNode(manipulatedNode);\r\n // Reimposto i limiti correnti\r\n this.setCameraRotationLimits(oldLimits);\r\n }\r\n return json;\r\n }\r\n resetCameraRotationLimits() {\r\n const limits = {\r\n lowerAlphaLimit: null,\r\n upperAlphaLimit: null,\r\n lowerBetaLimit: null,\r\n upperBetaLimit: null\r\n };\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n limits.lowerAlphaLimit = this._camera.lowerAlphaLimit;\r\n limits.upperAlphaLimit = this._camera.upperAlphaLimit;\r\n limits.lowerBetaLimit = this._camera.lowerBetaLimit;\r\n limits.upperBetaLimit = this._camera.upperBetaLimit;\r\n this._camera.lowerAlphaLimit = null;\r\n this._camera.upperAlphaLimit = null;\r\n this._camera.lowerBetaLimit = 0.01;\r\n this._camera.upperBetaLimit = Math.PI - 0.01;\r\n }\r\n return limits;\r\n }\r\n setCameraRotationLimits(limits) {\r\n limits = limits || { lowerAlphaLimit: null, upperAlphaLimit: null, lowerBetaLimit: 0.01, upperBetaLimit: Math.PI - 0.01 };\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n this._camera.lowerAlphaLimit = limits.lowerAlphaLimit;\r\n this._camera.upperAlphaLimit = limits.upperAlphaLimit;\r\n this._camera.lowerBetaLimit = limits.lowerBetaLimit || 0.01;\r\n this._camera.upperBetaLimit = limits.upperBetaLimit || Math.PI - 0.01;\r\n }\r\n }\r\n // Metodo fondamentale per modificare gli url delle texture ed eliminare le \r\n // le texture non più utilizzate. In fase di caricamento della scena, Babylon JS\r\n // risolve il nome delle texture in base al path della scena. Quindi gli url delle\r\n // texture vanno, se necessario, trasformanti in path relativi.\r\n adjustSceneForSerialization() {\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const sceneHelper = this._sceneHelper;\r\n this.removeDisabledFresnelParameters();\r\n let delayedTextures = false;\r\n if (this._zkScene.getUseDelayedTextureLoading() != undefined)\r\n delayedTextures = this._zkScene.getUseDelayedTextureLoading();\r\n this._scene.useDelayedTextureLoading = delayedTextures;\r\n // Attenzione!\r\n // Prima della serializzazione della scena, è necessario sistemare il path delle texture.\r\n // Sostanzialmente modifico il nome della texture settando il path relativo\r\n // in modo che poi possa essere risolto come path assoluto relativo alla scena.\r\n // MatchSameNameTextures indica se nel salvataggio della scena due texture con lo stesso\r\n // nome possono essere considerate come uguali. In caso affermativo nella scena verrà\r\n // utilizzato solo l'url di una di esse, evitando qindi di scaricare più volte la stessa\r\n // immagine\r\n const matchSameNameTextures = this.getMatchSameNameTextures();\r\n const sourcesIDs = this._zkScene.getSourcesIDs();\r\n const libraryMaterialIDs = this._zkScene.getLibraryMaterialIDs();\r\n // per ogni id di materiale di libreria, contiene una mappa nome file texture --> url\r\n const libMaps = {};\r\n // mappa textureName -> url\r\n const urlMap = {};\r\n // Contiene gli url delle texture effettivamente usate nella scena. \r\n // Consente di eliminare dal modello zkScene tutte le texture non più utilizzate\r\n const usedTextureUrls = [];\r\n const onlyDesktopTextureUrls = [];\r\n const onlyMobileTextureUrls = [];\r\n // Da rivedere la gestione della mappa d'ambiente di default\r\n const envUrl = sceneHelper.getTextureUrl(this._scene.environmentTexture);\r\n //const useDefaultEnvironmentTexture = envUrl != null && envUrl == DefaultAssetUrls.Environment.EnvironmentTextureCDNUrl;\r\n const useDefaultEnvironmentTexture = envUrl !== null && envUrl.endsWith(_Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_9__.DefaultAssetUrls.Environment.EnvironmentTextureName);\r\n this._zkScene.set(\"useDefaultEnvironmentTexture\", useDefaultEnvironmentTexture);\r\n // La rotazione dell'environmentTexture purtroppo al momento non viene serializzata nella scena.\r\n // Utilizzo i metadati allora\r\n if (this._scene.environmentTexture &&\r\n (this._scene.environmentTexture instanceof BABYLON.CubeTexture || this._scene.environmentTexture instanceof BABYLON.HDRCubeTexture)) {\r\n const rotationY = this._scene.environmentTexture.rotationY;\r\n if (!this._scene.metadata)\r\n this._scene.metadata = {};\r\n this._scene.metadata.environmentTextureRotationY = rotationY;\r\n }\r\n this._scene.textures.forEach((txt) => {\r\n if (!sceneHelper.isTextureWithUrl(txt))\r\n return;\r\n let txtUrl = txt.url;\r\n if (txt.getInternalTexture) {\r\n const internalTexture = txt.getInternalTexture();\r\n if (internalTexture && internalTexture.url) {\r\n txtUrl = internalTexture.url;\r\n }\r\n }\r\n if (txtUrl) {\r\n let textureUrl = txtUrl;\r\n // EnvironmentTexture di default\r\n if (textureUrl === _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_9__.DefaultAssetUrls.Environment.EnvironmentTextureCDNUrl) {\r\n // La scena utilizza una environment texture di default\r\n // Impostanto useDefaultEnvironmnetTexture a true sulla scena\r\n // faccio in modo che, al momento del salvataggio sul server,\r\n // il file immagine venga copiato nello stesso percorso della scena\r\n // nella directory textures/00000000000000000000000000000000/\r\n txt.url = \"textures/\" + Zakeke.getEmptyUUID().replace(/-/g, \"\") + \"/\" + _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_9__.DefaultAssetUrls.Environment.EnvironmentTextureName;\r\n txt.name = txt.url;\r\n return;\r\n }\r\n // Skybox e ground di default. Verranno ricreate al caricamento della scena\r\n if (textureUrl == _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_9__.DefaultAssetUrls.Environment.SkyboxTextureCDNUrl ||\r\n textureUrl == _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_9__.DefaultAssetUrls.Environment.GroundTextureCDNUrl)\r\n return;\r\n // Altre texture\r\n let isSource = false;\r\n if (textureUrl.startsWith(\"blob:\") && txt.metadata && txt.metadata.fileUrl) {\r\n textureUrl = txt.metadata.fileUrl;\r\n }\r\n // Se la texture proviene da una sorgente, \r\n // allora devo prendere solo la parte dal codice sorgente in poi\r\n // name = \"{sourceID}/.../{filename.xxx}\"\r\n for (let i = 0; i < sourcesIDs.length; i++) {\r\n let sourceID = sourcesIDs[i].replace(/-/g, \"\");\r\n let idx = textureUrl.indexOf(sourceID);\r\n if (idx != -1) {\r\n isSource = true;\r\n txt.name = textureUrl.substring(idx);\r\n txt.url = txt.name;\r\n Logger.info(\"texture url: \" + txt.url);\r\n break;\r\n }\r\n }\r\n // Texture per materiali di libreria\r\n // Per i materiali di libreria avremo già un percorso del tipo \"textures/{libraryMaterialID}/{filename.xxx}\"\r\n // Sarà sufficiente sostituire \"libraryMaterialID\" con il nuovo id del materiale assegnato\r\n // nella scena corrente\r\n let isLibrary = false;\r\n if (txt[\"materialMapping\"]) {\r\n isLibrary = true;\r\n let libraryMaterialID = txt[\"materialMapping\"].libraryMaterialID.replace(/-/g, \"\");\r\n let sceneMaterialID = txt[\"materialMapping\"].sceneMaterialID.replace(/-/g, \"\");\r\n let finalUrl = textureUrl;\r\n let finalName = txt.name;\r\n let idx = textureUrl.indexOf(libraryMaterialID);\r\n if (idx != -1) {\r\n let libTxtUrl = textureUrl.replace(new RegExp(libraryMaterialID, 'g'), sceneMaterialID);\r\n finalUrl = libTxtUrl;\r\n finalName = libTxtUrl;\r\n let map = {};\r\n if (libMaps.hasOwnProperty(libraryMaterialID))\r\n map = libMaps[libraryMaterialID];\r\n else {\r\n libMaps[libraryMaterialID] = map;\r\n }\r\n idx = libTxtUrl.lastIndexOf(\"/\");\r\n if (idx !== -1) {\r\n let libTxtName = libTxtUrl.substring(idx + 1);\r\n if (map.hasOwnProperty(libTxtName)) {\r\n finalUrl = map[libTxtName];\r\n finalName = finalUrl;\r\n if (!_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.arrayContains(usedTextureUrls, finalUrl))\r\n usedTextureUrls.push(finalUrl);\r\n }\r\n else {\r\n idx = libTxtUrl.lastIndexOf(\"/\", idx - 1);\r\n if (idx !== -1) {\r\n idx = libTxtUrl.lastIndexOf(\"/\", idx - 1);\r\n if (idx != -1) {\r\n finalUrl = libTxtUrl.substring(idx + 1);\r\n finalName = finalUrl;\r\n if (!_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.arrayContains(usedTextureUrls, finalUrl))\r\n usedTextureUrls.push(finalUrl);\r\n if (matchSameNameTextures) {\r\n map[libTxtName] = finalUrl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n txt.name = finalName;\r\n txt.url = finalUrl;\r\n }\r\n }\r\n // Texture caricate dall'utente per un materiale\r\n // il percorso iniziale sarà del tipo ..../textures/{materialID}/{filename.xxx}\r\n // imposto il nome a \"textures/{materialID}/{filename.xxx}\"\r\n if (!isSource && !isLibrary) {\r\n const textureInfo = this.extractTextureNameAndUrl(textureUrl, matchSameNameTextures, urlMap);\r\n if (textureInfo.url && textureInfo.name) {\r\n txt.url = textureInfo.url;\r\n txt.name = textureInfo.name;\r\n if (!_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.arrayContains(usedTextureUrls, txt.url))\r\n usedTextureUrls.push(txt.url);\r\n }\r\n if (txt.metadata && txt.metadata.mobileUrl) {\r\n const mobileTextureInfo = this.extractTextureNameAndUrl(txt.metadata.mobileUrl, matchSameNameTextures, urlMap);\r\n if (mobileTextureInfo.url && mobileTextureInfo.name) {\r\n txt.metadata.mobileUrl = mobileTextureInfo.url;\r\n if (!_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.arrayContains(usedTextureUrls, txt.metadata.mobileUrl))\r\n usedTextureUrls.push(txt.metadata.mobileUrl);\r\n if (!_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.arrayContains(onlyMobileTextureUrls, txt.metadata.mobileUrl))\r\n onlyMobileTextureUrls.push(txt.metadata.mobileUrl);\r\n if (!_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.arrayContains(onlyDesktopTextureUrls, txt.url))\r\n onlyDesktopTextureUrls.push(txt.url);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n // Elimino dal modello zkScene tutte le texture non efettivamente utilizzate nella scena\r\n const suffixes = [\"px\", \"py\", \"pz\", \"nx\", \"ny\", \"nz\"];\r\n const clearCubeMapSuffix = (url) => {\r\n let idx = url.lastIndexOf(\".\");\r\n let newUrl = url;\r\n if (idx !== -1) {\r\n let nameWithoutExt = url.substring(0, idx);\r\n for (let p = 0; p < suffixes.length; p++) {\r\n const suffix = suffixes[p];\r\n idx = nameWithoutExt.lastIndexOf(\"_\" + suffix);\r\n if (idx != -1) {\r\n newUrl = nameWithoutExt.substring(0, idx);\r\n break;\r\n }\r\n }\r\n }\r\n return newUrl;\r\n };\r\n const isUsedTextureUrl = (url) => {\r\n const newUrl = clearCubeMapSuffix(url);\r\n for (let u = 0; u < usedTextureUrls.length; u++) {\r\n const usedUrl = usedTextureUrls[u];\r\n if (newUrl.endsWith(usedUrl))\r\n return true;\r\n }\r\n return false;\r\n };\r\n const isOnlyDesktopTextureUrl = (url) => {\r\n const newUrl = clearCubeMapSuffix(url);\r\n for (let u = 0; u < onlyDesktopTextureUrls.length; u++) {\r\n const usedUrl = onlyDesktopTextureUrls[u];\r\n if (newUrl.endsWith(usedUrl))\r\n return true;\r\n }\r\n return false;\r\n };\r\n const isOnlyMobileTextureUrl = (url) => {\r\n const newUrl = clearCubeMapSuffix(url);\r\n for (let u = 0; u < onlyMobileTextureUrls.length; u++) {\r\n const usedUrl = onlyMobileTextureUrls[u];\r\n if (newUrl.endsWith(usedUrl))\r\n return true;\r\n }\r\n return false;\r\n };\r\n // Elimino le texture e costruisco una mappa delle texture per materiale, utilizzabile in fase di prefetch\r\n const modelsToRemove = [];\r\n for (let t = 0; t < this._zkScene.get(\"textures\").length; t++) {\r\n const zkTexture = this._zkScene.get(\"textures\").at(t);\r\n const url = zkTexture.get(\"url\");\r\n if (url) {\r\n if (!isUsedTextureUrl(url))\r\n modelsToRemove.push(zkTexture);\r\n else if (isOnlyDesktopTextureUrl(url))\r\n zkTexture.set(\"usage\", Zakeke.TextureUsage.Desktop);\r\n else if (isOnlyMobileTextureUrl(url))\r\n zkTexture.set(\"usage\", Zakeke.TextureUsage.Mobile);\r\n else\r\n zkTexture.set(\"usage\", Zakeke.TextureUsage.Any);\r\n }\r\n else {\r\n modelsToRemove.push(zkTexture);\r\n }\r\n //if (url && !isUsedTextureUrl(url))\r\n // modelsToRemove.push(zkTexture);\r\n }\r\n if (modelsToRemove.length > 0)\r\n this._zkScene.get(\"textures\").remove(modelsToRemove);\r\n // Salvo l'elenco delle texture utilizzate in modo che lato backend si evitino\r\n // le duplicazioni di texture nello spostamento da materiali di libreria a quelli di scena\r\n this._zkScene.set(\"usedTextureUrls\", usedTextureUrls);\r\n }\r\n }\r\n // Metodo da usare per le texture caricate dall'utente, per trasformre il percorso assoluto\r\n // del tipo ..../textures/{ materialID }/{filename.xxx} nel percorso relativo textures/{materialID}/{filename.xxx}\r\n // Utilizza ed aggiorna eventualmente un dictionary per riutilizzare lo stesso percorso a parità di nome\r\n extractTextureNameAndUrl(textureUrl, matchSameNameTextures, urlMap) {\r\n const info = { name: \"\", url: \"\" };\r\n let idx = textureUrl.lastIndexOf(\"/\");\r\n if (idx !== -1) {\r\n const textureName = textureUrl.substring(idx + 1);\r\n if (urlMap.hasOwnProperty(textureName)) {\r\n info.url = urlMap[textureName];\r\n info.name = info.url;\r\n }\r\n else {\r\n idx = textureUrl.lastIndexOf(\"/\", idx - 1);\r\n if (idx !== -1) {\r\n idx = textureUrl.lastIndexOf(\"/\", idx - 1);\r\n if (idx !== -1) {\r\n const newName = textureUrl.substring(idx + 1);\r\n info.url = newName;\r\n info.name = newName;\r\n if (matchSameNameTextures) {\r\n urlMap[textureName] = newName;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return info;\r\n }\r\n removeDisabledFresnelParameters() {\r\n const canRemoveFresnelParameters = function (fresnelParameters) {\r\n return fresnelParameters &&\r\n (fresnelParameters.isEnabled != undefined && !fresnelParameters.isEnabled) &&\r\n (fresnelParameters.leftColor != undefined && fresnelParameters.leftColor != null && fresnelParameters.leftColor instanceof BABYLON.Color3 && fresnelParameters.leftColor.equals(BABYLON.Color3.White())) &&\r\n (fresnelParameters.rightColor != undefined && fresnelParameters.rightColor != null && fresnelParameters.rightColor instanceof BABYLON.Color3 && fresnelParameters.rightColor.equals(BABYLON.Color3.Black())) &&\r\n (fresnelParameters.bias != undefined && fresnelParameters.bias == 0) &&\r\n (fresnelParameters.power != undefined && fresnelParameters.power == 1);\r\n };\r\n if (this._scene) {\r\n this._scene.materials.forEach(function (material) {\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n if (material.diffuseFresnelParameters && canRemoveFresnelParameters(material.diffuseFresnelParameters)) {\r\n material.diffuseFresnelParameters = new BABYLON.FresnelParameters();\r\n material.diffuseFresnelParameters.isEnabled = false;\r\n }\r\n if (material.emissiveFresnelParameters && canRemoveFresnelParameters(material.emissiveFresnelParameters)) {\r\n material.emissiveFresnelParameters = new BABYLON.FresnelParameters();\r\n material.emissiveFresnelParameters.isEnabled = false;\r\n }\r\n if (material.opacityFresnelParameters && canRemoveFresnelParameters(material.opacityFresnelParameters)) {\r\n material.opacityFresnelParameters = new BABYLON.FresnelParameters();\r\n material.opacityFresnelParameters.isEnabled = false;\r\n }\r\n if (material.reflectionFresnelParameters && canRemoveFresnelParameters(material.reflectionFresnelParameters)) {\r\n material.reflectionFresnelParameters = new BABYLON.FresnelParameters();\r\n material.reflectionFresnelParameters.isEnabled = false;\r\n }\r\n if (material.refractionFresnelParameters && canRemoveFresnelParameters(material.refractionFresnelParameters)) {\r\n material.refractionFresnelParameters = new BABYLON.FresnelParameters();\r\n material.refractionFresnelParameters.isEnabled = false;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n // non più presenti su PBRMaterial\r\n /*\r\n if (material.opacityFresnelParameters && canRemoveFresnelParameters(material.opacityFresnelParameters))\r\n material.opacityFresnelParameters = undefined;\r\n\r\n if (material.emissiveFresnelParameters && canRemoveFresnelParameters(material.emissiveFresnelParameters))\r\n material.emissiveFresnelParameters = undefined;\r\n */\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n if (material.opacityFresnelParameters && canRemoveFresnelParameters(material.opacityFresnelParameters))\r\n material.opacityFresnelParameters = undefined;\r\n }\r\n });\r\n }\r\n }\r\n // Versione che utilizza un webworker (incapsulato in IncrementalFiles) per produrre i file incrementali (ed eventualmente \r\n // codificarli con Draco). In futuro si potrebbe convertire in async.\r\n uploadSceneIncrementalFiles(onSuccess, onError, onProgress) {\r\n if (!this._scene || !this._zkScene || !this._sceneHelper) {\r\n if (onError)\r\n onError(\"No scene to upload\");\r\n return;\r\n }\r\n const scene = this._scene;\r\n const zkScene = this._zkScene;\r\n const sceneHelper = this._sceneHelper;\r\n let version = zkScene.get(\"version\");\r\n let oldEnvMode = this.envMode;\r\n this.setEnvironmentMode(_Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor);\r\n // Disabilito l'antialiasing per evitare che vengano serializzati anche i PassPostProcess\r\n this.disableAntialiasing(true);\r\n let oldLimits = this.resetCameraRotationLimits();\r\n this.deleteHighlightLayer();\r\n this.adjustSceneForSerialization();\r\n // Imposto un materiale fittizio sulle mesh nascoste\r\n sceneHelper.setDummyMaterialToInvisibleMeshes();\r\n // Delayed Material Loading\r\n let delayedMaterialLoading = this.getUseDelayedMaterialLoading();\r\n let useMaterialOffloading = this.getUseMaterialOffloading();\r\n // nel caso di delayed loading indico tutti i materiali da utilizzare in modo differito\r\n let delayedMaterials = {};\r\n let offloadedMaterials = {};\r\n if (delayedMaterialLoading) {\r\n const materials = this.getAllMaterials();\r\n materials.forEach(m => {\r\n const meshes = this.getMeshesUsingMaterial(m.id);\r\n if (m.id !== \"default material\" && meshes.length === 0) {\r\n delayedMaterials[m.id] = {\r\n name: m.name,\r\n file: \"material_\" + version + \"_\" + m.id.replace(/[^a-z0-9]/gi, '_').toLowerCase() + \".json\"\r\n };\r\n }\r\n });\r\n }\r\n else if (useMaterialOffloading) {\r\n const materials = this.getAllMaterials();\r\n materials.forEach(m => {\r\n const meshes = this.getMeshesUsingMaterial(m.id);\r\n if (m.id !== \"default material\" && meshes.length === 0) {\r\n offloadedMaterials[m.id] = sceneHelper.getOffloadedMaterialInfo(m);\r\n }\r\n });\r\n }\r\n if (!this._scene.metadata)\r\n this._scene.metadata = {};\r\n this._scene.metadata.offloadedMaterials = offloadedMaterials;\r\n this._scene.metadata.delayedMaterials = delayedMaterials;\r\n let sceneJson = BABYLON.SceneSerializer.Serialize(this._scene);\r\n sceneJson.postProcesses = []; // elimino gli eventuali post process\r\n // Ripristino subito i materiali originali sulle mesh nascoste\r\n if (sceneJson.metadata && sceneJson.metadata.originalMeshMaterials) {\r\n // quando ripristino i materiali originali vengnono modificati anche i metadati della scena json\r\n const oldOriginalMeshMaterials = JSON.parse(JSON.stringify(sceneJson.metadata.originalMeshMaterials));\r\n sceneHelper.unsetAllDummyMaterials();\r\n sceneJson.metadata.originalMeshMaterials = oldOriginalMeshMaterials;\r\n }\r\n const options = {\r\n useDraco: this._dracoEnabled,\r\n dracoEncodingSpeed: this._dracoEncodingSpeed,\r\n dracoDecodingSpeed: this._dracoDecodingSpeed,\r\n excludedMeshes: [],\r\n delayMatarialLoading: Object.keys(delayedMaterials),\r\n offloadedMaterialIDs: Object.keys(offloadedMaterials)\r\n };\r\n this.getSceneIncrementalFilesAsync(version, sceneJson, options, onProgress)\r\n .then((incrementalFiles) => {\r\n let formData = new FormData();\r\n for (let i = 0; i < incrementalFiles.length; i++) {\r\n const incrementalFileInfo = incrementalFiles[i];\r\n let name = incrementalFileInfo.name;\r\n let data = incrementalFileInfo.data;\r\n let compressed = false;\r\n if (!incrementalFileInfo.dracoEncoded && incrementalFileInfo.data.length > 180 && incrementalFileInfo.data.length < 450000) {\r\n Logger.info(\"Uncompressed file length: \" + incrementalFileInfo.data.length);\r\n // compress file content\r\n data = LZString.compressToUint8Array(incrementalFileInfo.data);\r\n Logger.info(\"Compressed file length: \" + data.length);\r\n name = \"compressed_\" + incrementalFileInfo.name;\r\n compressed = true;\r\n }\r\n let blob;\r\n if (!incrementalFileInfo.dracoEncoded && !compressed) {\r\n blob = new Blob([data], { type: \"text/plain\" });\r\n }\r\n else {\r\n var arrayBuffer = data.buffer;\r\n blob = new Blob([arrayBuffer]);\r\n }\r\n formData.append('file_' + i, blob, name);\r\n }\r\n jQuery.ajax({\r\n url: zkScene.getSceneIncrementalFileUploadUrl(),\r\n data: formData,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'POST',\r\n xhr: function () {\r\n var xhr = new XMLHttpRequest();\r\n //Upload progress\r\n xhr.upload.addEventListener(\"progress\", (evt) => {\r\n if (evt.lengthComputable) {\r\n var percentComplete = evt.loaded / evt.total;\r\n if (onProgress)\r\n onProgress(percentComplete * 100);\r\n }\r\n }, false);\r\n return xhr;\r\n },\r\n success: (data) => {\r\n if (onSuccess)\r\n onSuccess(data);\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n if (onError)\r\n onError(thrownError);\r\n }\r\n });\r\n if (oldEnvMode != _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor)\r\n this.setEnvironmentMode(oldEnvMode);\r\n this.enableAntialiasing();\r\n this.createHighlightLayer();\r\n this.setCameraRotationLimits(oldLimits);\r\n });\r\n }\r\n // Utilizza il web worker MakeIncrementalFiles per ottenere i file incrementali (eventualmente codificati con Draco)\r\n getSceneIncrementalFilesAsync(version, json, options, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let files = [];\r\n if (!this._incrementalFilesMaker)\r\n this._incrementalFilesMaker = _Components_IncrementalFiles_IncrementalFiles__WEBPACK_IMPORTED_MODULE_1__.IncrementalFiles.Default;\r\n if (this._incrementalFilesMaker) {\r\n yield this._incrementalFilesMaker.whenReadyAsync();\r\n files = yield this._incrementalFilesMaker.getIncrementalFilesAsync(json, version, options);\r\n }\r\n return files;\r\n });\r\n }\r\n // Fine funzioni salvataggio scena\r\n // --------------------------------------------------------\r\n setNewSceneModelAsync(zkModel, zkScene) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this._zkModel = zkModel;\r\n this._zkScene = zkScene;\r\n yield this.init3DEngineAsync();\r\n this.fireMeshesUpdateEvent();\r\n this.fireMaterialsUpdateEvent();\r\n this.fireLightsUpdateEvent();\r\n this.fireCameraLocationsUpdateEvent();\r\n });\r\n }\r\n preSceneFileLoading() {\r\n this.resetRealVisibility();\r\n }\r\n postSceneFileLoading() {\r\n this.fireSceneCreatedEvent();\r\n this.fireMeshesUpdateEvent();\r\n this.fireMaterialsUpdateEvent();\r\n this.fireLightsUpdateEvent();\r\n this.fireCameraLocationsUpdateEvent();\r\n }\r\n // ==============================================================================\r\n // Importazione Assets \r\n // ==============================================================================\r\n // I file \"uploadati\" dall'utente non vengono caricati immediatamente nella scena\r\n // ma viene creato un task di elaborazione lato server il cui stato verrà controllato tramite polling.\r\n // Per ogni task server di caricamento verrà creato un oggetto task lato client che è utile\r\n // per il recupero tramite polling delle informazioni.\r\n // I task lato client avranno uno degli stati:\r\n // uploading - Task avviato per l'uploading dei file\r\n // progress - Task in elaborazione\r\n // checking - Chimata Ajax di controllo stato in corso\r\n // success - Task server completato con successo, si possono importare i relativi file nella scena Babylon JS corrente\r\n // completed_success - Task eseguito correttamente e file importati nella scena Babylon JS\r\n // completed_error - Task in errore, può essere eliminato dalla lista dei task da controllare\r\n loadSceneSourceFiles(files, onSuccess, onError) {\r\n if (this._zkScene) {\r\n const zkScene = this._zkScene;\r\n // FormData per i file da uploadare\r\n const data = new FormData();\r\n for (let i = 0; i < files.length; i++) {\r\n data.append('file-' + i, files[i]);\r\n }\r\n // Creo il task subito e lo metto in coda con lo stato di upload\r\n const task = {\r\n downloadProgress: 0,\r\n uploadProgress: 0,\r\n status: SourceTaskStatus.uploading,\r\n message: \"\",\r\n sceneSourceInfo: {},\r\n taskID: undefined,\r\n sourceID: undefined\r\n };\r\n this._sceneSourceTasks.push(task);\r\n // Passo i file sul server creando il relativo task per il recupero dello stato\r\n jQuery.ajax({\r\n url: zkScene.getSourceTasksUrl(),\r\n data: data,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'POST',\r\n xhr: () => {\r\n const xhr = new XMLHttpRequest();\r\n // Handle progress\r\n //Upload progress\r\n xhr.upload.addEventListener(\"progress\", (evt) => {\r\n if (evt.lengthComputable) {\r\n let percentComplete = evt.loaded / evt.total;\r\n task.uploadProgress = percentComplete * 100;\r\n this.fireSceneSourceTaskCheckEvent();\r\n }\r\n }, false);\r\n //Download progress\r\n xhr.addEventListener(\"progress\", (evt) => {\r\n if (evt.lengthComputable) {\r\n let percentComplete = evt.loaded / evt.total;\r\n task.downloadProgress = percentComplete * 100;\r\n this.fireSceneSourceTaskCheckEvent();\r\n }\r\n }, false);\r\n return xhr;\r\n },\r\n success: (data) => {\r\n // Ottengo i dati del task (server) di caricamento creato a partire dai file inviati\r\n // e creo il task lato client\r\n if (data && data.hasOwnProperty(\"taskID\") && data.hasOwnProperty(\"sourceID\")) {\r\n // creo un task nello stato progress\r\n task.taskID = data.taskID;\r\n task.sourceID = data.sourceID;\r\n task.status = SourceTaskStatus.progress;\r\n this.fireSceneSourceTaskCheckEvent();\r\n }\r\n else\r\n Logger.info(\"processo di creazione task non andato a buon fine\");\r\n if (onSuccess)\r\n onSuccess(task);\r\n },\r\n error: (xhr, ajaxOptions, thrownError) => {\r\n this._sceneSourceTasks = this._sceneSourceTasks.filter((x) => { x !== task; });\r\n this.fireSceneSourceTaskCheckEvent();\r\n if (onError)\r\n onError(thrownError);\r\n }\r\n });\r\n this.fireSceneSourceTaskCheckEvent();\r\n }\r\n }\r\n // Il metodo viene richiamato ogni secondo per il controllo dei task di caricamento file\r\n // eventualmente presenti in coda\r\n checkSceneSourceTasks() {\r\n if (this._scene && this._zkScene && this._sceneSourceTasks && this._sceneSourceTasks.length > 0) {\r\n const zkScene = this._zkScene;\r\n for (let i = 0; i < this._sceneSourceTasks.length; i++) {\r\n let task = this._sceneSourceTasks[i];\r\n // TASK Definitivamente Completato\r\n if (task.status == SourceTaskStatus.completed_error || task.status == SourceTaskStatus.completed_success) {\r\n // Se il task è completato definitivamente lo elimino dalla lista\r\n this._sceneSourceTasks.splice(i--, 1);\r\n this.fireSceneSourceTaskCheckEvent();\r\n continue;\r\n }\r\n // TASK in chiamata AJAX di controllo o di Upload in corso\r\n if (task.status == SourceTaskStatus.checking || task.status == SourceTaskStatus.uploading)\r\n continue;\r\n // TASK in elaborazione lato server\r\n if (task.status == SourceTaskStatus.progress) {\r\n // Eseguo la chiamata ajax per verificare lo stato del task\r\n // cambio lo stato in \"checking\" in modo da non ripetere la chiamata\r\n task.status = SourceTaskStatus.checking;\r\n const onError = (task) => {\r\n // Il recupero delle informazioni è andato in errore.\r\n // Il task può essere eliminato dalla coda\r\n task.status = SourceTaskStatus.completed_error;\r\n this.fireSceneSourceTaskErrorEvent(task.taskID);\r\n this.fireSceneSourceTaskCheckEvent();\r\n };\r\n // Eseguo la chiamata per ottenere lo stato del task lato server.\r\n // Nel caso in cui il task lato server sia completato, avrò anche le informazioni\r\n // sui file che sono stati caricati (file di scena sorgente + textures)\r\n // Mauro - 07/02/2018: Ho transformato la chiamata in una funzione perchè altrimenti la task nella callback\r\n // potrebbe essere un'altra e non quella da dove era partita dato che in JS lo scope di una var è per function...\r\n // lo stesso vale per l'onError\r\n var runAjaxCheck = (task) => {\r\n jQuery.ajax({\r\n url: zkScene.getSourceTaskResultUrl(task.taskID),\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'GET',\r\n success: (data) => {\r\n if (data && data.hasOwnProperty(\"taskID\") && data.hasOwnProperty(\"state\") && data.hasOwnProperty(\"message\") && data.hasOwnProperty(\"sourceFile\")) {\r\n if (data.state == 2) {\r\n // Il task si è completato con successo, salvo le informazioni\r\n // sui file generati sul task client in modo che possano essere \r\n // importati nella scena corrente\r\n // file di scena sorgente\r\n task.sceneSourceInfo = {\r\n sourceID: data.sourceFile.sourceID,\r\n fileObjectID: data.sourceFile.fileObjectID,\r\n url: data.sourceFile.url,\r\n rootUrl: data.sourceFile.rootUrl,\r\n sceneFileName: data.sourceFile.sceneFileName,\r\n textureFiles: [],\r\n };\r\n // textures\r\n for (let i = 0; i < data.sourceFile.textureFiles.length; i++) {\r\n task.sceneSourceInfo.textureFiles.push({\r\n textureID: data.sourceFile.textureFiles[i].textureID,\r\n fileObjectID: data.sourceFile.textureFiles[i].fileObjectID,\r\n url: data.sourceFile.textureFiles[i].url,\r\n });\r\n }\r\n task.status = SourceTaskStatus.success;\r\n }\r\n else if (data.state == 3) {\r\n // Task server in errore\r\n onError(task);\r\n }\r\n else {\r\n // Task server ancora in esecuzione\r\n task.status = SourceTaskStatus.progress;\r\n }\r\n }\r\n else {\r\n // Risultato non conforme a quello atteso: errore nella chiamata\r\n onError(task);\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n // Errore nella chiamata ajax\r\n onError(task);\r\n }\r\n });\r\n };\r\n runAjaxCheck(task);\r\n }\r\n // TASK con elaborazione server terminata con successo\r\n if (task.status == SourceTaskStatus.success) {\r\n // Il task server si è concluso con successo. Il task client contiene\r\n // i dati sui file generati\r\n if (!this._isLoadingSourceFiles) {\r\n this._isLoadingSourceFiles = true;\r\n if (task.sceneSourceInfo.rootUrl && task.sceneSourceInfo.sceneFileName) {\r\n // File di scena sorgente\r\n this.updateSceneModelFromSourceTask(task);\r\n // Importo i file nella scena Babylon JS corrente\r\n this.loadMeshesFromRemoteFiles(task.sceneSourceInfo.rootUrl, task.sceneSourceInfo.sceneFileName, (meshes) => {\r\n if (meshes && Object.prototype.toString.call(meshes) === '[object Array]') {\r\n meshes.forEach((mesh) => { mesh.isPickable = true; });\r\n }\r\n this._isLoadingSourceFiles = false;\r\n this.fireSceneSourceTaskSuccessEvent(meshes);\r\n this.fireMeshesUpdateEvent();\r\n this.fireMaterialsUpdateEvent();\r\n this.fireLightsUpdateEvent();\r\n task.status = SourceTaskStatus.completed_success;\r\n }, (reason) => {\r\n Logger.info(\"Errore nel caricamento delle mesh: \" + reason);\r\n this._isLoadingSourceFiles = false;\r\n this.fireSceneSourceTaskErrorEvent(task.taskID);\r\n task.status = SourceTaskStatus.completed_error;\r\n });\r\n }\r\n else {\r\n Logger.info(\"Risultato del task di caricamento non valido\");\r\n this._isLoadingSourceFiles = false;\r\n this.fireSceneSourceTaskErrorEvent(task.taskID);\r\n task.status = SourceTaskStatus.completed_error;\r\n }\r\n this.fireSceneSourceTaskCheckEvent();\r\n }\r\n }\r\n }\r\n }\r\n // il metodo verrà richiamato tra mezzo secondo\r\n setTimeout(() => this.checkSceneSourceTasks(), 500);\r\n }\r\n updateSceneModelFromSourceTask(task) {\r\n if (this._zkScene) {\r\n // File di scena sorgente\r\n const zkSource = new Zakeke.SceneSource();\r\n zkSource.set(\"sourceID\", task.sceneSourceInfo.sourceID);\r\n zkSource.set(\"fileObjectID\", task.sceneSourceInfo.fileObjectID);\r\n zkSource.set(\"url\", task.sceneSourceInfo.url);\r\n zkSource.set(\"rootUrl\", task.sceneSourceInfo.rootUrl);\r\n zkSource.set(\"sceneFileName\", task.sceneSourceInfo.sceneFileName);\r\n // Textures\r\n for (let i = 0; i < task.sceneSourceInfo.textureFiles.length; i++) {\r\n const textureFile = task.sceneSourceInfo.textureFiles[i];\r\n if (textureFile.textureID && textureFile.fileObjectID && textureFile.url) {\r\n const zkSourceTexture = new Zakeke.SceneSourceTexture();\r\n zkSourceTexture.set(\"textureID\", textureFile.textureID);\r\n zkSourceTexture.set(\"fileObjectID\", textureFile.fileObjectID);\r\n zkSourceTexture.set(\"url\", textureFile.url);\r\n zkSource.get(\"textures\").push(zkSourceTexture);\r\n }\r\n }\r\n this._zkScene.get(\"sources\").push(zkSource);\r\n }\r\n }\r\n // Carica i file provenienti da una sorgente nella scena Babylon JS corrente\r\n // Ad ogni mesh e ad ogni materiale viene assegnato un identificativo univoco (GUID).\r\n // Inoltre tutte le mesh vengono inserite in un nuovo gruppo il cui nome deriva da quello\r\n // del file di scena\r\n loadMeshesFromRemoteFiles_NEW(rootUrl, sceneFileName, onSuccess, onError) {\r\n if (!this._scene || !this._sceneHelper) {\r\n if (onError)\r\n onError(\"No scene to fill with imported meshes\");\r\n return;\r\n }\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n let url = rootUrl + sceneFileName;\r\n sceneHelper.importMeshesFromUrlAsync(url, null, undefined).then((meshes) => {\r\n Logger.info(\"File imported successfully\");\r\n this.checkSceneEmptyEnvironmentTexture();\r\n this.refreshEnvironment();\r\n if (onSuccess)\r\n onSuccess(meshes);\r\n }).catch(error => {\r\n Logger.info(\"Error loading file\");\r\n if (onError)\r\n onError(error);\r\n });\r\n Logger.info(\"loading finished\");\r\n }\r\n // Carica i file provenienti da una sorgente nella scena Babylon JS corrente\r\n // Ad ogni mesh e ad ogni materiale viene assegnato un identificativo univoco (GUID).\r\n // Inoltre tutte le mesh vengono inserite in un nuovo gruppo il cui nome deriva da quello\r\n // del file di scena\r\n loadMeshesFromRemoteFiles(rootUrl, sceneFileName, onSuccess, onError) {\r\n if (!this._scene || !this._sceneHelper) {\r\n if (onError)\r\n onError(\"No scene to fill with imported meshes\");\r\n return;\r\n }\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n let name = sceneFileName;\r\n let idx = sceneFileName.lastIndexOf(\".\");\r\n if (idx !== -1)\r\n name = sceneFileName.substr(0, idx);\r\n // Recupero gli id dei vecchi material in modo da assegnare i nuovi id solo ai nuovi materiali\r\n const oldMaterialIDs = this._scene.materials.map(m => m.id);\r\n // Setting up some GLTF values\r\n let currentPluginName = undefined;\r\n BABYLON.GLTFFileLoader.IncrementalLoading = false;\r\n BABYLON.SceneLoader.OnPluginActivatedObservable.add((plugin) => {\r\n currentPluginName = plugin.name;\r\n });\r\n const loader = new BABYLON.AssetsManager(this._scene);\r\n const task = loader.addMeshTask(\"mesh-task\", \"\", rootUrl, sceneFileName);\r\n task.onSuccess = (t) => {\r\n Logger.info(\"task completed successfully\");\r\n const meshes = t.loadedMeshes;\r\n // creo un gruppo in cui inserire tutte le nuove mesh caricate\r\n const parent = new BABYLON.Mesh(name, scene);\r\n parent.id = Zakeke.generateUUID();\r\n parent.metadata = {\r\n isRealMesh: true,\r\n isGroup: true\r\n };\r\n meshes.forEach((mesh) => {\r\n if (!mesh.parent)\r\n mesh.parent = parent;\r\n if (!mesh.material)\r\n mesh.material = new BABYLON.StandardMaterial(mesh.name + \"Mat\", scene);\r\n mesh.id = Zakeke.generateUUID();\r\n });\r\n // imposto l'id a tutti i nuovi materiali\r\n scene.materials.forEach((material) => {\r\n if (!_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.arrayContains(oldMaterialIDs, material.id))\r\n material.id = Zakeke.generateUUID();\r\n });\r\n this.checkSceneEmptyEnvironmentTexture();\r\n this.refreshEnvironment();\r\n sceneHelper.adjustCamera(currentPluginName, false, false);\r\n sceneHelper.setupShaderMaterialsCameraPosition();\r\n if (onSuccess)\r\n onSuccess(meshes);\r\n };\r\n task.onError = (t, message, exception) => {\r\n Logger.info(\"task completed with errors\");\r\n if (onError)\r\n onError(message);\r\n };\r\n loader.onFinish = function () {\r\n Logger.info(\"loading finished\");\r\n };\r\n //loader.loadingUIBackgroundColor = \"#2c2b29\";\r\n loader.load();\r\n }\r\n // Fine importazione Assets\r\n // ==============================================================================\r\n isRealMesh(mesh) {\r\n if (this._sceneHelper)\r\n return this._sceneHelper.isRealMesh(mesh);\r\n return false;\r\n }\r\n onMeshChanged(evt) {\r\n this.updateBoundingBox();\r\n this.setRenderingNeeded();\r\n }\r\n onSubMeshChanged(evt) {\r\n this.updateBoundingBox();\r\n this.setRenderingNeeded();\r\n }\r\n onMaterialChanged(evt) {\r\n this.setRenderingNeeded();\r\n }\r\n onLightChanged(evt) {\r\n this.setRenderingNeeded();\r\n }\r\n getSceneMeshesByName(name) {\r\n return this._sceneHelper ? this._sceneHelper.getSceneMeshesByName(name) : [];\r\n }\r\n getSceneMeshes() {\r\n return this._sceneHelper ? this._sceneHelper.getSceneMeshes() : [];\r\n }\r\n getMeshesUsingMaterial(materialID) {\r\n return this._sceneHelper ? this._sceneHelper.getMeshesUsingMaterial(materialID) : [];\r\n }\r\n getMeshesMaterials(meshes) {\r\n return this._sceneHelper ? this._sceneHelper.getMeshesMaterials(meshes) : [];\r\n }\r\n getMeshMaterials(mesh) {\r\n return this._sceneHelper ? this._sceneHelper.getMeshMaterials(mesh) : [];\r\n }\r\n getAllMaterials() {\r\n return this._sceneHelper ? this._sceneHelper.getAllMaterials() : [];\r\n }\r\n // restituisce un array di gruppi di materiali\r\n // ogni gruppo è del tipo MaterialGroup, con proprietà \r\n // \"group\"(nome del gruppo) \r\n // \"materials\"(elenco materiali)\r\n getGroupedMaterials() {\r\n const groups = [];\r\n const hash = {};\r\n const materials = this.getAllMaterials();\r\n for (let i = 0; i < materials.length; i++) {\r\n let material = materials[i];\r\n if (material.id == \"groundMaterial\")\r\n continue;\r\n const groupName = this.getMaterialGroup(material.id);\r\n let group = null;\r\n if (hash.hasOwnProperty(groupName))\r\n group = hash[groupName];\r\n else {\r\n group = new MaterialGroup(groupName);\r\n groups.push(group);\r\n hash[groupName] = group;\r\n }\r\n if (group)\r\n group.materials.push(material);\r\n }\r\n return groups.sort(function (a, b) {\r\n var nameA = a.groupName.toLowerCase(), nameB = b.groupName.toLowerCase();\r\n if (nameA < nameB)\r\n return -1;\r\n if (nameA > nameB)\r\n return 1;\r\n return 0;\r\n });\r\n }\r\n // Assegna il gruppo ad un array di materiali\r\n setMaterialsGroup(materialIDs, groupName, fireEvent = true) {\r\n for (let i = 0; i < materialIDs.length; i++) {\r\n const materialID = materialIDs[i];\r\n this.setMaterialGroup(materialID, groupName, fireEvent);\r\n }\r\n }\r\n // Assegna il gruppo ad un singolo materiale\r\n setMaterialGroup(materialID, groupName, fireEvent = true) {\r\n if (!this._scene)\r\n return;\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (!material)\r\n return;\r\n if (!this._scene.metadata)\r\n this._scene.metadata = {};\r\n if (!this._scene.metadata.groups)\r\n this._scene.metadata.groups = {};\r\n this._scene.metadata.groups[materialID] = groupName;\r\n if (fireEvent)\r\n this.fireMaterialsUpdateEvent();\r\n }\r\n // Restituisce il gruppo di un materiale\r\n getMaterialGroup(materialID) {\r\n if (this._scene && this._scene.metadata && this._scene.metadata.groups && this._scene.metadata.groups.hasOwnProperty(materialID)) {\r\n return this._scene.metadata.groups[materialID];\r\n }\r\n return SceneEditor.EmptyGroupName;\r\n }\r\n // Elimina il gruppo di un materiale\r\n removeMaterialGroup(materialID) {\r\n if (this._scene && this._scene.metadata && this._scene.metadata.groups && this._scene.metadata.groups.hasOwnProperty(materialID)) {\r\n delete this._scene.metadata.groups[materialID];\r\n this.fireMaterialsUpdateEvent();\r\n }\r\n }\r\n getMaterialsByGroup(groupName) {\r\n const materials = [];\r\n const group = !groupName ? SceneEditor.EmptyGroupName : groupName;\r\n if (this._scene && this._sceneHelper) {\r\n this._sceneHelper.getAllMaterials().forEach(material => {\r\n const materialGroupName = this.getMaterialGroup(material.id);\r\n if (materialGroupName === group)\r\n materials.push(material);\r\n });\r\n }\r\n return materials;\r\n }\r\n getGroupCenter(parent) {\r\n return this._sceneHelper ? this._sceneHelper.getMeshHierarchyCenter(parent) : null;\r\n }\r\n getGroupBoundingInfo(parent) {\r\n let boundingBox = parent.getHierarchyBoundingVectors(true);\r\n return new BABYLON.BoundingInfo(boundingBox.min, boundingBox.max);\r\n }\r\n showHideBoundingBox(show) {\r\n this._showBoundingBox = show;\r\n this.updateBoundingBox();\r\n this.setRenderingNeeded();\r\n }\r\n updateBoundingBox() {\r\n this.deleteBoundingBox();\r\n if (!this.showBoundingBox)\r\n return;\r\n this.createSceneBoundingBox(true);\r\n }\r\n deleteBoundingBox() {\r\n let bbox = this.getSceneBoundingBox();\r\n if (bbox)\r\n bbox.dispose();\r\n }\r\n setCameraPositionScale(scale) {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraPositionScale(scale);\r\n this._sceneHelper.setCameraPositionScale(scale, true);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraLimitLowerRadius(limit) {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraLimitLowerRadius(limit);\r\n this._sceneHelper.setCameraLimitLowerRadius(limit, true);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraZoomEnabled(enabled) {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraZoomEnabled(enabled);\r\n this._sceneHelper.setZoomEnabled(enabled);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraUseMinZoomPercentage(value) {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraUseMinZoomPerc(value);\r\n this._sceneHelper.setMinZoomPerc(value ? this._zkScene.getCameraMinZoomPerc() : undefined);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraMinZoomPercentage(value) {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraMinZoomPerc(value);\r\n var use = this._zkScene.getCameraUseMinZoomPerc();\r\n this._sceneHelper.setMinZoomPerc(use ? value : undefined);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraUseMaxZoomPercentage(value) {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraUseMaxZoomPerc(value);\r\n this._sceneHelper.setMaxZoomPerc(value ? this._zkScene.getCameraMaxZoomPerc() : undefined);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraMaxZoomPercentage(value) {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraMaxZoomPerc(value);\r\n const use = this._zkScene.getCameraUseMaxZoomPerc();\r\n this._sceneHelper.setMaxZoomPerc(use ? value : undefined);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n lockCameraAlphaAngle() {\r\n if (this._zkScene && this._sceneHelper && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const angle = this._camera.alpha;\r\n this._zkScene.setCameraLowerAlphaLimit(angle);\r\n this._zkScene.setCameraUpperAlphaLimit(angle);\r\n this._sceneHelper.setCameraAlphaLimits(angle, angle);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n unlockCameraAlphaAngle() {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraLowerAlphaLimit(null);\r\n this._zkScene.setCameraUpperAlphaLimit(null);\r\n this._sceneHelper.setCameraAlphaLimits(null, null);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n lockCameraBetaAngle() {\r\n if (this._zkScene && this._sceneHelper && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n var angle = this._camera.beta;\r\n this._zkScene.setCameraLowerBetaLimit(angle);\r\n this._zkScene.setCameraUpperBetaLimit(angle);\r\n this._sceneHelper.setCameraBetaLimits(angle, angle);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n unlockCameraBetaAngle() {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraLowerBetaLimit(null);\r\n this._zkScene.setCameraUpperBetaLimit(null);\r\n this._sceneHelper.setCameraBetaLimits(null, null);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraLowerAlphaLimit() {\r\n if (this._zkScene && this._sceneHelper && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const angle = this._camera.alpha;\r\n this._zkScene.setCameraLowerAlphaLimit(angle);\r\n this._sceneHelper.setCameraLowerAlphaLimit(angle);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n unsetCameraLowerAlphaLimit() {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraLowerAlphaLimit(null);\r\n this._sceneHelper.setCameraLowerAlphaLimit(null);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraUpperAlphaLimit() {\r\n if (this._zkScene && this._sceneHelper && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n var angle = this._camera.alpha;\r\n this._zkScene.setCameraUpperAlphaLimit(angle);\r\n this._sceneHelper.setCameraUpperAlphaLimit(angle);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n unsetCameraUpperAlphaLimit() {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraUpperAlphaLimit(null);\r\n this._sceneHelper.setCameraUpperAlphaLimit(null);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraLowerBetaLimit() {\r\n if (this._zkScene && this._sceneHelper && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const angle = this._camera.beta;\r\n this._zkScene.setCameraLowerBetaLimit(angle);\r\n this._sceneHelper.setCameraLowerBetaLimit(angle);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n unsetCameraLowerBetaLimit() {\r\n if (this._zkScene && this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraLowerBetaLimit(null);\r\n this._sceneHelper.setCameraLowerBetaLimit(null);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setCameraUpperBetaLimit() {\r\n if (this._zkScene && this._sceneHelper && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const angle = this._camera.beta;\r\n this._zkScene.setCameraUpperBetaLimit(angle);\r\n this._sceneHelper.setCameraUpperBetaLimit(angle);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n unsetCameraUpperBetaLimit() {\r\n if (this._zkScene && this._sceneHelper) {\r\n this._zkScene.setCameraUpperBetaLimit(null);\r\n this._sceneHelper.setCameraUpperBetaLimit(null);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n // Mesh selection overrides (the selection logic si a little bit different\r\n // respect the parent SceneViewer one)\r\n selectMesh(id) {\r\n this.selectUnselectMesh(id, true);\r\n }\r\n unselectMesh(id) {\r\n this.selectUnselectMesh(id, false);\r\n }\r\n unselectAllMeshes() {\r\n if (this._scene)\r\n this._scene.meshes.forEach(mesh => this.unselectSingleMesh(mesh));\r\n }\r\n selectUnselectMesh(id, select) {\r\n if (this._scene) {\r\n this.deleteBoundingBox();\r\n this.unselectAllMeshes();\r\n if (select) {\r\n const selectWithChildren = (parent) => {\r\n this.selectSingleMesh(parent);\r\n parent.getChildMeshes().forEach(child => selectWithChildren(child));\r\n };\r\n const mesh = this._scene.getMeshByID(id);\r\n if (mesh)\r\n selectWithChildren(mesh);\r\n this.setManipulatedNode(mesh);\r\n }\r\n else {\r\n this.setManipulatedNode(null);\r\n }\r\n this.fireSelectionChangedEvent();\r\n }\r\n }\r\n selectSingleMesh(mesh) {\r\n mesh[\"selected\"] = true;\r\n this.highlightMesh(mesh, true);\r\n this.setRenderingNeeded();\r\n }\r\n unselectSingleMesh(mesh) {\r\n mesh[\"selected\"] = false;\r\n this.highlightMesh(mesh, false);\r\n this.setRenderingNeeded();\r\n }\r\n isMeshSelected(mesh) {\r\n return mesh && mesh[\"selected\"] != undefined && mesh[\"selected\"];\r\n }\r\n // Show-hide mesh methods\r\n showMesh(meshID) {\r\n this.resetRealVisibility();\r\n this.showHideMesh(meshID, true, true);\r\n }\r\n hideMesh(meshID) {\r\n this.resetRealVisibility();\r\n this.showHideMesh(meshID, false, true);\r\n }\r\n showHideMesh(meshID, show, notifyChanges = true) {\r\n var _a;\r\n if (this._scene && this._sceneHelper && this._camera) {\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n const camera = this._camera;\r\n const showHideWithChildren = (parent, show) => {\r\n parent.isVisible = show;\r\n Logger.info(parent.name);\r\n parent.getChildMeshes().forEach(child => showHideWithChildren(child, show));\r\n };\r\n const showHide = (mesh, show) => {\r\n showHideWithChildren(mesh, show);\r\n const tryAdjustCamera = !(sceneHelper && camera && mesh.metadata && mesh.metadata.isGroup && mesh.getChildMeshes().length === 0);\r\n if (tryAdjustCamera && show && !camera.isCompletelyInFrustum(mesh)) {\r\n sceneHelper.adjustCamera(undefined, false, false);\r\n sceneHelper.setupShaderMaterialsCameraPosition();\r\n }\r\n if (notifyChanges)\r\n this.fireMeshesUpdateEvent();\r\n this.setRenderingNeeded();\r\n };\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n const rootUrl = (_a = this._zkScene) === null || _a === void 0 ? void 0 : _a.get(\"rootUrl\");\r\n if (rootUrl) {\r\n sceneHelper.unsetMeshDummyMaterialAsync(mesh, rootUrl, true).then(() => showHide(mesh, show));\r\n }\r\n else {\r\n showHide(mesh, show);\r\n }\r\n }\r\n this.refreshInfoPoints();\r\n }\r\n }\r\n // Permette di mostrare esclusivamente la mesh selezionata (e i suoi figli)\r\n // Lo stato precedente delle mesh viene memorizzato in modo da poter essere\r\n // ripristinato con la funzione resetRealVisibility\r\n setTemporaryExclusivelyVisible(meshID) {\r\n if (this._scene) {\r\n // Salvo la reale visibilità delle mesh\r\n this.resetRealVisibility();\r\n this._realMeshVisibility = {};\r\n this._scene.meshes.forEach(mesh => {\r\n this._realMeshVisibility[mesh.id] = mesh.isVisible;\r\n if (this.isRealMesh(mesh))\r\n mesh.isVisible = false;\r\n });\r\n this.showHideMesh(meshID, true, false);\r\n }\r\n }\r\n // Reimposto lo stato di visibilità come era precedentemente alla chiamata\r\n // a setTempraryExclusiveVisible\r\n resetRealVisibility() {\r\n if (this._scene && this._sceneHelper && this._realMeshVisibility) {\r\n const meshes = this._sceneHelper.getSceneMeshes();\r\n meshes.forEach(mesh => {\r\n if (this._realMeshVisibility.hasOwnProperty(mesh.id)) {\r\n mesh.isVisible = this._realMeshVisibility[mesh.id];\r\n }\r\n });\r\n /*\r\n this._scene.meshes.forEach(mesh => mesh.isVisible = this._realMeshVisibility[mesh.id]);\r\n this._realMeshVisibility = {};\r\n */\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n // Funzione per modificare il colore di un materiale in modo progressivo (tramite animazione)\r\n changeMaterialColor(material, propertyName, nextColor) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.changeMaterialColor(material, propertyName, nextColor);\r\n }\r\n renameMesh(id, name) {\r\n if (this._scene) {\r\n const mesh = this._scene.getMeshByID(id);\r\n if (mesh) {\r\n mesh.name = name;\r\n this.fireMeshesUpdateEvent();\r\n }\r\n }\r\n }\r\n //#region Events\r\n // PreUpdateEvent\r\n firePreUpdateEvent() {\r\n this._preUpdateListeners.forEach(handler => handler());\r\n }\r\n addPreUpdateListener(listenerFunction) {\r\n this._preUpdateListeners.push(listenerFunction);\r\n }\r\n removePreUpdateListener(listenerFunction) {\r\n for (let i = 0; i < this._preUpdateListeners.length; i++) {\r\n const listener = this._preUpdateListeners[i];\r\n if (listener == listenerFunction) {\r\n this._preUpdateListeners.splice(i--, 1);\r\n break;\r\n }\r\n }\r\n }\r\n // PostUpdateEvent\r\n firePostUpdateEvent() {\r\n this._postUpdateListeners.forEach(handler => handler());\r\n }\r\n addPostUpdateListener(listenerFunction) {\r\n this._postUpdateListeners.push(listenerFunction);\r\n }\r\n removePostUpdateListener(listenerFunction) {\r\n for (let i = 0; i < this._postUpdateListeners.length; i++) {\r\n const listener = this._postUpdateListeners[i];\r\n if (listener == listenerFunction) {\r\n this._postUpdateListeners.splice(i--, 1);\r\n break;\r\n }\r\n }\r\n }\r\n // MeshSelected\r\n fireMeshSelectedEvent(e) {\r\n this._meshSelectedListeners.forEach(handler => handler(e));\r\n }\r\n addMeshSelectedListener(listenerFunction) {\r\n this._meshSelectedListeners.push(listenerFunction);\r\n }\r\n // SelectionChanged\r\n fireSelectionChangedEvent() {\r\n this._selectionChangedListeners.forEach(handler => handler());\r\n }\r\n addSelectionChangedListener(listenerFunction) {\r\n this._selectionChangedListeners.push(listenerFunction);\r\n }\r\n // LightsSelected\r\n fireLightSelectedEvent(e) {\r\n this._lightSelectedListeners.forEach(handler => handler(e));\r\n }\r\n addLightSelectedListener(listenerFunction) {\r\n this._lightSelectedListeners.push(listenerFunction);\r\n }\r\n // SceneCreated\r\n fireSceneCreatedEvent() {\r\n this._sceneCreatedListeners.forEach(handler => handler());\r\n }\r\n addSceneCreatedListener(listenerFunction) {\r\n this._sceneCreatedListeners.push(listenerFunction);\r\n }\r\n // CameraLocationCreated\r\n fireCameraLocationCreatedEvent(e) {\r\n this._cameraLocationCreatedListeners.forEach(handler => handler(e));\r\n }\r\n addCameraLocationCreatedListener(listenerFunction) {\r\n this._cameraLocationCreatedListeners.push(listenerFunction);\r\n }\r\n // CameraLocationsUpdate\r\n fireCameraLocationsUpdateEvent(locations) {\r\n if (!locations && this._scene)\r\n locations = this.getAllCameraLocations();\r\n if (!locations)\r\n throw \"Failed firing positions update event: lights are null and no scene present\";\r\n this._cameraLocationsUpdateListeners.forEach(handler => handler(locations));\r\n }\r\n addCameraLocationsUpdateListener(listenerFunction) {\r\n this._cameraLocationsUpdateListeners.push(listenerFunction);\r\n }\r\n // SceneSourceTaskSuccess\r\n fireSceneSourceTaskSuccessEvent(meshes) {\r\n this._sceneSourceTaskSuccessListeners.forEach(handler => handler(meshes));\r\n }\r\n addSceneSourceTaskSuccessListener(listenerFunction) {\r\n this._sceneSourceTaskSuccessListeners.push(listenerFunction);\r\n }\r\n // SceneSourceTaskError\r\n fireSceneSourceTaskErrorEvent(taskID) {\r\n this._sceneSourceTaskErrorListeners.forEach(handler => handler(taskID));\r\n }\r\n addSceneSourceTaskErrorListener(listenerFunction) {\r\n this._sceneSourceTaskErrorListeners.push(listenerFunction);\r\n }\r\n removeSceneSourceTaskErrorListener(listenerFunction) {\r\n const idx = this._sceneSourceTaskErrorListeners.indexOf(listenerFunction);\r\n if (idx != -1)\r\n this._sceneSourceTaskErrorListeners.splice(idx, 1);\r\n }\r\n // SceneSourceTaskCheck\r\n fireSceneSourceTaskCheckEvent() {\r\n this._sceneSourceTasksCheckListeners.forEach(handler => handler());\r\n }\r\n addSceneSourceTaskCheckListener(listenerFunction) {\r\n this._sceneSourceTasksCheckListeners.push(listenerFunction);\r\n }\r\n // MeshesUpdate\r\n fireMeshesUpdateEvent(meshes) {\r\n if (!meshes && this._scene)\r\n meshes = this.getSceneMeshes();\r\n if (!meshes)\r\n throw \"Failed firing mesh update event: meshes are null and no scene present\";\r\n this._meshesUpdateListeners.forEach(handler => handler(meshes));\r\n }\r\n addMeshesUpdateListener(listenerFunction) {\r\n this._meshesUpdateListeners.push(listenerFunction);\r\n }\r\n // MaterialsUpdate\r\n fireMaterialsUpdateEvent(materials) {\r\n if (!materials && this._scene)\r\n materials = this.getGroupedMaterials();\r\n if (!materials)\r\n throw \"Failed firing materials update event: materials are null and no scene present\";\r\n this._materialsUpdateListeners.forEach(handler => handler(materials));\r\n }\r\n addMaterialsUpdateListener(listenerFunction) {\r\n this._materialsUpdateListeners.push(listenerFunction);\r\n }\r\n // LighsUpdate\r\n fireLightsUpdateEvent(lights) {\r\n if (!lights && this._scene)\r\n lights = this.getAllLights();\r\n if (!lights)\r\n throw \"Failed firing lights update event: lights are null and no scene present\";\r\n this._lightsUpdateListeners.forEach(handler => handler(lights));\r\n }\r\n addLightsUpdateListener(listernerFunction) {\r\n this._lightsUpdateListeners.push(listernerFunction);\r\n }\r\n // MeshLocationCreated\r\n fireMeshLocationCreatedEvent(location) {\r\n this._meshLocationCreatedListeners.forEach(handler => handler(location));\r\n }\r\n addMeshLocationCreatedListener(listenerFunction) {\r\n this._meshLocationCreatedListeners.push(listenerFunction);\r\n }\r\n // MeshLocationsUpdate\r\n fireMeshLocationsUpdateEvent(locations) {\r\n if (!locations && this._scene)\r\n locations = this.getAllMeshLocations();\r\n if (locations)\r\n this._meshLocationsUpdateListeners.forEach(handler => handler(locations));\r\n else\r\n throw \"Failed firing mesh positions update event: positions are null and no scene present\";\r\n }\r\n addMeshLocatonsUpdateListener(listenerFunction) {\r\n this._meshLocationsUpdateListeners.push(listenerFunction);\r\n }\r\n // ArTaskSuccess\r\n fireArTaskSuccessEvent() {\r\n this._arTaskSuccessListeners.forEach(handler => handler());\r\n }\r\n addArTaskSuccessListener(listenerFunction) {\r\n this._arTaskSuccessListeners.push(listenerFunction);\r\n }\r\n // ArTaskError\r\n fireArTaskErrorEvent() {\r\n this._arTaskErrorListeners.forEach(handler => handler());\r\n }\r\n addArTaskErrorListener(listenerFunction) {\r\n this._arTaskErrorListeners.push(listenerFunction);\r\n }\r\n // ArTaskCheck\r\n fireArTaskCheckEvent() {\r\n this._arTasksCheckListeners.forEach(handler => handler());\r\n }\r\n addArTaskCheckListener(listenerFunction) {\r\n this._arTasksCheckListeners.push(listenerFunction);\r\n }\r\n // Clear\r\n clearListeners() {\r\n this._meshSelectedListeners = [];\r\n this._selectionChangedListeners = [];\r\n this._lightSelectedListeners = [];\r\n this._sceneCreatedListeners = [];\r\n this._cameraLocationCreatedListeners = [];\r\n this._sceneSourceTaskSuccessListeners = [];\r\n this._sceneSourceTaskErrorListeners = [];\r\n this._sceneSourceTasksCheckListeners = [];\r\n this._meshesUpdateListeners = [];\r\n this._materialsUpdateListeners = [];\r\n this._lightsUpdateListeners = [];\r\n this._cameraLocationsUpdateListeners = [];\r\n this._meshLocationCreatedListeners = [];\r\n this._meshLocationsUpdateListeners = [];\r\n this._arTaskSuccessListeners = [];\r\n this._arTaskErrorListeners = [];\r\n this._arTasksCheckListeners = [];\r\n }\r\n //#endregion\r\n //#region Interazione utente (Pointer Down/Move)\r\n onPointerDown(evt, pickInfo) {\r\n if (!this._scene || !this._sceneHelper || this._envMode != _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor) {\r\n return;\r\n }\r\n if (this._selectOnPick) {\r\n if (pickInfo && pickInfo.hit && pickInfo.pickedMesh && pickInfo.pickedMesh !== this._ground) {\r\n this.selectMesh(pickInfo.pickedMesh.id);\r\n const screenPoint = this.convertSceneToScreenPoint(this._scene.pointerX, this._scene.pointerY);\r\n if (screenPoint) {\r\n const event = {\r\n name: pickInfo.pickedMesh.name,\r\n id: pickInfo.pickedMesh.id,\r\n scenePointerX: this._scene.pointerX,\r\n scenePointerY: this._scene.pointerY,\r\n screenPointerX: screenPoint.X,\r\n screenPointerY: screenPoint.Y\r\n };\r\n this.fireMeshSelectedEvent(event);\r\n }\r\n }\r\n }\r\n }\r\n onPointerMove(evt, pickInfo) {\r\n if (!this._scene || !this._sceneHelper || this._envMode != _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor)\r\n return;\r\n this.highlightMeshOver(false);\r\n if (!this._highlightOver) {\r\n this._meshOver = null;\r\n return;\r\n }\r\n const info = this._scene.pick(this._scene.pointerX, this._scene.pointerY);\r\n if (info && info.hit && info.pickedMesh && this._sceneHelper.isRealMesh(info.pickedMesh)) {\r\n this._meshOver = info.pickedMesh;\r\n this.highlightMeshOver(true);\r\n }\r\n }\r\n //#endregion\r\n //#region Element Selection\r\n getSubMesh(mesh, submeshIdx) {\r\n if (this._sceneHelper)\r\n return this._sceneHelper.getSubMesh(mesh, submeshIdx);\r\n return null;\r\n }\r\n getLightByID(id) {\r\n if (this._scene)\r\n return this._scene.getLightByID(id);\r\n return null;\r\n }\r\n //#endregion\r\n //#region Apply material\r\n applyMaterialByName(name, mesh) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.applyMaterialByName(name, mesh);\r\n }\r\n applyMaterial(material, mesh) {\r\n if (this._sceneHelper) {\r\n this._sceneHelper.applyMaterial(material, mesh);\r\n this.setLongRenderingNeeded();\r\n }\r\n }\r\n applyMaterialToSubMeshByName(name, mesh, subMesh) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.applyMaterialToSubMeshByName(name, mesh, subMesh);\r\n }\r\n applyMaterialToSubMesh(material, mesh, subMesh) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.applyMaterialToSubMesh(material, mesh, subMesh);\r\n }\r\n resetMeshMaterial(mesh, initial) {\r\n const hash = initial ? this._initialMeshMaterials : this._lastMeshMaterials;\r\n const resetWithChildren = (parent) => {\r\n if (parent.subMeshes && parent.subMeshes.length > 0 && parent.material && parent.material instanceof BABYLON.MultiMaterial) {\r\n for (let i = 0; i < parent.subMeshes.length; i++) {\r\n let subMesh = parent.subMeshes[i];\r\n this.resetSubMeshMaterial(parent, subMesh, initial);\r\n }\r\n }\r\n else {\r\n if (hash.hasOwnProperty(parent.id)) {\r\n const materialID = hash[parent.id];\r\n if (materialID) {\r\n const material = this.getMaterialByID(materialID);\r\n if (material)\r\n parent.material = material;\r\n }\r\n }\r\n }\r\n parent.getChildMeshes().forEach(child => resetWithChildren(child));\r\n };\r\n }\r\n resetSubMeshMaterial(mesh, subMesh, initial) {\r\n const hash = initial ? this._initialSubMeshMaterials : this._lastSubMeshMaterials;\r\n if (mesh && subMesh && mesh.material instanceof BABYLON.MultiMaterial) {\r\n const idx = subMesh.materialIndex;\r\n if (idx >= 0 && idx < mesh.material.subMaterials.length) {\r\n const key = `${mesh.id}_${idx}`;\r\n if (hash.hasOwnProperty(key)) {\r\n const materialID = hash[key];\r\n const material = this.getMaterialByID(materialID);\r\n if (material)\r\n mesh.material.subMaterials[idx] = material;\r\n }\r\n }\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n //#endregion\r\n getExtension(name) {\r\n var idx = name.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n var ext = name.substring(idx).toLowerCase();\r\n return ext;\r\n }\r\n }\r\n //#region Caricamento texture da file esterni\r\n loadMobileTextureFilesAsync(filesToLoad, material, type) {\r\n return new Promise((resolve, reject) => {\r\n this.loadMobileTextureFiles(filesToLoad, material, type, () => resolve(), (reason) => reject());\r\n });\r\n }\r\n loadMobileTextureFiles(filesToLoad, material, type, onSuccess, onError) {\r\n const isCubemap = (filesToLoad.length === 6 || this.getExtension(filesToLoad[0].name) === \".dds\" || this.getExtension(filesToLoad[0].name) === \".hdr\" || this.getExtension(filesToLoad[0].name) === \".env\" || this.getExtension(filesToLoad[0].name) === \".basis\");\r\n this.uploadTextureFiles(filesToLoad, material, type, (zkSceneTextures) => {\r\n if (zkSceneTextures.length > 0) {\r\n if (isCubemap)\r\n this.setMobileCubeTextureImages(zkSceneTextures, material, type);\r\n else\r\n this.setMobileTextureImage(zkSceneTextures[0], material, type);\r\n }\r\n if (onSuccess)\r\n onSuccess();\r\n }, onError, false);\r\n }\r\n loadTextureFilesAsync(filesToLoad, material, type) {\r\n return new Promise((resolve, reject) => {\r\n this.loadTextureFiles(filesToLoad, material, type, () => resolve(), (reason) => reject(reason));\r\n });\r\n }\r\n // Per il caso di texture di ambiente si suppone che material sia null e che type sia\r\n // uno di \"environment\", \"skybox\", \"ground\"\r\n loadTextureFiles(filesToLoad, material, type, onSuccess, onError) {\r\n const isCubemap = (filesToLoad.length === 6 || this.getExtension(filesToLoad[0].name) === \".dds\" || this.getExtension(filesToLoad[0].name) === \".hdr\" || this.getExtension(filesToLoad[0].name) === \".env\" || this.getExtension(filesToLoad[0].name) === \".basis\");\r\n this.uploadTextureFiles(filesToLoad, material, type, (zkSceneTextures) => __awaiter(this, void 0, void 0, function* () {\r\n if (zkSceneTextures.length > 0) {\r\n if (isCubemap)\r\n yield this.setCubeTextureImages(zkSceneTextures, material, type);\r\n else {\r\n yield this.setTextureImage(zkSceneTextures[0], material, type);\r\n if (!material[type + \"Texture\"].metadata || !material[type + \"Texture\"].metadata.mobileUrl) {\r\n yield new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {\r\n this.uploadTextureFiles(filesToLoad, material, type, (zkSceneTextures) => __awaiter(this, void 0, void 0, function* () {\r\n this.setMobileTextureImage(zkSceneTextures[0], material, type);\r\n resolve();\r\n }), onError, true);\r\n }));\r\n }\r\n }\r\n if (onSuccess) {\r\n onSuccess();\r\n }\r\n }\r\n }), onError, false);\r\n }\r\n uploadTextureFileAsync(fileToLoad, material) {\r\n return new Promise((resolve, reject) => {\r\n if (!this._scene || !this._zkScene || !fileToLoad) {\r\n resolve(null);\r\n return;\r\n }\r\n const materialID = material ? material.id : Zakeke.getEmptyUUID();\r\n // Crea l'oggetto backbone relativo alla texture caricata\r\n const createZkSceneTexture = (data) => {\r\n if (this._zkScene && data && data.textureID && data.materialID && data.fileObjectID && data.url) {\r\n const zkSceneTexture = new Zakeke.SceneTexture();\r\n zkSceneTexture.set(\"textureID\", data.textureID);\r\n zkSceneTexture.set(\"materialID\", data.materialID);\r\n zkSceneTexture.set(\"fileObjectID\", data.fileObjectID);\r\n zkSceneTexture.set(\"url\", data.url);\r\n this._zkScene.get(\"textures\").push(zkSceneTexture);\r\n return zkSceneTexture;\r\n }\r\n return null;\r\n };\r\n // Upload dei file\r\n const data = new FormData();\r\n data.append('file', fileToLoad);\r\n jQuery.ajax({\r\n url: this.getTexturesUploadUrl(materialID),\r\n data: data,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'POST',\r\n success: (data) => __awaiter(this, void 0, void 0, function* () {\r\n const zkSceneTextures = [];\r\n if (Object.prototype.toString.call(data) === '[object Array]') {\r\n const zkSceneTexture = createZkSceneTexture(data[0]);\r\n if (zkSceneTexture)\r\n resolve(zkSceneTexture);\r\n else\r\n reject(\"Immagine non valida\");\r\n }\r\n else\r\n reject(\"Immagine non valida\");\r\n }),\r\n error: (xhr, textStatus, errorThrown) => {\r\n const msg = \"An error occurred: \" + textStatus + \" Error: \" + errorThrown;\r\n reject(msg);\r\n }\r\n });\r\n });\r\n }\r\n uploadTextureFiles(filesToLoad, material, type, onSuccess, onError, resize) {\r\n if (!this._scene || !this._zkScene || !filesToLoad || filesToLoad.length == 0)\r\n return;\r\n const materialID = material ? material.id : Zakeke.getEmptyUUID();\r\n // Crea l'oggetto backbone relativo alla texture caricata\r\n const createZkSceneTexture = (data) => {\r\n if (this._zkScene && data && data.textureID && data.materialID && data.fileObjectID && data.url) {\r\n const zkSceneTexture = new Zakeke.SceneTexture();\r\n zkSceneTexture.set(\"textureID\", data.textureID);\r\n zkSceneTexture.set(\"materialID\", data.materialID);\r\n zkSceneTexture.set(\"fileObjectID\", data.fileObjectID);\r\n zkSceneTexture.set(\"url\", data.url);\r\n this._zkScene.get(\"textures\").push(zkSceneTexture);\r\n return zkSceneTexture;\r\n }\r\n return null;\r\n };\r\n // Recupero estensione file\r\n const getExtension = (name) => {\r\n const idx = name.lastIndexOf(\".\");\r\n if (idx !== -1)\r\n return name.substring(idx);\r\n return null;\r\n };\r\n // Determina se il nome ha uno dei suffissi standard per le cubmap\r\n // Le immagini per le cubemap sono 6 e il nome presenta uno dei suffissi \"px,py,pz,nx,ny,nz\"\r\n const isCubeImage = (name, suffix) => {\r\n const idx = name.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n const nameWithoutExt = name.substring(0, idx);\r\n return nameWithoutExt.endsWith(\"_\" + suffix);\r\n }\r\n return false;\r\n };\r\n // Viene identificata come cubemap anche una mappa d'ambiente nel formato dds o hdr\r\n const firstFileExt = getExtension(filesToLoad[0].name);\r\n const isCubemap = this.canLoadCubemap(material, type) && (filesToLoad.length == 6 || firstFileExt === \".dds\" || firstFileExt === \".hdr\" || firstFileExt === \".env\" || firstFileExt === \".basis\");\r\n const files = [];\r\n if (isCubemap && filesToLoad.length == 6) {\r\n // verfico che ci siano tutte le estensioni accettate dalla cubemap\r\n const suffixes = [\"px\", \"py\", \"pz\", \"nx\", \"ny\", \"nz\"];\r\n for (let k = 0; k < filesToLoad.length; k++) {\r\n const file = filesToLoad[k];\r\n let lastIdx = -1;\r\n for (let i = 0; i < suffixes.length; i++) {\r\n if (isCubeImage(file.name, suffixes[i])) {\r\n files.push(file);\r\n lastIdx = i;\r\n break;\r\n }\r\n }\r\n if (lastIdx !== -1)\r\n suffixes.splice(lastIdx, 1);\r\n }\r\n if (suffixes.length != 0) {\r\n const msg = \"Immagini per la cube map non valide\";\r\n if (onError)\r\n onError(msg);\r\n Logger.info(msg);\r\n return;\r\n }\r\n }\r\n else {\r\n // Carico solo la prima selezionata\r\n files.push(filesToLoad[0]);\r\n }\r\n // Upload dei file\r\n const data = new FormData();\r\n for (let i = 0; i < files.length; i++) {\r\n data.append('file-' + i, files[i]);\r\n }\r\n jQuery.ajax({\r\n url: this.getTexturesUploadUrl(materialID) + \"?resize=\" + resize,\r\n data: data,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'POST',\r\n success: (data) => __awaiter(this, void 0, void 0, function* () {\r\n // Costruisco l'array di Zakeke.SceneTexture\r\n const zkSceneTextures = [];\r\n if (Object.prototype.toString.call(data) === '[object Array]') {\r\n for (let i = 0; i < data.length; i++) {\r\n const zkSceneTexture = createZkSceneTexture(data[i]);\r\n if (!zkSceneTexture) {\r\n const msg = \"Immagini non valide\";\r\n if (onError) {\r\n onError(msg);\r\n return;\r\n }\r\n }\r\n if (zkSceneTexture)\r\n zkSceneTextures.push(zkSceneTexture);\r\n }\r\n //if (zkSceneTextures.length > 0) {\r\n // if (isCubemap)\r\n // await this.setCubeTextureImages(zkSceneTextures, material, type);\r\n // else\r\n // await this.setTextureImage(zkSceneTextures[0], material, type);\r\n //}\r\n }\r\n if (onSuccess)\r\n onSuccess(zkSceneTextures);\r\n }),\r\n error: (xhr, textStatus, errorThrown) => {\r\n const msg = \"An error occurred: \" + textStatus + \" Error: \" + errorThrown;\r\n if (onError)\r\n onError(msg);\r\n }\r\n });\r\n }\r\n getTexturesUploadUrl(materialID) {\r\n if (this._zkScene)\r\n return this._zkScene.getTexturesUrl(materialID);\r\n return \"\";\r\n }\r\n removeAllMaterialPhotos(material) {\r\n if (this._zkScene) {\r\n const toRemove = [];\r\n for (let i = 0; i < this._zkScene.get(\"materialPhotos\").length; i++) {\r\n if (this._zkScene.get(\"materialPhotos\").at(i).get(\"materialID\") === material.id)\r\n toRemove.push(this._zkScene.get(\"materialPhotos\").at(i));\r\n }\r\n if (toRemove.length > 0)\r\n this._zkScene.get(\"materialPhotos\").remove(toRemove);\r\n }\r\n }\r\n removeMaterialPhotoAtIndex(material, index) {\r\n if (this._zkScene) {\r\n const materialPhotos = [];\r\n for (let i = 0; i < this._zkScene.get(\"materialPhotos\").length; i++) {\r\n if (this._zkScene.get(\"materialPhotos\").at(i).get(\"materialID\") === material.id)\r\n materialPhotos.push(this._zkScene.get(\"materialPhotos\").at(i));\r\n }\r\n if (materialPhotos.length > 0) {\r\n const materialPhoto = materialPhotos[index];\r\n this._zkScene.get(\"materialPhotos\").remove(materialPhoto);\r\n }\r\n }\r\n }\r\n loadMaterialPhotoFiles(filesToLoad, material, onSuccess, onError) {\r\n this.uploadMaterialPhotoFiles(filesToLoad, material, (zkSceneMaterialPhotos) => {\r\n this.refreshInfoPoints();\r\n if (onSuccess)\r\n onSuccess();\r\n }, onError);\r\n }\r\n uploadMaterialPhotoFiles(filesToLoad, material, onSuccess, onError) {\r\n if (!this._scene || !this._zkScene || !filesToLoad || filesToLoad.length === 0)\r\n return;\r\n const materialID = material.id;\r\n // Crea l'oggetto backbone relativo alla photo caricata\r\n const createZkSceneMaterialPhoto = (data) => {\r\n if (this._zkScene && data && data.photoID && data.materialID && data.fileObjectID && data.url) {\r\n const zkSceneMaterialPhoto = new Zakeke.SceneMaterialPhoto();\r\n zkSceneMaterialPhoto.set(\"photoID\", data.photoID);\r\n zkSceneMaterialPhoto.set(\"materialID\", data.materialID);\r\n zkSceneMaterialPhoto.set(\"fileObjectID\", data.fileObjectID);\r\n zkSceneMaterialPhoto.set(\"url\", data.url);\r\n this._zkScene.get(\"materialPhotos\").push(zkSceneMaterialPhoto);\r\n return zkSceneMaterialPhoto;\r\n }\r\n return null;\r\n };\r\n // Recupero estensione file\r\n const getExtension = (name) => {\r\n const idx = name.lastIndexOf(\".\");\r\n if (idx !== -1)\r\n return name.substring(idx);\r\n return null;\r\n };\r\n // Upload dei file\r\n const data = new FormData();\r\n for (let i = 0; i < filesToLoad.length; i++) {\r\n const ext = getExtension(filesToLoad[i].name);\r\n if (ext === \".png\" || ext === \".jpg\")\r\n data.append('file-' + i, filesToLoad[i]);\r\n }\r\n jQuery.ajax({\r\n url: this.getMaterialPhotosUploadUrl(materialID),\r\n data: data,\r\n cache: false,\r\n contentType: false,\r\n processData: false,\r\n type: 'POST',\r\n success: (data) => {\r\n // Costruisco l'array di Zakeke.SceneMaterialPhoto\r\n const zkSceneMaterialPhotos = [];\r\n if (Object.prototype.toString.call(data) === '[object Array]') {\r\n for (let i = 0; i < data.length; i++) {\r\n const zkSceneMaterialPhoto = createZkSceneMaterialPhoto(data[i]);\r\n if (!zkSceneMaterialPhoto) {\r\n const msg = \"Immagini non valide\";\r\n if (onError) {\r\n onError(msg);\r\n return;\r\n }\r\n }\r\n if (zkSceneMaterialPhoto)\r\n zkSceneMaterialPhotos.push(zkSceneMaterialPhoto);\r\n }\r\n }\r\n if (onSuccess)\r\n onSuccess(zkSceneMaterialPhotos);\r\n },\r\n error: (xhr, textStatus, errorThrown) => {\r\n const msg = \"An error occurred: \" + textStatus + \" Error: \" + errorThrown;\r\n if (onError)\r\n onError(msg);\r\n }\r\n });\r\n }\r\n getMaterialPhotosUploadUrl(materialID) {\r\n if (this._zkScene)\r\n return this._zkScene.getMaterialPhotosUrl(materialID);\r\n return \"\";\r\n }\r\n // Verifica se il material può caricare una cubemap per il tipo di proprietà specificato (type)\r\n canLoadCubemap(material, type) {\r\n // Environment\r\n if (!material)\r\n return type == \"environment\" || type == \"skybox\";\r\n // Material\r\n if (material instanceof BABYLON.StandardMaterial &&\r\n (type == \"reflection\" || type == \"refraction\"))\r\n return true;\r\n if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n return type === \"environment\";\r\n }\r\n if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n return type === \"environment\";\r\n }\r\n if (material instanceof BABYLON.PBRMaterial) {\r\n return type === \"reflection\";\r\n }\r\n if (material instanceof Zakeke.PBRMaterial) {\r\n return type === \"reflection\";\r\n }\r\n /*\r\n if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n return type == \"environment\" ||\r\n type == \"normal\" ||\r\n type == \"emissive\" ||\r\n type == \"occlusion\" ||\r\n type == \"base\" ||\r\n type == \"metallicRoughness\";\r\n }\r\n\r\n if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n return type == \"environment\" ||\r\n type == \"normal\" ||\r\n type == \"emissive\" ||\r\n type == \"occlusion\" ||\r\n type == \"diffuse\" ||\r\n type == \"specularGlossiness\";\r\n }\r\n\r\n if (material instanceof BABYLON.PBRMaterial) {\r\n return type === \"albedo\" ||\r\n type === \"ambient\" ||\r\n type === \"opacity\" ||\r\n type === \"reflection\" ||\r\n type === \"emissive\" ||\r\n type === \"reflectivity\" ||\r\n type === \"metallic\" ||\r\n type === \"microsurface\" ||\r\n type === \"lightmap\" ||\r\n type === \"refraction\";\r\n }\r\n\r\n if (material instanceof Zakeke.PBRMaterial) {\r\n return type === \"albedo\" ||\r\n type === \"reflection\" ||\r\n type === \"matCapReflection\" ||\r\n type === \"reflectivity\" ||\r\n type === \"microsurface\" ||\r\n type === \"ambient\" ||\r\n type === \"ao\" ||\r\n type === \"opacity\";\r\n }\r\n */\r\n if (material instanceof BABYLON.ShaderMaterial)\r\n return true;\r\n return false;\r\n }\r\n // Aggiorna la configurazione di ambiente impostando l'url di una texture caricata\r\n setEnvironmentTexture(url, type, extensions, files, onLoad) {\r\n if (type === \"environment\") {\r\n // La mappa d'ambiente di default la imposto direttamente sulla scena\r\n // in modo che valga sia per la modalità editor che per la modalità viewer\r\n this.setSceneEnvironmentTexture(url, undefined, extensions, files, onLoad);\r\n //this.setViewerEnvironmentTexture(url);\r\n }\r\n else if (type === \"skybox\") {\r\n this.setViewerSkyboxTexture(url, extensions, files);\r\n }\r\n else if (type === \"ground\") {\r\n this.setViewerGroundTexture(url);\r\n }\r\n }\r\n removeSceneEnvironmentTexture() {\r\n if (this._scene && this._scene.environmentTexture) {\r\n this._scene.environmentTexture.dispose();\r\n this._scene.environmentTexture = null;\r\n if (this._scene.metadata && this._scene.metadata.environmentTextureRotationY != undefined)\r\n delete this._scene.metadata.environmentTextureRotationY;\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n setSceneEnvironmentTextureRotationY(rotationY) {\r\n if (this._scene && this._scene.environmentTexture &&\r\n (this._scene.environmentTexture instanceof BABYLON.CubeTexture || this._scene.environmentTexture instanceof BABYLON.HDRCubeTexture)) {\r\n this._scene.environmentTexture.rotationY = rotationY * Math.PI / 180;\r\n this.setLongRenderingNeeded();\r\n }\r\n }\r\n // Crea e imposta la singola texture sul materiale per il tipo di proprietà specificato\r\n setTextureImage(zkSceneTexture, material, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise(resolve => {\r\n if (this._scene && zkSceneTexture && zkSceneTexture instanceof Zakeke.SceneTexture) {\r\n const url = zkSceneTexture.get(\"url\");\r\n if (url) {\r\n // Caso environment\r\n if (!material) {\r\n this.setEnvironmentTexture(url, type);\r\n }\r\n else {\r\n // Crea la texture\r\n const oldTexture = this.getMaterialTexture(material, type);\r\n let invertY = true;\r\n if (oldTexture && oldTexture instanceof BABYLON.Texture)\r\n invertY = oldTexture.invertY;\r\n const texture = new BABYLON.Texture(url, this._scene, undefined, invertY, undefined, () => this.setRenderingNeeded());\r\n if (oldTexture && oldTexture instanceof BABYLON.Texture) {\r\n texture.uScale = oldTexture.uScale;\r\n texture.vScale = oldTexture.vScale;\r\n texture.uOffset = oldTexture.uOffset;\r\n texture.vOffset = oldTexture.vOffset;\r\n texture.uAng = oldTexture.uAng;\r\n texture.vAng = oldTexture.vAng;\r\n texture.level = oldTexture.level;\r\n texture.coordinatesIndex = oldTexture.coordinatesIndex;\r\n texture.coordinatesMode = oldTexture.coordinatesMode;\r\n texture.hasAlpha = oldTexture.hasAlpha;\r\n texture.wrapU = oldTexture.wrapU;\r\n texture.wrapV = oldTexture.wrapV;\r\n texture.gammaSpace = oldTexture.gammaSpace;\r\n }\r\n _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_3__.SceneHelper.whenTextureIsReadyAsync(texture).then(() => {\r\n // Applica la texture\r\n this.applyTexture(texture, material, type);\r\n if (oldTexture && !this.isTextureUsed(oldTexture))\r\n oldTexture.dispose();\r\n this.setRenderingNeeded();\r\n resolve();\r\n });\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n // Crea la cubemap e la imposta sul materiale e tipo di poprietà specificato\r\n setCubeTextureImages(zkSceneTextures, material, type) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise(resolve => {\r\n if (!this._scene || Object.prototype.toString.call(zkSceneTextures) != '[object Array]')\r\n resolve();\r\n // controllo che si tratti effettivamente di un array di Zakeke.SceneTexture\r\n for (let i = 0; i < zkSceneTextures.length; i++) {\r\n const zkSceneTexture = zkSceneTextures[i];\r\n if (!zkSceneTexture || !(zkSceneTexture instanceof Zakeke.SceneTexture))\r\n resolve();\r\n }\r\n const onImagesLoad = () => this.setLongRenderingNeeded();\r\n // Crea la texture o aggiorna la configurazione di ambiente\r\n let texture = null;\r\n const textureInfo = this.getCubeTextureInfo(zkSceneTextures);\r\n if (textureInfo.url && this._scene) {\r\n if (zkSceneTextures.length === 1) {\r\n // Caso environment dds, hdr, env, basis\r\n const url = textureInfo.url;\r\n if (url) {\r\n if (!material) {\r\n this.setEnvironmentTexture(url, type);\r\n }\r\n else {\r\n if (url.endsWith(\".dds\"))\r\n texture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene);\r\n else if (url.endsWith(\".hdr\"))\r\n //texture = new BABYLON.HDRCubeTexture(url, this._scene, 512, undefined, undefined, undefined, undefined, onImagesLoad);\r\n texture = new BABYLON.HDRCubeTexture(url, this._scene, 128, undefined, undefined, undefined, undefined, onImagesLoad);\r\n else if (url.endsWith(\".env\")) {\r\n //texture = new BABYLON.CubeTexture(url, this._scene);\r\n //texture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene, undefined, undefined);\r\n texture = new BABYLON.CubeTexture(url, this._scene, null, false, null, onImagesLoad, null, undefined, true, undefined, true);\r\n //texture = new BABYLON.CubeTexture(url, this._scene, undefined, undefined, undefined, undefined, onImagesLoad);\r\n }\r\n else if (url.endsWith(\".basis\")) {\r\n texture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene);\r\n }\r\n }\r\n }\r\n }\r\n else if (zkSceneTextures.length === 6 && textureInfo.files.length === 6 && textureInfo.extensions.length === 6) {\r\n // Caso cubemap px, nx, py, ny, pz, nz\r\n if (!material)\r\n this.setEnvironmentTexture(textureInfo.url, type, textureInfo.extensions, textureInfo.files, onImagesLoad);\r\n else\r\n texture = new BABYLON.CubeTexture(textureInfo.url, this._scene, textureInfo.extensions, false, textureInfo.files, onImagesLoad);\r\n }\r\n }\r\n // Applica la texture\r\n if (texture) {\r\n _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_3__.SceneHelper.whenTextureIsReadyAsync(texture).then(() => {\r\n if (material) {\r\n const oldTexture = this.getMaterialTexture(material, type);\r\n this.applyTexture(texture, material, type);\r\n if (oldTexture && !this.isTextureUsed(oldTexture))\r\n oldTexture.dispose();\r\n this.setRenderingNeeded();\r\n resolve();\r\n }\r\n });\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n });\r\n }\r\n setMobileTextureImage(zkSceneTexture, material, type) {\r\n if (this._scene && this._sceneHelper) {\r\n const url = zkSceneTexture.get(\"url\");\r\n if (url) {\r\n let texture = null;\r\n if (!material) {\r\n texture = this._scene.environmentTexture;\r\n }\r\n else\r\n texture = this.getMaterialTexture(material, type);\r\n if (texture !== null && this._sceneHelper.isTextureWithUrl(texture)) {\r\n if (!texture.metadata)\r\n texture.metadata = {};\r\n texture.metadata.mobileUrl = url;\r\n }\r\n }\r\n }\r\n }\r\n setMobileCubeTextureImages(zkSceneTextures, material, type) {\r\n if (!this._scene || Object.prototype.toString.call(zkSceneTextures) != '[object Array]')\r\n return;\r\n // controllo che si tratti effettivamente di un array di Zakeke.SceneTexture\r\n for (let i = 0; i < zkSceneTextures.length; i++) {\r\n const zkSceneTexture = zkSceneTextures[i];\r\n if (!zkSceneTexture || !(zkSceneTexture instanceof Zakeke.SceneTexture))\r\n return;\r\n }\r\n const textureInfo = this.getCubeTextureInfo(zkSceneTextures);\r\n if (textureInfo.url) {\r\n let texture = null;\r\n if (!material)\r\n texture = this._scene.environmentTexture;\r\n else\r\n texture = this.getMaterialTexture(material, type);\r\n if (texture && texture instanceof BABYLON.CubeTexture) {\r\n if (!texture.metadata)\r\n texture.metadata = {};\r\n texture.metadata.mobileUrl = textureInfo.url;\r\n if (textureInfo.files.length === 6) {\r\n texture.metadata.mobileFiles = textureInfo.files;\r\n texture.metadata.mobileExtensions = textureInfo.extensions;\r\n }\r\n }\r\n }\r\n }\r\n // Costruisce l'url della cubemap da utilizzare per la costruzione della texture di Babylon JS\r\n // Nel caso di cubemap con 6 immagini (_px _nx...), restituisce l'url senza il suffisso\r\n getCubeTextureInfo(zkSceneTextures) {\r\n const textureInfo = {\r\n url: null,\r\n files: [],\r\n extensions: []\r\n };\r\n if (zkSceneTextures.length === 1) {\r\n // Caso mappa d'ambiente (dds, hdr o basis)\r\n textureInfo.url = zkSceneTextures[0].get(\"url\") || null;\r\n }\r\n else if (zkSceneTextures.length === 6) {\r\n // Caso cubemap composta da sei immagini\r\n const suffixes = [\"px\", \"py\", \"pz\", \"nx\", \"ny\", \"nz\"];\r\n let rootUrl = null;\r\n const files = [];\r\n const extensions = [];\r\n const containsPrefix = (name, suffix) => {\r\n const idx = name.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n const nameWithoutExt = name.substring(0, idx);\r\n return nameWithoutExt.endsWith(\"_\" + suffix);\r\n }\r\n return false;\r\n };\r\n const getRootUrl = (url, suffix) => {\r\n const idx = url.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n const nameWithoutExt = url.substring(0, idx);\r\n if (nameWithoutExt.endsWith(\"_\" + suffix)) {\r\n const rootUrl = nameWithoutExt.substring(0, nameWithoutExt.length - (\"_\" + suffix).length);\r\n return rootUrl;\r\n }\r\n }\r\n return null;\r\n };\r\n const getFileExtension = (url, suffix) => {\r\n const idx = url.lastIndexOf(\"_\" + suffix);\r\n if (idx !== -1) {\r\n return url.substr(idx);\r\n }\r\n return null;\r\n };\r\n for (let i = 0; i < suffixes.length; i++) {\r\n const suffix = suffixes[i];\r\n for (let k = 0; k < zkSceneTextures.length; k++) {\r\n const url = zkSceneTextures[k].get(\"url\");\r\n if (url) {\r\n if (containsPrefix(url, suffix)) {\r\n files.push(url);\r\n const ext = getFileExtension(url, suffix);\r\n if (ext)\r\n extensions.push(ext);\r\n if (!rootUrl)\r\n rootUrl = getRootUrl(url, suffix);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n textureInfo.url = rootUrl;\r\n textureInfo.files = files;\r\n textureInfo.extensions = extensions;\r\n }\r\n return textureInfo;\r\n }\r\n isTextureUsed(texture) {\r\n if (this._scene && texture) {\r\n for (let i = 0; i < this._scene.materials.length; i++) {\r\n const material = this._scene.materials[i];\r\n const textures = material.getActiveTextures();\r\n for (let j = 0; j < textures.length; j++) {\r\n const matTexture = textures[j];\r\n if (matTexture.uid === texture.uid)\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n changeTextureInvertYAsync(material, type, invertY) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene && this._sceneHelper) {\r\n var oldTexture = this._sceneHelper.getMaterialTexture(material, type);\r\n if (oldTexture && oldTexture instanceof BABYLON.Texture && oldTexture.invertY != invertY) {\r\n // Costruisco una nuova texture passando il giusto parametro nel costruttore\r\n let url = oldTexture.url;\r\n if (url) {\r\n let absoluteUrl = url;\r\n const isAbsolute = /^(?:\\/|[a-z]+:\\/\\/)/.test(url);\r\n if (!isAbsolute) {\r\n var rootUrl = yield this.getSceneRootUrl();\r\n if (rootUrl) {\r\n absoluteUrl = rootUrl + url;\r\n }\r\n }\r\n const texture = new BABYLON.Texture(absoluteUrl, this._scene, undefined, invertY, undefined, () => this.setRenderingNeeded());\r\n if (oldTexture && oldTexture instanceof BABYLON.Texture) {\r\n texture.uScale = oldTexture.uScale;\r\n texture.vScale = oldTexture.vScale;\r\n texture.uOffset = oldTexture.uOffset;\r\n texture.vOffset = oldTexture.vOffset;\r\n texture.uAng = oldTexture.uAng;\r\n texture.vAng = oldTexture.vAng;\r\n texture.level = oldTexture.level;\r\n texture.coordinatesIndex = oldTexture.coordinatesIndex;\r\n texture.coordinatesMode = oldTexture.coordinatesMode;\r\n texture.hasAlpha = oldTexture.hasAlpha;\r\n texture.wrapU = oldTexture.wrapU;\r\n texture.wrapV = oldTexture.wrapV;\r\n texture.gammaSpace = oldTexture.gammaSpace;\r\n }\r\n yield _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_3__.SceneHelper.whenTextureIsReadyAsync(texture);\r\n this.applyTexture(texture, material, type);\r\n if (oldTexture && !this.isTextureUsed(oldTexture))\r\n oldTexture.dispose();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n applyTextureByName(name, material, type) {\r\n if (this._scene) {\r\n const texture = this._scene.textures.find(t => t.name === name);\r\n if (texture)\r\n this.applyTexture(texture, material, type);\r\n }\r\n }\r\n applyTexture(texture, material, type) {\r\n // Lightmap always on second channel\r\n if (texture && type == \"lightmap\") {\r\n texture.coordinatesIndex = 1;\r\n if (material instanceof BABYLON.StandardMaterial ||\r\n material instanceof BABYLON.PBRMaterial ||\r\n material instanceof BABYLON.PBRBaseSimpleMaterial)\r\n material.useLightmapAsShadowmap = true;\r\n }\r\n // Verificare nome proprietà dinamica\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n switch (type) {\r\n case \"diffuse\":\r\n material.diffuseTexture = texture;\r\n break;\r\n case \"emissive\":\r\n material.emissiveTexture = texture;\r\n break;\r\n case \"ambient\":\r\n material.ambientTexture = texture;\r\n break;\r\n case \"lightmap\":\r\n material.lightmapTexture = texture;\r\n break;\r\n case \"opacity\":\r\n material.opacityTexture = texture;\r\n break;\r\n case \"specular\":\r\n material.specularTexture = texture;\r\n break;\r\n case \"reflection\":\r\n material.reflectionTexture = texture;\r\n break;\r\n case \"refraction\":\r\n material.refractionTexture = texture;\r\n break;\r\n case \"bump\":\r\n material.bumpTexture = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n switch (type) {\r\n /*\r\n case \"environment\":\r\n material.environmentTexture = texture;\r\n break;\r\n case \"normal\":\r\n material.normalTexture = texture;\r\n break;\r\n case \"emissive\":\r\n material.emissiveTexture = texture;\r\n break;\r\n case \"occlusion\":\r\n material.occlusionTexture = texture;\r\n break;\r\n case \"base\":\r\n material.baseTexture = texture;\r\n break;\r\n case \"metallicRoughness\":\r\n material.metallicRoughnessTexture = texture;\r\n break;\r\n */\r\n case \"environment\":\r\n case \"normal\":\r\n case \"emissive\":\r\n case \"occlusion\":\r\n case \"base\":\r\n case \"metallicRoughness\":\r\n material[`${type}Texture`] = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n switch (type) {\r\n /*\r\n case \"environment\":\r\n material.environmentTexture = texture;\r\n break;\r\n case \"normal\":\r\n material.normalTexture = texture;\r\n break;\r\n case \"emissive\":\r\n material.emissiveTexture = texture;\r\n break;\r\n case \"occlusion\":\r\n material.occlusionTexture = texture;\r\n break;\r\n case \"diffuse\":\r\n material.diffuseTexture = texture;\r\n break;\r\n case \"specularGlossiness\":\r\n material.specularGlossinessTexture = texture;\r\n break;\r\n */\r\n case \"environment\":\r\n case \"normal\":\r\n case \"emissive\":\r\n case \"occlusion\":\r\n case \"diffuse\":\r\n case \"specularGlossiness\":\r\n material[`${type}Texture`] = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n switch (type) {\r\n case \"cameraColorGrading\":\r\n material.cameraColorGradingTexture = texture;\r\n break;\r\n /*\r\n case \"albedo\":\r\n material.albedoTexture = texture;\r\n break;\r\n case \"ambient\":\r\n material.ambientTexture = texture;\r\n break;\r\n case \"opacity\":\r\n material.opacityTexture = texture;\r\n break;\r\n case \"reflection\":\r\n material.reflectionTexture = texture;\r\n break;\r\n case \"emissive\":\r\n material.emissiveTexture = texture;\r\n break;\r\n case \"reflectivity\":\r\n material.reflectivityTexture = texture;\r\n break;\r\n case \"metallic\":\r\n material.metallicTexture = texture;\r\n break;\r\n case \"microSurface\":\r\n material.microSurfaceTexture = texture;\r\n break;\r\n case \"bump\":\r\n material.bumpTexture = texture;\r\n break;\r\n case \"lightmap\":\r\n material.lightmapTexture = texture;\r\n break;\r\n */\r\n case \"albedo\":\r\n case \"ambient\":\r\n case \"opacity\":\r\n case \"reflection\":\r\n case \"emissive\":\r\n case \"reflectivity\":\r\n case \"metallic\":\r\n case \"microSurface\":\r\n case \"bump\":\r\n case \"lightmap\":\r\n material[`${type}Texture`] = texture;\r\n break;\r\n case \"refraction\":\r\n material.refractionTexture = texture;\r\n break;\r\n case \"environmentBRDF\":\r\n material.environmentBRDFTexture = texture;\r\n break;\r\n case \"clearCoat_texture\":\r\n material.clearCoat.texture = texture;\r\n break;\r\n case \"clearCoat_bump\":\r\n material.clearCoat.bumpTexture = texture;\r\n break;\r\n case \"clearCoat_tint\":\r\n material.clearCoat.tintTexture = texture;\r\n break;\r\n case \"clearCoat_textureRoughness\":\r\n material.clearCoat.textureRoughness = texture;\r\n break;\r\n case \"anisotropy_texture\":\r\n material.anisotropy.texture = texture;\r\n break;\r\n case \"sheen_texture\":\r\n material.sheen.texture = texture;\r\n break;\r\n case \"sheen_textureRoughness\":\r\n material.sheen.textureRoughness = texture;\r\n break;\r\n case \"subSurface_thickness\":\r\n material.subSurface.thicknessTexture = texture;\r\n break;\r\n case \"subSurface_translucencyIntensity\":\r\n material.subSurface.translucencyIntensityTexture = texture;\r\n break;\r\n case \"subSurface_refractionIntensity\":\r\n material.subSurface.refractionIntensityTexture = texture;\r\n break;\r\n }\r\n }\r\n else if (material instanceof BABYLON.ShaderMaterial) {\r\n if (texture && texture instanceof BABYLON.Texture)\r\n material.setTexture(type, texture);\r\n else\r\n material.removeTexture(type);\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n switch (type) {\r\n case \"albedo\":\r\n material.albedoTexture = texture;\r\n break;\r\n case \"bump\":\r\n material.bumpTexture = texture;\r\n break;\r\n case \"reflection\":\r\n material.reflectionTexture = texture;\r\n break;\r\n case \"matCapReflection\":\r\n material.matCapReflectionTexture = texture;\r\n break;\r\n case \"reflectivity\":\r\n material.reflectivityTexture = texture;\r\n break;\r\n case \"microsurface\":\r\n material.microsurfaceTexture = texture;\r\n break;\r\n case \"ambient\":\r\n material.ambientTexture = texture;\r\n break;\r\n case \"ao\":\r\n material.aoTexture = texture;\r\n break;\r\n case \"opacity\":\r\n material.opacityTexture = texture;\r\n break;\r\n }\r\n }\r\n this.setLongRenderingNeeded();\r\n }\r\n getMaterialTexture(material, type) {\r\n if (material instanceof BABYLON.StandardMaterial) {\r\n switch (type) {\r\n case \"diffuse\":\r\n return material.diffuseTexture;\r\n case \"emissive\":\r\n return material.emissiveTexture;\r\n case \"ambient\":\r\n return material.ambientTexture;\r\n case \"lightmap\":\r\n return material.lightmapTexture;\r\n case \"opacity\":\r\n return material.opacityTexture;\r\n case \"specular\":\r\n return material.specularTexture;\r\n case \"reflection\":\r\n return material.reflectionTexture;\r\n case \"refraction\":\r\n return material.refractionTexture;\r\n case \"bump\":\r\n return material.bumpTexture;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMetallicRoughnessMaterial) {\r\n switch (type) {\r\n case \"environment\":\r\n return material.environmentTexture;\r\n case \"normal\":\r\n return material.normalTexture;\r\n case \"emissive\":\r\n return material.emissiveTexture;\r\n case \"occlusion\":\r\n return material.occlusionTexture;\r\n case \"base\":\r\n return material.baseTexture;\r\n case \"metallicRoughness\":\r\n return material.metallicRoughnessTexture;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRSpecularGlossinessMaterial) {\r\n switch (type) {\r\n case \"environment\":\r\n return material.environmentTexture;\r\n case \"normal\":\r\n return material.normalTexture;\r\n case \"emissive\":\r\n return material.emissiveTexture;\r\n case \"occlusion\":\r\n return material.occlusionTexture;\r\n case \"diffuse\":\r\n return material.diffuseTexture;\r\n case \"specularGlossiness\":\r\n return material.specularGlossinessTexture;\r\n }\r\n }\r\n else if (material instanceof BABYLON.PBRMaterial) {\r\n switch (type) {\r\n case \"cameraColorGrading\":\r\n return material.cameraColorGradingTexture;\r\n case \"albedo\":\r\n return material.albedoTexture;\r\n case \"ambient\":\r\n return material.ambientTexture;\r\n case \"opacity\":\r\n return material.opacityTexture;\r\n case \"reflection\":\r\n return material.reflectionTexture;\r\n case \"emissive\":\r\n return material.emissiveTexture;\r\n case \"reflectivity\":\r\n return material.reflectivityTexture;\r\n case \"metallic\":\r\n return material.metallicTexture;\r\n case \"microSurface\":\r\n return material.microSurfaceTexture;\r\n case \"bump\":\r\n return material.bumpTexture;\r\n case \"lightmap\":\r\n return material.lightmapTexture;\r\n case \"refraction\":\r\n return material.refractionTexture;\r\n case \"clearCoat\":\r\n return material.clearCoat.texture;\r\n case \"clearCoat_bump\":\r\n return material.clearCoat.bumpTexture;\r\n case \"clearCoat_tint\":\r\n return material.clearCoat.tintTexture;\r\n case \"clearCoat_textureRoughness\":\r\n return material.clearCoat.textureRoughness;\r\n case \"clearCoat_texture\":\r\n return material.clearCoat.texture;\r\n case \"anisotropy_texture\":\r\n return material.anisotropy.texture;\r\n case \"sheen_texture\":\r\n return material.sheen.texture;\r\n case \"sheen_textureRoughness\":\r\n return material.sheen.textureRoughness;\r\n case \"subSurface_thickness\":\r\n return material.subSurface.thicknessTexture;\r\n case \"subSurface_refractionIntensity\":\r\n return material.subSurface.refractionIntensityTexture;\r\n case \"subSurface_translucencyIntensity\":\r\n return material.subSurface.translucencyIntensityTexture;\r\n }\r\n }\r\n else if (material instanceof Zakeke.PBRMaterial) {\r\n switch (type) {\r\n case \"albedo\":\r\n return material.albedoTexture;\r\n case \"bump\":\r\n return material.bumpTexture;\r\n case \"reflection\":\r\n return material.reflectionTexture;\r\n case \"matCapReflection\":\r\n return material.matCapReflectionTexture;\r\n case \"reflectivity\":\r\n return material.reflectivityTexture;\r\n case \"microsurface\":\r\n return material.microsurfaceTexture;\r\n case \"ambient\":\r\n return material.ambientTexture;\r\n case \"ao\":\r\n return material.aoTexture;\r\n case \"opacity\":\r\n return material.opacityTexture;\r\n }\r\n }\r\n return null;\r\n }\r\n removeMaterialTexture(material, type) {\r\n this.applyTexture(null, material, type);\r\n }\r\n removeMaterialMobileTexture(material, type) {\r\n const texture = this.getMaterialTexture(material, type);\r\n if (texture && texture.metadata && texture.metadata.mobileUrl) {\r\n delete texture.metadata.mobileUrl;\r\n if (texture.metadata.hasOwnProperty(\"mobileFiles\"))\r\n delete texture.metadata.mobileFiles;\r\n if (texture.metadata.hasOwnProperty(\"mobileExtensions\"))\r\n delete texture.metadata.mobileExtensions;\r\n if (Object.keys(texture.metadata).length === 0 && texture.metadata.constructor === Object)\r\n delete texture.metadata;\r\n }\r\n }\r\n //#endregion\r\n //#region Operazioni sugli elementi della scena\r\n /**\r\n * Create a group of meshes\r\n * @param parentId Id of the parent node of the group\r\n * @param name Name of the group\r\n * @param children Array of meshes to be included in the group\r\n */\r\n createGroup(parentId, name, children) {\r\n if (this._scene) {\r\n const group = new BABYLON.Mesh(name, this._scene);\r\n group.id = Zakeke.generateUUID();\r\n group.metadata = {\r\n isRealMesh: true,\r\n isGroup: true\r\n };\r\n if (parentId) {\r\n const parent = this._scene.getMeshByID(parentId);\r\n if (parent) {\r\n group.parent = parent;\r\n }\r\n }\r\n if (children) {\r\n children.forEach(m => m.parent = group);\r\n }\r\n this.fireMeshesUpdateEvent();\r\n return group;\r\n }\r\n return null;\r\n }\r\n deleteMesh(meshID, removeMaterials) {\r\n const deleted = { meshIDs: [], materialIDs: [] };\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n const zkScene = this._zkScene;\r\n const mesh = scene.getMeshByID(meshID);\r\n if (mesh) {\r\n const removeMaterialsWithChildren = (parent) => {\r\n const materials = this.getMeshMaterials(parent);\r\n for (let k = 0; k < materials.length; k++) {\r\n // Sometimes, for submeshes for example, we can have an array of nulls\r\n const material = materials[k];\r\n if (!material)\r\n continue;\r\n const meshesUsingMaterial = this.getMeshesUsingMaterial(material.id);\r\n if (meshesUsingMaterial.length === 1) {\r\n if (meshesUsingMaterial.every((meshItem) => sceneHelper.meshHasParent(meshItem.id, mesh.id))) {\r\n deleted.materialIDs.push(materials[k].id);\r\n materials[k].dispose();\r\n }\r\n }\r\n }\r\n // Faccio lo stesso per i figli\r\n parent.getChildMeshes().forEach(child => removeMaterialsWithChildren(child));\r\n };\r\n if (removeMaterials) {\r\n removeMaterialsWithChildren(mesh);\r\n this.fireMaterialsUpdateEvent();\r\n }\r\n const cameraPivot = sceneHelper.getCameraPivot();\r\n if (cameraPivot && cameraPivot === mesh) {\r\n this.setCameraPivot(null);\r\n }\r\n if (this.isMeshSelected(mesh))\r\n this.unselectMesh(mesh.id);\r\n mesh.dispose();\r\n deleted.meshIDs.push(meshID);\r\n }\r\n this.fireMeshesUpdateEvent();\r\n this.setRenderingNeeded();\r\n deleted.materialIDs.forEach(materialID => {\r\n const libraryMaterialID = zkScene.getLibraryShaderMaterialIDForSceneMaterial(materialID);\r\n if (libraryMaterialID)\r\n zkScene.unregisterShaderMaterial(libraryMaterialID);\r\n });\r\n }\r\n return deleted;\r\n }\r\n // Cancella tutte le mesh\r\n deleteAllMeshes() {\r\n if (this._scene && this._sceneHelper) {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (this._sceneHelper.isRealMesh(mesh)) {\r\n this._scene.meshes.splice(i--, 1);\r\n mesh.dispose();\r\n }\r\n }\r\n this.setCameraPivot(null);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n deleteDuplicatedMeshesWithDifferentParent(parentID, removeMaterials) {\r\n const deleted = { meshIDs: [], materialIDs: [] };\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n const zkScene = this._zkScene;\r\n const removeIfDuplicated = (mesh) => {\r\n const others = this.getSceneMeshesByName(mesh.name);\r\n let found = false;\r\n for (let i = 0; i < others.length; i++) {\r\n var other = others[i];\r\n if (other.id != mesh.id && !sceneHelper.meshHasParent(other.id, parentID)) {\r\n // Elimino anche il materiale se la mesh è l'unica ad utilizzarlo\r\n if (removeMaterials) {\r\n const materials = this.getMeshMaterials(other);\r\n for (let k = 0; k < materials.length; k++) {\r\n const meshesUsingMaterial = this.getMeshesUsingMaterial(materials[k].id);\r\n if (meshesUsingMaterial.length == 1) {\r\n deleted.materialIDs.push(materials[k].id);\r\n materials[k].dispose();\r\n }\r\n }\r\n }\r\n deleted.meshIDs.push(other.id);\r\n other.dispose();\r\n others.splice(i--, 1);\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n mesh.getChildMeshes().forEach(child => removeIfDuplicated(child));\r\n }\r\n };\r\n const parent = scene.getMeshByID(parentID);\r\n if (parent) {\r\n parent.getChildMeshes().forEach(child => removeIfDuplicated(child));\r\n }\r\n this.setRenderingNeeded();\r\n deleted.materialIDs.forEach((materialID) => {\r\n const libraryMaterialID = zkScene.getLibraryShaderMaterialIDForSceneMaterial(materialID);\r\n if (libraryMaterialID)\r\n zkScene.unregisterShaderMaterial(libraryMaterialID);\r\n });\r\n }\r\n return deleted;\r\n }\r\n // Cancella tutte le mesh figlie di quella in input \r\n // che hanno lo stesso nome di altre mesh con id diverso\r\n // Questa funzione può essere utile per elminiare oggetti duplicati importati\r\n // con file diversi\r\n deleteDuplicatedChildMeshes(parentID, removeMaterials) {\r\n const deleted = { meshIDs: [], materialIDs: [] };\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n const zkScene = this._zkScene;\r\n const removeIfDuplicated = (mesh) => {\r\n const others = this.getSceneMeshesByName(mesh.name);\r\n let found = false;\r\n for (let i = 0; i < others.length; i++) {\r\n const other = others[i];\r\n if (other.id != mesh.id && !sceneHelper.meshHasParent(other.id, parentID)) {\r\n // Elimino anche il materiale se la mesh è l'unica ad utilizzarlo\r\n if (removeMaterials) {\r\n const materials = this.getMeshMaterials(mesh);\r\n for (let k = 0; k < materials.length; k++) {\r\n const meshesUsingMaterial = this.getMeshesUsingMaterial(materials[k].id);\r\n if (meshesUsingMaterial.length == 1) {\r\n deleted.materialIDs.push(materials[k].id);\r\n materials[k].dispose();\r\n }\r\n }\r\n }\r\n deleted.meshIDs.push(mesh.id);\r\n mesh.dispose();\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n const childMeshes = mesh.getChildMeshes();\r\n for (let i = 0; i < childMeshes.length; i++) {\r\n removeIfDuplicated(childMeshes[i]);\r\n }\r\n }\r\n };\r\n const parent = scene.getMeshByID(parentID);\r\n if (parent) {\r\n parent.getChildMeshes().forEach(child => removeIfDuplicated(child));\r\n }\r\n this.setRenderingNeeded();\r\n deleted.materialIDs.forEach((materialID) => {\r\n const libraryMaterialID = zkScene.getLibraryShaderMaterialIDForSceneMaterial(materialID);\r\n if (libraryMaterialID)\r\n zkScene.unregisterShaderMaterial(libraryMaterialID);\r\n });\r\n }\r\n return deleted;\r\n }\r\n deleteMaterial(materialID) {\r\n if (this._scene && this._sceneHelper) {\r\n const material = this._scene.getMaterialByID(materialID);\r\n if (material) {\r\n this.deleteMaterialInternal(material);\r\n this.fireMaterialsUpdateEvent();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n }\r\n deleteMaterialInternal(material) {\r\n if (this._scene && this._sceneHelper && material) {\r\n const materialID = material.id;\r\n if (this._zkScene) {\r\n const libraryMaterialID = this._zkScene.getLibraryShaderMaterialIDForSceneMaterial(material.id);\r\n if (libraryMaterialID)\r\n this._zkScene.unregisterShaderMaterial(libraryMaterialID);\r\n }\r\n const textures = this._sceneHelper.getTexturesExclusivelyForMaterial(material);\r\n material.dispose();\r\n for (let i = 0; i < textures.length; i++)\r\n textures[i].dispose();\r\n this._sceneHelper.removeSceneMaterialMetadata(materialID);\r\n }\r\n }\r\n deleteAllMaterials() {\r\n if (this._scene) {\r\n while (this._scene.materials.length > 0) {\r\n const material = this._scene.materials.pop();\r\n if (material)\r\n this.deleteMaterialInternal(material);\r\n }\r\n this.fireMaterialsUpdateEvent();\r\n this.setRenderingNeeded();\r\n this.fireMaterialsUpdateEvent();\r\n }\r\n }\r\n renameMaterial(id, name) {\r\n if (this._scene) {\r\n const material = this._scene.getMaterialByID(id);\r\n if (material)\r\n material.name = name;\r\n this.fireMaterialsUpdateEvent();\r\n }\r\n }\r\n cloneMesh(id) {\r\n let newMesh = null;\r\n if (this._scene && this._sceneHelper) {\r\n newMesh = this._sceneHelper.cloneMesh(id, false, false);\r\n this.setRenderingNeeded();\r\n this.fireMeshesUpdateEvent();\r\n }\r\n return newMesh;\r\n }\r\n // Same as clone but with duplicated geometry data too\r\n duplicateMesh(id, updatable = false) {\r\n let newMesh = null;\r\n if (this._scene && this._sceneHelper) {\r\n newMesh = this._sceneHelper.cloneMesh(id, true, updatable);\r\n this.setRenderingNeeded();\r\n this.fireMeshesUpdateEvent();\r\n }\r\n return newMesh;\r\n }\r\n cloneMaterial(id, newId, newName) {\r\n let newMaterial = null;\r\n if (this._scene && this._sceneHelper) {\r\n const material = this._scene.getMaterialByID(id);\r\n if (material) {\r\n const materialName = newName ? newName : material.name + \" - clone\";\r\n newMaterial = material.clone(materialName);\r\n if (newMaterial) {\r\n const materialId = newId ? newId : Zakeke.generateUUID();\r\n newMaterial.id = materialId;\r\n // Verifico se il materiale originario deriva da un materiale di libreria.\r\n // Nel caso, devo impostare il mapping in modo da copiare anche le relative textures\r\n if (this._zkScene) {\r\n const mapping = this._zkScene.getMappingForSceneMaterial(material.id);\r\n if (mapping) {\r\n var libraryMaterialID = mapping.get(\"libraryMaterialID\");\r\n this._zkScene.mapLibraryMaterial(libraryMaterialID, newMaterial.id);\r\n const textures = this._sceneHelper.getTexturesForMaterial(newMaterial);\r\n for (let i = 0; i < textures.length; i++) {\r\n const texture = textures[i];\r\n texture[\"materialMapping\"] = { libraryMaterialID: libraryMaterialID, sceneMaterialID: newMaterial.id };\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.setRenderingNeeded();\r\n this.fireMaterialsUpdateEvent();\r\n }\r\n return newMaterial;\r\n }\r\n createMaterial(name, type, group) {\r\n let material = null;\r\n if (this._scene) {\r\n const materialName = name || \"new material\";\r\n const materialType = type || \"Standard\";\r\n if (materialType === \"Standard\")\r\n material = new BABYLON.StandardMaterial(materialName, this._scene);\r\n else if (materialType === \"PBRMetallicRoughness\") {\r\n material = new BABYLON.PBRMetallicRoughnessMaterial(materialName, this._scene);\r\n material.subSurface.indexOfRefraction = 1;\r\n material[\"_imageProcessingConfiguration\"].contrast = 1;\r\n }\r\n else if (materialType === \"PBRSpecularGlossiness\")\r\n material = new BABYLON.PBRSpecularGlossinessMaterial(materialName, this._scene);\r\n else if (materialType === \"PBR\") {\r\n material = new BABYLON.PBRMaterial(materialName, this._scene);\r\n material.enableSpecularAntiAliasing = true;\r\n material.metallic = 0.9;\r\n material.roughness = 0.3;\r\n material.indexOfRefraction = 1;\r\n }\r\n else if (materialType === \"NewPBR\")\r\n material = new Zakeke.PBRMaterial(materialName, this._scene);\r\n if (material) {\r\n material.id = Zakeke.generateUUID();\r\n if (group) {\r\n if (!material.metadata)\r\n material.metadata = {};\r\n material.metadata.group = group;\r\n }\r\n }\r\n this.checkSceneEmptyEnvironmentTexture();\r\n this.setRenderingNeeded();\r\n this.fireMaterialsUpdateEvent();\r\n }\r\n return material;\r\n }\r\n changeMeshParent(meshID, newParentID) {\r\n if (this._scene) {\r\n const child = this._scene.getMeshByID(meshID);\r\n if (child && (!child.parent || child.parent.id != newParentID)) {\r\n const newParent = this._scene.getMeshByID(newParentID);\r\n child.parent = newParent;\r\n this.setRenderingNeeded();\r\n this.fireMeshesUpdateEvent();\r\n }\r\n }\r\n }\r\n removeMeshParent(meshID) {\r\n if (this._scene) {\r\n const child = this._scene.getMeshByID(meshID);\r\n if (child) {\r\n child.parent = null;\r\n this.fireMeshesUpdateEvent();\r\n }\r\n }\r\n }\r\n setManipulatedNode(node) {\r\n // If we are just click on another object then don't re-create the edit control\r\n if (node === this._manipulatedNode)\r\n return;\r\n this._manipulatedNode = node;\r\n this.showHideEditControl(this._editControlVisible); // Refresh edit control\r\n this.setRenderingNeeded();\r\n }\r\n importLibraryMaterial(zkMaterial) {\r\n if (this._scene && this._sceneHelper && this._zkScene && zkMaterial && zkMaterial instanceof Zakeke.Material) {\r\n if (zkMaterial.get(\"shaders\"))\r\n this.checkShaderMaterial(zkMaterial);\r\n const jsonText = zkMaterial.get(\"JSON\") || zkMaterial.get(\"json\");\r\n const rootUrl = zkMaterial.get(\"rootUrl\");\r\n if (jsonText && rootUrl) {\r\n const jsonObj = JSON.parse(jsonText);\r\n const material = BABYLON.Material.Parse(jsonObj, this._scene, rootUrl);\r\n if (material) {\r\n material.id = Zakeke.generateUUID();\r\n this._zkScene.mapLibraryMaterial(zkMaterial.getMaterialID(), material.id);\r\n if (zkMaterial.get(\"shaders\")) {\r\n const shaders = zkMaterial.get(\"shaders\");\r\n //shaders.get(\"name\"), shaders.get(\"vertex\"), shaders.get(\"fragment\")\r\n const shaderName = shaders.get(\"name\");\r\n const vertex = shaders.get(\"vertex\");\r\n const fragment = shaders.get(\"fragment\");\r\n if (shaderName && vertex && fragment) {\r\n this._zkScene.registerShaderMaterial(zkMaterial.getMaterialID(), shaderName, vertex, fragment);\r\n }\r\n this.setupShaderMaterialCameraPosition(material);\r\n }\r\n const textures = this._sceneHelper.getTexturesForMaterial(material);\r\n for (let i = 0; i < textures.length; i++) {\r\n var texture = textures[i];\r\n texture[\"materialMapping\"] = { libraryMaterialID: zkMaterial.getMaterialID(), sceneMaterialID: material.id };\r\n }\r\n }\r\n }\r\n this.fireMaterialsUpdateEvent();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n //#endregion\r\n //#region Recupero Texture\r\n // I metodi per il recupero delle texture sono stati spostati in SceneHelper\r\n // Li lascio qui solo momentaneamente\r\n getTexturesForMaterial(material) {\r\n return this._sceneHelper ? this._sceneHelper.getTexturesForMaterial(material) : [];\r\n }\r\n getStandardMaterialTextures(material) {\r\n return this._sceneHelper ? this._sceneHelper.getStandardMaterialTextures(material) : [];\r\n }\r\n getPBRBaseSimpleMaterialTextures(material) {\r\n return this._sceneHelper ? this._sceneHelper.getPBRBaseSimpleMaterialTextures(material) : [];\r\n }\r\n getPBRMaterialTextures(material) {\r\n return this._sceneHelper ? this._sceneHelper.getPBRMaterialTextures(material) : [];\r\n }\r\n getNewPBRMaterialTextures(material) {\r\n return this._sceneHelper ? this._sceneHelper.getNewPBRMaterialTextures(material) : [];\r\n }\r\n getPBRMetallicRoughnessMaterialTextures(material) {\r\n return this._sceneHelper ? this._sceneHelper.getPBRMetallicRoughnessMaterialTextures(material) : [];\r\n }\r\n getPBRSpecularGlossinessMaterialTextures(material) {\r\n return this._sceneHelper ? this._sceneHelper.getPBRSpecularGlossinessMaterialTextures(material) : [];\r\n }\r\n //#endregion\r\n //#region Camera Location\r\n removeCameraLocation(cameraLocation) {\r\n var _a;\r\n (_a = this._zkScene) === null || _a === void 0 ? void 0 : _a.get(\"cameraLocations\").remove(cameraLocation);\r\n this.fireCameraLocationsUpdateEvent();\r\n }\r\n saveCameraLocation(name) {\r\n if (this._zkScene && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const position = this._camera.position;\r\n const target = this._camera.target;\r\n const zkCameraLocation = new Zakeke.SceneCameraLocation();\r\n zkCameraLocation.set(\"name\", name);\r\n zkCameraLocation.set(\"px\", position.x);\r\n zkCameraLocation.set(\"py\", position.y);\r\n zkCameraLocation.set(\"pz\", position.z);\r\n zkCameraLocation.set(\"tx\", target.x);\r\n zkCameraLocation.set(\"ty\", target.y);\r\n zkCameraLocation.set(\"tz\", target.z);\r\n this._zkScene.get(\"cameraLocations\").push(zkCameraLocation);\r\n this.fireCameraLocationCreatedEvent(zkCameraLocation);\r\n this.fireCameraLocationsUpdateEvent();\r\n }\r\n }\r\n clearCameraLocations() {\r\n if (this._zkScene) {\r\n const items = this._zkScene.get(\"cameraLocations\");\r\n while (items.length > 0)\r\n items.remove(items.at(0));\r\n this.fireCameraLocationsUpdateEvent();\r\n }\r\n }\r\n //public setCameraLocation(locationID: string) {\r\n // if (this._sceneHelper && this._zkScene) {\r\n // const zkCameraLocation = this._zkScene.getCameraLocation(locationID);\r\n // if (zkCameraLocation) {\r\n // const position = new BABYLON.Vector3(zkCameraLocation.get(\"px\"), zkCameraLocation.get(\"py\"), zkCameraLocation.get(\"pz\"));\r\n // const target = new BABYLON.Vector3(zkCameraLocation.get(\"tx\"), zkCameraLocation.get(\"ty\"), zkCameraLocation.get(\"tz\"));\r\n // this._sceneHelper.animateCamera(target, position, 0.5);\r\n // }\r\n // }\r\n // this.setRenderingNeeded();\r\n //}\r\n getAllCameraLocations() {\r\n const locations = [];\r\n if (this._zkScene) {\r\n for (let i = 0; i < this._zkScene.get(\"cameraLocations\").length; i++)\r\n locations.push(this._zkScene.get(\"cameraLocations\").at(i));\r\n }\r\n return locations;\r\n }\r\n //#endregion\r\n //#region Collapse / Explode (Mesh Locations)\r\n saveMeshLocation(name) {\r\n if (this._meshLocationsManager) {\r\n this._meshLocationsManager.saveMeshLocation(name);\r\n }\r\n }\r\n saveExplodedMeshLocation() {\r\n if (this._meshLocationsManager) {\r\n this._meshLocationsManager.saveExplodedMeshLocation();\r\n }\r\n }\r\n saveCollapsedMeshLocation() {\r\n if (this._meshLocationsManager) {\r\n this._meshLocationsManager.saveCollapsedMeshLocation();\r\n }\r\n }\r\n onBeforeSaveMeshLocation() {\r\n this._oldManipulatedNode = this._manipulatedNode;\r\n this.setManipulatedNode(null);\r\n }\r\n onAfterSaveMeshLocation() {\r\n this.fireMeshLocationsUpdateEvent();\r\n this.setManipulatedNode(this._oldManipulatedNode);\r\n }\r\n clearMeshLocations() {\r\n if (this._meshLocationsManager) {\r\n this._meshLocationsManager.clearMeshLocations();\r\n }\r\n }\r\n getAllMeshLocations() {\r\n const locations = [];\r\n if (this._zkScene) {\r\n for (let i = 0; i < this._zkScene.get(\"meshLocations\").length; i++)\r\n locations.push(this._zkScene.get(\"meshLocations\").at(i));\r\n }\r\n return locations;\r\n }\r\n //#endregion\r\n //#region Material Library\r\n // Nota Bene\r\n // E' un po' incasinato, c'è da mettere ordine, primo abbozzo di implementazione. \r\n // Il problema principale è la gestione delle texture\r\n // che possono provenire da fonti diverse (sorgenti, librerie e caricate singolarmente dall'utente).\r\n // In breve: innanzitutto scatta una screenshot del materiale. per fare questo nasconde tutte le mesh,\r\n // crea una sfera temporanea e una camera temporanea prende la screenshot e poi rattiva le mesh così\r\n // come erano inialmente. Poi, clona il materiale iniziale (babylon) e lo associa ad un nuovo materiale lato server (zkMaterial).\r\n // Recupera le texture (babylon) associate al materiale di scena.\r\n // Per copiare le immagini lato server, recupera i fileObjectID per ognuna delle texture. \r\n // (Per una texture babylon possono esserci più file fileObjectID associati. Ad esempio, per una cubemap, ci saranno 6 fileObjectID associati.)\r\n // Per ogni fileObjectID, memorizza su skMaterial anche la provenienza, in modo che lato server il path possa essere costruito correttamente.\r\n // Salva il nuovo zkMaterial (lato server avverrà la copia dei file di immagini texture).\r\n // Alla fine elimina il nuovo materiale creato come clone.\r\n makeLibraryMaterial(id, name) {\r\n return new Promise((resolve, reject) => {\r\n this.getMaterialScreenShotForLibrary(id, (data) => {\r\n if (data) {\r\n this.createLibraryMaterial(id, name, data, resolve);\r\n }\r\n else {\r\n reject('No data generated for screenshot');\r\n }\r\n });\r\n });\r\n }\r\n getMaterialScreenShotForLibrary(id, callback) {\r\n if (this._scene && this._sceneHelper) {\r\n this.resetEditorEnvironment();\r\n this.removeGround();\r\n if (this._environmentManager) {\r\n this._environmentManager.dispose();\r\n this._environmentManager = null;\r\n }\r\n const width = 500;\r\n const height = 500;\r\n this._sceneHelper.takeMaterialScreenshotAsync(id, width, height).then((data) => {\r\n _Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.cropImageTransparency(data, width, height, (croppedData) => {\r\n this.refreshEnvironment();\r\n if (callback)\r\n callback(croppedData);\r\n });\r\n });\r\n }\r\n else {\r\n if (callback)\r\n callback(null);\r\n }\r\n }\r\n createLibraryMaterial(id, name, screenshotImageData, callback) {\r\n // Clone del materiale originale\r\n let newMaterial = null;\r\n // Function da chiamare in chiusura di tutto il processo\r\n const complete = () => {\r\n if (newMaterial)\r\n this.deleteMaterial(newMaterial.id);\r\n if (callback)\r\n callback();\r\n };\r\n if (!this._scene || !this._sceneHelper || !this._zkScene) {\r\n complete();\r\n return;\r\n }\r\n const scene = this._scene;\r\n const sceneHelper = this._sceneHelper;\r\n const zkScene = this._zkScene;\r\n // Materiale da rendere di libreria\r\n const material = scene.getMaterialByID(id);\r\n if (!material) {\r\n complete();\r\n return;\r\n }\r\n // Creo il nuovo modello di materiale da libreria\r\n const zkMaterial = new Zakeke.Material();\r\n zkMaterial.set(\"name\", name);\r\n zkMaterial.set(\"imageData\", screenshotImageData);\r\n let originalMaterialID = id;\r\n let pathOriginalMaterialID = originalMaterialID.replace(/-/g, \"\");\r\n const newMaterialID = zkMaterial.getMaterialID();\r\n const pathNewMaterialID = newMaterialID.replace(/-/g, \"\");\r\n // Clono il materiale da serializzare per il salvataggio in libreria\r\n newMaterial = this.cloneMaterial(id, newMaterialID, name);\r\n if (!newMaterial) {\r\n complete();\r\n return;\r\n }\r\n const sourcesIDs = zkScene.getSourcesIDs();\r\n const allLibraryMaterialIDs = zkScene.getLibraryMaterialIDs();\r\n // recupero le texture (babylon js) del materiale\r\n const sceneTextures = sceneHelper.getTexturesForMaterial(newMaterial);\r\n // recupero i materiali di libreria dai quali derivano le texture del materiale da salvare\r\n const libraryMaterialIDs = [];\r\n for (let i = 0; i < sceneTextures.length; i++) {\r\n const sceneTexture = sceneTextures[i];\r\n if (sceneTexture[\"materialMapping\"]) {\r\n const libraryMaterialID = sceneTexture[\"materialMapping\"].libraryMaterialID;\r\n if (libraryMaterialID)\r\n libraryMaterialIDs.push(libraryMaterialID);\r\n }\r\n }\r\n // Materiali di libreria legati al materiale da salvare anch'esso in libreria\r\n let zkMaterials = new Zakeke.Materials();\r\n const suffixes = [\"px\", \"py\", \"pz\", \"nx\", \"ny\", \"nz\"];\r\n const removeCubeTextureSuffix = function (url) {\r\n const idx = url.lastIndexOf(\".\");\r\n if (idx !== -1) {\r\n const nameWithoutExt = url.substring(0, idx);\r\n if (suffixes.some((suffix) => nameWithoutExt.endsWith(\"_\" + suffix))) {\r\n return nameWithoutExt.substring(0, nameWithoutExt.length - 3);\r\n }\r\n }\r\n return url;\r\n };\r\n const checkTextureUrl = (fileUrl, url) => {\r\n const cleared = removeCubeTextureSuffix(fileUrl);\r\n return cleared.endsWith(url);\r\n };\r\n // La funzione si occupa di modificare l'url delle texture del nuovo materiale\r\n // e di salvare il materiale serializzato come materiale di libreria\r\n const saveInLibrary = () => {\r\n for (let i = 0; i < sceneTextures.length; i++) {\r\n const sceneTexture = sceneTextures[i];\r\n if (sceneTexture && sceneHelper.isTextureWithUrl(sceneTexture) && sceneTexture.url) {\r\n let sourceID = null;\r\n let pathSourceID = null;\r\n let libraryMaterialID = null;\r\n let pathLibraryMaterialID = null;\r\n // Verifico se nell'url è presente un codice sorgente \r\n // (nel qual caso la texture deriva da una sorgente)\r\n for (let k = 0; k < sourcesIDs.length; k++) {\r\n const sID = sourcesIDs[k].replace(/-/g, \"\");\r\n const idx = sceneTexture.url.indexOf(sID);\r\n if (idx != -1) {\r\n sourceID = sourcesIDs[k];\r\n pathSourceID = sID;\r\n break;\r\n }\r\n }\r\n // Verifico se si tratta di una texture proveniente da una libreria di materiali\r\n if (sourceID == null) {\r\n if (sceneTexture[\"materialMapping\"]) {\r\n libraryMaterialID = sceneTexture[\"materialMapping\"].libraryMaterialID;\r\n if (libraryMaterialID)\r\n pathLibraryMaterialID = libraryMaterialID.replace(/-/g, \"\");\r\n }\r\n }\r\n // Ora devo recuperare i fileObjects relativi \r\n const fileObjectIDs = [];\r\n // Recupero dei fileObjects\r\n if (libraryMaterialID) {\r\n for (let k = 0; k < zkMaterials.length; k++) {\r\n if (zkMaterials.at(k).getMaterialID() == libraryMaterialID) {\r\n const zkLibraryMaterial = zkMaterials.at(k);\r\n for (let w = 0; w < zkLibraryMaterial.get(\"textureImages\").length; w++) {\r\n const libraryTexture = zkLibraryMaterial.get(\"textureImages\").at(w);\r\n if (checkTextureUrl(libraryTexture.get(\"imageUrl\"), sceneTexture.url))\r\n fileObjectIDs.push(libraryTexture.get(\"fileObjectID\"));\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceID) {\r\n const sceneSource = zkScene.get(\"sources\").findSource(sourceID);\r\n if (sceneSource) {\r\n for (let k = 0; k < sceneSource.get(\"textures\").length; k++) {\r\n const sourceTexture = sceneSource.get(\"textures\").at(k);\r\n if (checkTextureUrl(sourceTexture.get(\"url\"), sceneTexture.url))\r\n fileObjectIDs.push(sourceTexture.get(\"fileObjectID\"));\r\n }\r\n }\r\n }\r\n else {\r\n for (let k = 0; k < zkScene.get(\"textures\").length; k++) {\r\n const txt = zkScene.get(\"textures\").at(k);\r\n if (checkTextureUrl(txt.get(\"url\"), sceneTexture.url))\r\n fileObjectIDs.push(txt.get(\"fileObjectID\"));\r\n }\r\n }\r\n // A questo punto per ogni file object devo creare un oggetto MaterialSourceTextureImage\r\n // e aggiungerlo al nuovo zkMaterial\r\n for (let j = 0; j < fileObjectIDs.length; j++) {\r\n const sourceTextureImage = new Zakeke.MaterialSourceTextureImage();\r\n sourceTextureImage.set(\"fileObjectID\", fileObjectIDs[j]);\r\n if (libraryMaterialID) {\r\n sourceTextureImage.set(\"materialID\", libraryMaterialID);\r\n }\r\n else if (sourceID) {\r\n sourceTextureImage.set(\"sceneID\", zkScene.getSceneID());\r\n sourceTextureImage.set(\"sourceID\", sourceID);\r\n }\r\n else {\r\n sourceTextureImage.set(\"sceneID\", zkScene.getSceneID());\r\n sourceTextureImage.set(\"materialID\", originalMaterialID);\r\n }\r\n zkMaterial.get(\"sourceTextureImages\").push(sourceTextureImage);\r\n }\r\n // Ora devo sostituire il nome alla texture corrente\r\n let oldString = \"\";\r\n let newString = \"\";\r\n let name = sceneTexture.name;\r\n if (sourceID && pathSourceID) {\r\n const idx = sceneTexture.url.indexOf(pathSourceID);\r\n if (idx != -1) {\r\n name = sceneTexture.url.substring(idx);\r\n }\r\n oldString = pathSourceID;\r\n newString = \"textures/\" + pathNewMaterialID;\r\n sceneTexture.name = name.replace(new RegExp(oldString, 'g'), newString);\r\n }\r\n else if (libraryMaterialID && pathLibraryMaterialID) {\r\n oldString = pathLibraryMaterialID;\r\n newString = pathNewMaterialID;\r\n sceneTexture.name = name.replace(new RegExp('textures\\/([A-Za-z0-9]*)\\/(.*)', 'g'), 'textures/' + newString + '/$2');\r\n }\r\n else {\r\n var idx = sceneTexture.url.lastIndexOf(\"/\");\r\n if (idx !== -1) {\r\n idx = sceneTexture.url.lastIndexOf(\"/\", idx - 1);\r\n if (idx !== -1) {\r\n idx = sceneTexture.url.lastIndexOf(\"/\", idx - 1);\r\n if (idx != -1) {\r\n name = sceneTexture.url.substring(idx + 1);\r\n }\r\n }\r\n }\r\n oldString = pathOriginalMaterialID;\r\n newString = pathNewMaterialID;\r\n sceneTexture.name = name.replace(new RegExp('textures\\/([A-Za-z0-9]*)\\/(.*)', 'g'), 'textures/' + newString + '/$2');\r\n }\r\n sceneTexture.url = sceneTexture.name;\r\n }\r\n }\r\n // Ora che le texture sono state \"sistemate\", posso serializzare e salvare\r\n if (newMaterial) {\r\n const jsonObj = newMaterial.serialize();\r\n const json = JSON.stringify(jsonObj);\r\n zkMaterial.set(\"JSON\", json);\r\n zkMaterial.save(null, {\r\n success: function (model, response, options) {\r\n complete();\r\n },\r\n error: function (model, response, options) {\r\n complete();\r\n }\r\n });\r\n }\r\n else\r\n complete();\r\n // ---------------------------------\r\n };\r\n // Leggo tutti i materiali di libreria interessati\r\n if (libraryMaterialIDs.length > 0) {\r\n const data = { ids: libraryMaterialIDs.join(',') };\r\n try {\r\n zkMaterials.fetch({\r\n success: (collection, response, options) => {\r\n zkMaterials = collection;\r\n saveInLibrary();\r\n },\r\n error: (collection, response, options) => {\r\n Logger.info(\"Errore nel salvataggio del materiale di libreria\");\r\n complete();\r\n },\r\n data: data\r\n });\r\n }\r\n catch (e) {\r\n }\r\n }\r\n else {\r\n saveInLibrary();\r\n }\r\n }\r\n //#endregion\r\n //#region Lights\r\n lightsLayer_onLightSelected(event) {\r\n this.fireLightSelectedEvent(event);\r\n }\r\n isDefaultLight(light) {\r\n return this._sceneHelper ? this._sceneHelper.isDefaultLight(light) : false;\r\n }\r\n createLight(name, type) {\r\n let light = null;\r\n if (this._scene) {\r\n const lightName = name || \"new light\";\r\n const lightType = type || \"Point\";\r\n const position = BABYLON.Vector3.Zero();\r\n const direction = BABYLON.Vector3.Zero();\r\n const angle = 25 * Math.PI / 180;\r\n const exponent = 2;\r\n if (lightType == \"Point\")\r\n light = new BABYLON.PointLight(lightName, position, this._scene);\r\n else if (lightType == \"Directional\")\r\n light = new BABYLON.DirectionalLight(lightName, direction, this._scene);\r\n else if (lightType == \"Spot\")\r\n light = new BABYLON.SpotLight(lightName, position, direction, angle, exponent, this._scene);\r\n else if (lightType == \"Hemispheric\")\r\n light = new BABYLON.HemisphericLight(lightName, direction, this._scene);\r\n if (light)\r\n light.id = Zakeke.generateUUID();\r\n if (this._lightsLayer)\r\n this._lightsLayer.refresh();\r\n this.setRenderingNeeded();\r\n this.fireLightsUpdateEvent();\r\n }\r\n return light;\r\n }\r\n cloneLight(id, newId, newName) {\r\n let newLight = null;\r\n if (this._scene) {\r\n const light = this._scene.getLightByID(id);\r\n if (light) {\r\n const lightName = newName ? newName : light.name + \" - clone\";\r\n newLight = light.clone(lightName);\r\n if (newLight) {\r\n newLight.name = lightName; // Sometimes the clone parameter don't work\r\n const lightId = newId ? newId : Zakeke.generateUUID();\r\n newLight.id = lightId;\r\n if (this._lightsLayer)\r\n this._lightsLayer.refresh();\r\n }\r\n }\r\n this.setRenderingNeeded();\r\n this.fireLightsUpdateEvent();\r\n }\r\n return newLight;\r\n }\r\n renameLight(id, name) {\r\n if (this._scene) {\r\n const light = this._scene.getLightByID(id);\r\n if (light) {\r\n light.name = name;\r\n if (this._lightsLayer)\r\n this._lightsLayer.refresh();\r\n }\r\n this.fireLightsUpdateEvent();\r\n }\r\n }\r\n deleteLight(id) {\r\n if (this._scene) {\r\n const light = this._scene.getLightByID(id);\r\n if (light) {\r\n light.dispose();\r\n // Per un bug di Babylon che sarà fixato a breve devo segnalare le mesh come da aggiornare per l'illuminazione\r\n this._scene.meshes.forEach(mesh => mesh._markSubMeshesAsLightDirty());\r\n if (this._lightsLayer)\r\n this._lightsLayer.refresh();\r\n }\r\n this.setRenderingNeeded();\r\n this.fireLightsUpdateEvent();\r\n }\r\n }\r\n getAllLights() {\r\n return this._scene ? this._scene.lights : [];\r\n }\r\n canShowLights() {\r\n return this._showLights && this._envMode == _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor;\r\n }\r\n showHideLights(show) {\r\n this._showLights = show;\r\n if (this._lightsLayer)\r\n this._lightsLayer.refresh();\r\n this.setRenderingNeeded();\r\n }\r\n //#endregion\r\n //#region Ground\r\n canShowGround() {\r\n return this._showGround && this._envMode == _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor;\r\n }\r\n removeGround() {\r\n if (this._ground) {\r\n this._ground.dispose();\r\n this._ground = null;\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n refreshGround() {\r\n if (!this._scene)\r\n return;\r\n this.removeGround();\r\n if (!this.canShowGround()) {\r\n this.setRenderingNeeded();\r\n return;\r\n }\r\n const mainColor = this._scene.clearColor;\r\n const mainColorHex = mainColor.toHexString();\r\n const lum = _Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.isColorDark(mainColorHex) ? 0.8 : -0.5;\r\n const gridColor = BABYLON.Color3.FromHexString(_Helpers_utils__WEBPACK_IMPORTED_MODULE_6__.Utils.changeColorLuminosity(mainColorHex, lum));\r\n let size = 1000;\r\n let gridRatio = 1;\r\n if (this.countSceneMeshes() > 0) {\r\n const worldExtends = this._scene.getWorldExtends(mesh => this.isRealMesh(mesh));\r\n const worldSize = worldExtends.max.subtract(worldExtends.min);\r\n const radius = worldSize.length() * 1.5;\r\n if (isFinite(radius)) {\r\n size = radius * 20;\r\n gridRatio = size / 100;\r\n }\r\n }\r\n this._ground = BABYLON.Mesh.CreateGround(\"ground\", size, size, 10, this._scene);\r\n this._ground.doNotSerialize = true;\r\n this._ground.isVisible = this.showGround;\r\n this._ground.isPickable = false;\r\n this._ground.metadata = {\r\n isRealMesh: false,\r\n isGround: true,\r\n };\r\n const gridMaterial = new BABYLON.GridMaterial(\"groundMaterial\", this._scene);\r\n gridMaterial.doNotSerialize = true;\r\n gridMaterial.backFaceCulling = false;\r\n gridMaterial.mainColor = new BABYLON.Color3(mainColor.r, mainColor.g, mainColor.b);\r\n gridMaterial.opacity = 1;\r\n gridMaterial.gridRatio = gridRatio;\r\n gridMaterial.lineColor = gridColor;\r\n gridMaterial.metadata = { isRealMaterial: false };\r\n this._ground.material = gridMaterial;\r\n this.setRenderingNeeded();\r\n }\r\n showHideGround(show) {\r\n this.showGround = show;\r\n this.refreshGround();\r\n }\r\n //#endregion\r\n //#region Axes\r\n canShowAxes() {\r\n return this._showAxes && this._envMode == _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor;\r\n }\r\n showHideAxes(show) {\r\n this._showAxes = show;\r\n if (this._axesLayer)\r\n this._axesLayer.refresh();\r\n this.setRenderingNeeded();\r\n }\r\n //#endregion\r\n //#region Highlights\r\n showHideHighlight(show) {\r\n this._showHighlight = show;\r\n const mesh = this.getSelectedRootMesh();\r\n this.highlightMesh(mesh, show);\r\n this.setRenderingNeeded();\r\n }\r\n setHighlightOver(highlight) {\r\n this._highlightOver = highlight;\r\n }\r\n highlightMesh(mesh, highlight) {\r\n if (!this._showHighlight || this._envMode != _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor) {\r\n this.deleteHighlightLayer();\r\n return;\r\n }\r\n if (mesh && mesh instanceof BABYLON.Mesh) {\r\n if (highlight) {\r\n if (!this._highlightLayer)\r\n this.createHighlightLayer();\r\n if (this._highlightLayer)\r\n this._highlightLayer.addMesh(mesh, BABYLON.Color3.FromHexString(this._highlightColor));\r\n }\r\n else {\r\n if (this._highlightLayer) {\r\n this._highlightLayer.removeMesh(mesh);\r\n }\r\n }\r\n }\r\n this.setLongRenderingNeeded();\r\n }\r\n highlightMeshOver(highlight) {\r\n if (!this._showHighlight || this._envMode != _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor) {\r\n this.deleteHighlightLayer();\r\n return;\r\n }\r\n if (this._meshOver && this._meshOver instanceof BABYLON.Mesh && !this.isMeshSelected(this._meshOver)) {\r\n if (highlight && this._highlightOver) {\r\n if (!this._highlightLayer)\r\n this.createHighlightLayer();\r\n if (this._highlightLayer && !this._highlightLayer.hasMesh(this._meshOver))\r\n this._highlightLayer.addMesh(this._meshOver, BABYLON.Color3.FromHexString(this.highlightOverColor));\r\n }\r\n else {\r\n if (this._highlightLayer)\r\n this._highlightLayer.removeMesh(this._meshOver);\r\n }\r\n }\r\n this.setLongRenderingNeeded();\r\n }\r\n //#endregion\r\n //#region Edit control (Gizmo)\r\n showHideEditControl(show) {\r\n if (this._scene && this._camera && this._canvas) {\r\n this._editControlVisible = show;\r\n if (this._editControl && (!show || this._manipulatedNode == null)) {\r\n this._editControl.detach();\r\n this._editControl = null;\r\n }\r\n if (show && this._manipulatedNode) {\r\n if (!this._editControl) {\r\n this._editControl = new this._EditControl(this._manipulatedNode, this._camera, this._canvas, 0.75, true);\r\n //set rotational snap valie in radians\r\n this._editControl.setRotSnapValue(3.14 / 18);\r\n //set transalation snap value in meters\r\n this._editControl.setTransSnapValue(0.5);\r\n //set scale snap value in scale ratio\r\n this._editControl.setScaleSnapValue(0.25);\r\n }\r\n else {\r\n this._editControl.switchTo(this._manipulatedNode);\r\n }\r\n this.setEditingMode(this._editingMode);\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setEditingMode(mode) {\r\n this._editingMode = mode;\r\n if (this._editControl) {\r\n if (mode === _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EditingMode.Translate)\r\n this._editControl.enableTranslation();\r\n else if (mode === _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EditingMode.Rotate)\r\n this._editControl.enableRotation();\r\n else if (mode === _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EditingMode.Scaling)\r\n this._editControl.enableScaling();\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n undoEditing() {\r\n if (this._editControl) {\r\n this._editControl.undo();\r\n }\r\n }\r\n redoEditing() {\r\n if (this._editControl) {\r\n this._editControl.redo();\r\n }\r\n }\r\n //#endregion\r\n //#region Environment\r\n setEnvironmentMode(newMode) {\r\n if (newMode != this._envMode) {\r\n this._envMode = newMode;\r\n this.refreshEnvironment();\r\n }\r\n }\r\n refreshEnvironment() {\r\n if (!this._scene)\r\n return;\r\n this.setRenderingNeeded();\r\n if (this._envMode == _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode.Editor) {\r\n this.disableAntialiasing();\r\n this.resetEditorEnvironment();\r\n if (this._environmentManager) {\r\n this._environmentManager.dispose();\r\n this._environmentManager = null;\r\n }\r\n }\r\n else {\r\n this.deleteHighlightLayer();\r\n this.refreshGround();\r\n if (this._zkScene) {\r\n if (!this._environmentManager || this._environmentManager.scene != this._scene)\r\n this._environmentManager = new _Components_Environment_EnvironmentManager__WEBPACK_IMPORTED_MODULE_0__.EnvironmentManager(this._zkScene, this._scene);\r\n this._environmentManager.update();\r\n this.setLongRenderingNeeded();\r\n }\r\n }\r\n this.refreshGround();\r\n if (this._lightsLayer)\r\n this._lightsLayer.refresh();\r\n if (this._axesLayer)\r\n this._axesLayer.refresh();\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera)\r\n this.autoRender = this._camera.useAutoRotationBehavior;\r\n this.setRenderingNeeded();\r\n }\r\n //#endregion\r\n //#region Zoom & Move camera\r\n zoomOnMesh(mesh) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.zoomOnMesh(mesh);\r\n }\r\n // Sperimentale (è difficile capire come muovere la camera per inquadrare un oggetto)\r\n moveCameraToMeshPosition(mesh) {\r\n if (this._scene && this._sceneHelper && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const center = this._sceneHelper.getMeshHierarchyCenter(mesh);\r\n const target = this._camera.target;\r\n const radius = this._camera.radius;\r\n const direction = center.subtract(target);\r\n const length = direction.length();\r\n if (isFinite(length)) {\r\n let radiusVector = direction.normalize();\r\n let newPosition = target.add(radiusVector.scale(radius));\r\n const rayPick = new BABYLON.Ray(newPosition, radiusVector.scale(-1), radius);\r\n const meshFound = this._scene.pickWithRay(rayPick, item => item === mesh);\r\n if (meshFound && meshFound.hit) {\r\n const scale = new BABYLON.Vector3();\r\n const rotation = new BABYLON.Quaternion();\r\n const position = new BABYLON.Vector3();\r\n mesh.getWorldMatrix().decompose(scale, rotation, position);\r\n var size = 0.1 / scale.length() * 100;\r\n var nlines = [];\r\n var v = meshFound.pickedPoint;\r\n var n = meshFound.getNormal();\r\n if (n) {\r\n radiusVector = n.normalize();\r\n newPosition = target.add(radiusVector.scale(radius));\r\n }\r\n // draw\r\n //nlines.push([v, v.add(n.scale(size))]);\r\n //var meshLines = {};\r\n //meshLines.normals = BABYLON.MeshBuilder.CreateLineSystem(\"normalLines\", { lines: nlines }, this.scene);\r\n }\r\n this._sceneHelper.animateCamera(target, newPosition, 1);\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n //#endregion\r\n //#region Scene & Mesh Export: USDZ, glTF, Obj, AR\r\n exportMeshToOBJ(meshID) {\r\n if (!this._scene)\r\n return;\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (!mesh || !(mesh instanceof BABYLON.Mesh))\r\n return;\r\n const objText = BABYLON.OBJExport.OBJ([mesh]);\r\n this.saveTextAsFile(objText, mesh.name + \".obj\");\r\n }\r\n exportMeshGeometryToJson(meshID) {\r\n if (!this._scene)\r\n return;\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (!mesh || !(mesh instanceof BABYLON.Mesh))\r\n return;\r\n const result = {\r\n positions: mesh.getVerticesData(BABYLON.VertexBuffer.PositionKind),\r\n normals: mesh.getVerticesData(BABYLON.VertexBuffer.NormalKind),\r\n colors: mesh.getVerticesData(BABYLON.VertexBuffer.ColorKind),\r\n uvs: mesh.getVerticesData(BABYLON.VertexBuffer.UVKind),\r\n uvs2: mesh.getVerticesData(BABYLON.VertexBuffer.UV2Kind),\r\n indices: mesh.getIndices()\r\n };\r\n const json = JSON.stringify(result, null, 0);\r\n this.saveTextAsFile(json, mesh.name + \".json\");\r\n }\r\n enableDisableARForMesh(meshID, value) {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.AR = value;\r\n }\r\n }\r\n isAREnabledForMesh(meshID) {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && mesh.metadata) {\r\n if (mesh.metadata.AR !== undefined)\r\n return mesh.metadata.AR;\r\n else\r\n return true;\r\n }\r\n return false;\r\n }\r\n enableDisableTryOnForMesh(meshID, value) {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh) {\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.AR = value;\r\n }\r\n }\r\n isTryOnEnabledForMesh(meshID) {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && mesh.metadata) {\r\n if (mesh.metadata.TryOn !== undefined)\r\n return mesh.metadata.TryOn;\r\n else\r\n return true;\r\n }\r\n return false;\r\n }\r\n //#endregion\r\n //#region Utilities\r\n splitSubMeshes(meshID) {\r\n if (this._scene && this._sceneHelper) {\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh)\r\n this._sceneHelper.createMeshesFromSubMeshes(mesh);\r\n }\r\n }\r\n flipMeshFaces(meshID) {\r\n const parent = this.getMeshByID(meshID);\r\n if (!parent)\r\n return;\r\n const flip = (mesh) => {\r\n if (mesh instanceof BABYLON.Mesh)\r\n mesh.flipFaces(true);\r\n mesh.getChildMeshes().forEach(child => flip(child));\r\n };\r\n flip(parent);\r\n }\r\n convertSceneToScreenPoint(sceneX, sceneY) {\r\n if (this._canvas) {\r\n let offX = 0;\r\n let offY = 0;\r\n let node = this._canvas;\r\n do {\r\n offX += node.offsetLeft;\r\n offY += node.offsetTop;\r\n node = node.offsetParent;\r\n } while (node);\r\n return { X: sceneX + offX, Y: sceneY + offY };\r\n }\r\n return null;\r\n }\r\n saveTextAsFile(text, filename) {\r\n const textToSave = text;\r\n const textToSaveAsBlob = new Blob([textToSave], { type: \"text/plain\" });\r\n const textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob);\r\n const fileNameToSaveAs = filename;\r\n this.downloadFile(fileNameToSaveAs, textToSaveAsURL);\r\n }\r\n saveBytesAsFile(data, filename) {\r\n const blob = new Blob([data]);\r\n const url = window.URL.createObjectURL(blob);\r\n const fileNameToSaveAs = filename;\r\n this.downloadFile(filename, url);\r\n }\r\n saveBlobAsFile(blob, filename, mimetype) {\r\n let url = null;\r\n if (!mimetype)\r\n url = window.URL.createObjectURL(new Blob([blob]));\r\n else\r\n url = window.URL.createObjectURL(new Blob([blob], { type: mimetype }));\r\n this.downloadFile(filename, url);\r\n }\r\n downloadFile(filename, url) {\r\n var downloadLink = document.createElement(\"a\");\r\n downloadLink.download = filename;\r\n downloadLink.innerHTML = \"Download File\";\r\n downloadLink.href = url;\r\n downloadLink.onclick = (ev) => {\r\n document.body.removeChild(downloadLink);\r\n };\r\n downloadLink.style.display = \"none\";\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n }\r\n //#endregion\r\n //#region Draco\r\n // Test Draco encoding\r\n exportDracoEncodedToFile(meshID) {\r\n if (!this._scene)\r\n return;\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (!mesh)\r\n return;\r\n // ArrayBuffer con la codifica Draco della geometria\r\n const dracoData = this.getDracoEncodedGeometry(mesh);\r\n if (dracoData)\r\n this.saveBytesAsFile(dracoData, mesh.name + \"_draco.dat\");\r\n }\r\n // Funzione utile per testare la codifica Draco delle geometrie\r\n // La codifica reale delle mesh avviene durante il salvataggio e se ne\r\n // occupa la classe MakeIncremental, utilizzata in un worker thread\r\n getDracoEncodedGeometry(originalMesh) {\r\n let outputBuffer = null;\r\n if (this._scene && originalMesh && originalMesh instanceof BABYLON.Mesh) {\r\n const positions = originalMesh.getVerticesData(BABYLON.VertexBuffer.PositionKind);\r\n const normals = originalMesh.getVerticesData(BABYLON.VertexBuffer.NormalKind);\r\n const colors = originalMesh.getVerticesData(BABYLON.VertexBuffer.ColorKind);\r\n const uvs = originalMesh.getVerticesData(BABYLON.VertexBuffer.UVKind);\r\n const uvs2 = originalMesh.getVerticesData(BABYLON.VertexBuffer.UV2Kind);\r\n const indices = originalMesh.getIndices();\r\n const mesh = {};\r\n if (indices)\r\n mesh.indices = new Uint32Array(indices);\r\n if (positions)\r\n mesh.positions = new Float32Array(positions);\r\n if (normals)\r\n mesh.normals = new Float32Array(normals);\r\n if (uvs)\r\n mesh.uvs = new Float32Array(uvs);\r\n if (uvs2)\r\n mesh.uvs2 = new Float32Array(uvs2);\r\n if (colors)\r\n mesh.colors = new Uint32Array(colors);\r\n const encoderModule = DracoEncoderModule();\r\n const encoder = new encoderModule.Encoder();\r\n const meshBuilder = new encoderModule.MeshBuilder();\r\n const dracoMesh = new encoderModule.Mesh();\r\n const numFaces = mesh.indices.length / 3;\r\n const numPoints = mesh.positions.length / 3;\r\n meshBuilder.AddFacesToMesh(dracoMesh, numFaces, mesh.indices);\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.POSITION, numPoints, 3, mesh.positions);\r\n if (mesh.normals) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.NORMAL, numPoints, 3, mesh.normals);\r\n }\r\n if (mesh.colors) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.COLOR, numPoints, 4, mesh.colors);\r\n }\r\n if (mesh.uvs) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.TEX_COORD, numPoints, 2, mesh.uvs);\r\n }\r\n if (mesh.uvs2) {\r\n meshBuilder.AddFloatAttributeToMesh(dracoMesh, encoderModule.TEX_COORD, numPoints, 2, mesh.uvs2);\r\n }\r\n encoder.SetSpeedOptions(5, 5);\r\n encoder.SetAttributeQuantization(encoderModule.POSITION, 14);\r\n encoder.SetAttributeQuantization(encoderModule.TEX_COORD, 12);\r\n encoder.SetAttributeQuantization(encoderModule.NORMAL, 10);\r\n encoder.SetAttributeQuantization(encoderModule.COLOR, 10);\r\n encoder.SetAttributeQuantization(encoderModule.GENERIC, 8);\r\n encoder.SetEncodingMethod(encoderModule.MESH_EDGEBREAKER_ENCODING);\r\n const encodedData = new encoderModule.DracoInt8Array();\r\n const encodedLen = encoder.EncodeMeshToDracoBuffer(dracoMesh, encodedData);\r\n outputBuffer = new ArrayBuffer(encodedLen);\r\n var outputData = new Int8Array(outputBuffer);\r\n for (let i = 0; i < encodedLen; ++i) {\r\n outputData[i] = encodedData.GetValue(i);\r\n }\r\n encoderModule.destroy(dracoMesh);\r\n encoderModule.destroy(encodedData);\r\n encoderModule.destroy(encoder);\r\n encoderModule.destroy(meshBuilder);\r\n }\r\n return outputBuffer;\r\n }\r\n // Decodifica dei dati Draco ereditata da SceneViewer\r\n //#endregion\r\n //#region Mesh Creation\r\n // Crea una mesh (cubo) custom specificandone la geometria\r\n // utile per comprendere il modo in cui Babylon JS organizza i dati delle geomtrie\r\n createCustomMesh() {\r\n let customMesh = null;\r\n if (this._scene) {\r\n customMesh = new BABYLON.Mesh(\"custom\", this._scene);\r\n var positions = [-5, 2, -3, -7, -2, -3, -3, -2, -3, 5, 2, 3, 7, -2, 3, 3, -2, 3];\r\n var indices = [0, 1, 2, 3, 4, 5];\r\n var colors = [1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1]; //color array added\r\n var uvs = [0, 1, 0, 0, 1, 0];\r\n //Empty array to contain calculated values or normals added\r\n var normals = [];\r\n //Calculations of normals added\r\n BABYLON.VertexData.ComputeNormals(positions, indices, normals);\r\n const vertexData = new BABYLON.VertexData();\r\n vertexData.positions = positions;\r\n vertexData.indices = indices;\r\n vertexData.colors = colors; //Assignment of colors to vertexData\r\n vertexData.normals = normals; //Assignment of normal to vertexData added\r\n vertexData.uvs = uvs;\r\n vertexData.applyToMesh(customMesh);\r\n }\r\n return customMesh;\r\n }\r\n createBox(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && this._sceneHelper) {\r\n if (parentID)\r\n parent = this._scene.getMeshByID(parentID);\r\n mesh = this._sceneHelper.createBox(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n getSceneBoundingBox() {\r\n let bbox = null;\r\n if (this._scene) {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (mesh && mesh.metadata && mesh.metadata.sceneBoundingBox) {\r\n bbox = mesh;\r\n break;\r\n }\r\n }\r\n }\r\n return bbox;\r\n }\r\n getOrCreateSceneBoundingBox(visible = true) {\r\n let bbox = this.getSceneBoundingBox();\r\n if (!bbox) {\r\n bbox = this.createBoundingBox(null, \"SceneBoundingBox\", visible);\r\n if (bbox) {\r\n if (!bbox.metadata)\r\n bbox.metadata = {};\r\n bbox.metadata.boundingBox = true;\r\n bbox.metadata.sceneBoundingBox = true;\r\n }\r\n }\r\n return bbox;\r\n }\r\n createSceneBoundingBox(visible = true) {\r\n let bbox = this.getSceneBoundingBox();\r\n if (bbox)\r\n bbox.isVisible = visible;\r\n else {\r\n bbox = this.createBoundingBox(null, \"SceneBoundingBox\", visible);\r\n if (bbox) {\r\n if (!bbox.metadata)\r\n bbox.metadata = {};\r\n bbox.metadata.boundingBox = true;\r\n bbox.metadata.sceneBoundingBox = true;\r\n }\r\n }\r\n return bbox;\r\n }\r\n createBoundingBox(meshID, name, visible = true) {\r\n let mesh = null;\r\n if (meshID)\r\n mesh = this.getMeshByID(meshID);\r\n if (this._sceneHelper) {\r\n var newMesh = this._sceneHelper.createBoundingBox(mesh, name);\r\n if (newMesh)\r\n newMesh.isVisible = visible;\r\n this.setLongRenderingNeeded();\r\n return newMesh;\r\n }\r\n return null;\r\n }\r\n createSphere(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n mesh = this._sceneHelper.createSphere(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n createPlane(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n mesh = this._sceneHelper.createPlane(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n createDisc(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n mesh = this._sceneHelper.createDisc(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n createCylinder(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n mesh = this._sceneHelper.createCylinder(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n createTorus(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n mesh = this._sceneHelper.createTorus(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n createKnot(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n mesh = this._sceneHelper.createKnot(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n createRibbon(parentID, name) {\r\n let mesh = null;\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n mesh = this._sceneHelper.createRibbon(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return mesh;\r\n }\r\n createRoundedCubeAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createRoundedCubeAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createRoundedCylinderAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createRoundedCylinderAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createMatBallAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createMatBallAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createMaleHeadAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createMaleHeadAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createFemaleHeadAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createFemaleHeadAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createPokemonBallAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createPokemonBallAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createShaderBallAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createShaderBallAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createBootsAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createBootsAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createSuzanneAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createSuzanneAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createStepPyramidAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createStepPyramidAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createTeapotAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createTeapotAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createAlloyWheelAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createAlloyWheelAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n createTryonReferenceGlassesFrameAsync(parentID, name) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.createTryonReferenceGlassesFrameAsync(parent, name);\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n importMeshesFromUrlAsync(parentID, url) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let meshes = [];\r\n let parent = null;\r\n if (this._scene && parentID)\r\n parent = this._scene.getMeshById(parentID);\r\n if (this._sceneHelper) {\r\n meshes = yield this._sceneHelper.importMeshesFromUrlAsync(url, parent);\r\n this.checkSceneEmptyEnvironmentTexture();\r\n this.setLongRenderingNeeded();\r\n }\r\n return meshes;\r\n });\r\n }\r\n //#endregion\r\n //#region 2D Design Rendering\r\n connectMeshToModelSideAsync(meshID, submeshID, sideID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.connectMeshToModelSideAsync(meshID, submeshID, sideID);\r\n }\r\n });\r\n }\r\n clearMeshDesignManagers() {\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.clearMeshDesignManagers();\r\n }\r\n }\r\n getMeshDesignMananger(mesh, subMesh) {\r\n var _a;\r\n if (this._sceneDesignManager && this.scene) {\r\n return (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.getMeshDesignMananger(mesh, subMesh);\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n // -------------------------------------------------------------\r\n // Design view transformation\r\n // -------------------------------------------------------------\r\n translateDesignView(mesh, submesh, dx, dy) {\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.translateDesignView(mesh, submesh, dx, dy);\r\n }\r\n }\r\n rotateDesignView(mesh, submesh, angle, centerX, centerY) {\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.rotateDesignView(mesh, submesh, angle, centerX, centerY);\r\n }\r\n }\r\n scaleDesignView(mesh, submesh, hor, ver, centerX, centerY) {\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.scaleDesignView(mesh, submesh, hor, ver, centerX, centerY);\r\n }\r\n }\r\n setDesignViewTextureUVChannelAsync(mesh, submesh, uvChannel) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneDesignManager) {\r\n yield this._sceneDesignManager.setDesignViewTextureUVChannelAsync(mesh, submesh, uvChannel);\r\n }\r\n });\r\n }\r\n setDesignViewFormFactorAsync(mesh, submesh, percWidth, percHeight) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneDesignManager) {\r\n yield this._sceneDesignManager.setDesignViewFormFactorAsync(mesh, submesh, percWidth, percHeight);\r\n }\r\n });\r\n }\r\n //#endregion\r\n //#region Mesh measuring\r\n setSceneSizeCm(size, sizeType) {\r\n const mesh = this.getOrCreateSceneBoundingBox(false);\r\n if (mesh)\r\n this.setMeshSizeCm(mesh.id, size, sizeType);\r\n }\r\n getSceneWidthCm() {\r\n const mesh = this.getSceneBoundingBox();\r\n if (mesh && mesh.metadata && mesh.metadata.sizecm && mesh.metadata.sizecm.width)\r\n return mesh.metadata.sizecm.width;\r\n return null;\r\n }\r\n getSceneHeightCm() {\r\n const mesh = this.getSceneBoundingBox();\r\n if (mesh && mesh.metadata && mesh.metadata.sizecm && mesh.metadata.sizecm.height)\r\n return mesh.metadata.sizecm.height;\r\n return null;\r\n }\r\n getSceneDepthCm() {\r\n const mesh = this.getSceneBoundingBox();\r\n if (mesh && mesh.metadata && mesh.metadata.sizecm && mesh.metadata.sizecm.depth)\r\n return mesh.metadata.sizecm.depth;\r\n return null;\r\n }\r\n setMeshSizeCm(meshId, size, sizeType) {\r\n const mesh = this.getMeshByID(meshId);\r\n if (mesh) {\r\n let sizeObj = null;\r\n if (size && typeof size === \"number\" && !isNaN(size)) {\r\n if (sizeType === \"width\")\r\n sizeObj = { width: size };\r\n else if (sizeType === \"height\")\r\n sizeObj = { height: size };\r\n else if (sizeType === \"depth\")\r\n sizeObj = { depth: size };\r\n }\r\n if (!mesh.metadata)\r\n mesh.metadata = {};\r\n mesh.metadata.sizecm = sizeObj;\r\n }\r\n }\r\n getMeshWidthCm(meshID) {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && mesh.metadata && mesh.metadata.sizecm && mesh.metadata.sizecm.width)\r\n return mesh.metadata.sizecm.width;\r\n return null;\r\n }\r\n getMeshHeightCm(meshID) {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && mesh.metadata && mesh.metadata.sizecm && mesh.metadata.sizecm.height)\r\n return mesh.metadata.sizecm.height;\r\n return null;\r\n }\r\n getMeshDepthCm(meshID) {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && mesh.metadata && mesh.metadata.sizecm && mesh.metadata.sizecm.depth)\r\n return mesh.metadata.sizecm.depth;\r\n return null;\r\n }\r\n //#endregion\r\n //#region Material Previews\r\n getMaterialsPreviewsAsync(materialIDs, width, height, crop, createBlobs = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const results = [];\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const rootUrl = yield this.getSceneRootUrl();\r\n if (rootUrl) {\r\n const data = yield _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_2__.MaterialsPreview.getPreviewsAsync(this._scene, rootUrl, materialIDs, { width, height }, true);\r\n for (var filename in data.previewFiles)\r\n results.push(data.previewFiles[filename]);\r\n }\r\n }\r\n return results;\r\n });\r\n }\r\n getAllMaterialsPreviewsAsync(width, height, crop, createBlobs = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const results = [];\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const materials = this._sceneHelper.getAllMaterials();\r\n const materialIDs = materials.map(m => m.id);\r\n return this.getMaterialsPreviewsAsync(materialIDs, width, height, crop, createBlobs);\r\n }\r\n return results;\r\n });\r\n }\r\n downloadMaterialsPreviewsAsync(materialIDs, width, height, crop) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const rootUrl = yield this.getSceneRootUrl();\r\n if (rootUrl) {\r\n yield _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_2__.MaterialsPreview.downloadPreviewsAsync(this._scene, rootUrl, materialIDs, { width, height, crop });\r\n }\r\n }\r\n });\r\n }\r\n downloadAllMaterialsPreviewsAsync(width, height, crop) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene && this._sceneHelper && this._zkScene) {\r\n const materials = this._sceneHelper.getAllMaterials();\r\n const materialIDs = materials.map(m => m.id);\r\n yield this.downloadMaterialsPreviewsAsync(materialIDs, width, height, crop);\r\n }\r\n });\r\n }\r\n //#endregion\r\n createEnvelopeMesh(meshID) {\r\n if (this._scene && this._sceneHelper) {\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh && mesh instanceof BABYLON.Mesh) {\r\n return this._sceneHelper.createEnvelopeMesh(mesh);\r\n }\r\n }\r\n return null;\r\n }\r\n expandMesh(meshID, delta) {\r\n if (this._scene && this._sceneHelper) {\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh && mesh instanceof BABYLON.Mesh) {\r\n this._sceneHelper.expandMesh(mesh, delta);\r\n }\r\n }\r\n }\r\n enableDisableMeshFacetData(meshID, enable) {\r\n if (this._scene && this._sceneHelper) {\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n enable ? mesh.updateFacetData() : mesh.disableFacetData();\r\n }\r\n }\r\n }\r\n enableDisableDepthSortFacets(meshID, enable) {\r\n if (this._scene && this._sceneHelper) {\r\n const mesh = this._scene.getMeshByID(meshID);\r\n if (mesh) {\r\n mesh.mustDepthSortFacets = enable;\r\n }\r\n }\r\n }\r\n}\r\nSceneEditor.EmptyGroupName = \"_dummy_\";\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/Viewers/SceneViewer.ts\":\n/*!*******************************************!*\\\n !*** ../../3D/src/Viewers/SceneViewer.ts ***!\n \\*******************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"BroadcastChannelEventType\": () => (/* binding */ BroadcastChannelEventType),\n/* harmony export */ \"SceneViewer\": () => (/* binding */ SceneViewer)\n/* harmony export */ });\n/* harmony import */ var _Components_ActionExecutor_SceneActionExecutor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Components/ActionExecutor/SceneActionExecutor */ \"../../3D/src/Components/ActionExecutor/SceneActionExecutor.ts\");\n/* harmony import */ var _Components_CollapseExplode_MeshLocationsManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Components/CollapseExplode/MeshLocationsManager */ \"../../3D/src/Components/CollapseExplode/MeshLocationsManager.ts\");\n/* harmony import */ var _Components_DesignManagers_SceneDesignManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Components/DesignManagers/SceneDesignManager */ \"../../3D/src/Components/DesignManagers/SceneDesignManager.ts\");\n/* harmony import */ var _Components_Draco_DracoCompression__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Components/Draco/DracoCompression */ \"../../3D/src/Components/Draco/DracoCompression.ts\");\n/* harmony import */ var _Components_Environment_EnvironmentManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Components/Environment/EnvironmentManager */ \"../../3D/src/Components/Environment/EnvironmentManager.ts\");\n/* harmony import */ var _Components_Glow_GlowManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Components/Glow/GlowManager */ \"../../3D/src/Components/Glow/GlowManager.ts\");\n/* harmony import */ var _Components_InfoPointsManager_InfoPointsManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Components/InfoPointsManager/InfoPointsManager */ \"../../3D/src/Components/InfoPointsManager/InfoPointsManager.ts\");\n/* harmony import */ var _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Components/MaterialsPreview/MaterialsPreview */ \"../../3D/src/Components/MaterialsPreview/MaterialsPreview.ts\");\n/* harmony import */ var _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Components/SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n/* harmony import */ var _Components_ScenePreview_ScenePreview__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Components/ScenePreview/ScenePreview */ \"../../3D/src/Components/ScenePreview/ScenePreview.ts\");\n/* harmony import */ var _Components_Selector_ElementSelector__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Components/Selector/ElementSelector */ \"../../3D/src/Components/Selector/ElementSelector.ts\");\n/* harmony import */ var _Helpers_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Helpers/utils */ \"../../3D/src/Helpers/utils.ts\");\n/* harmony import */ var _Misc_Database__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Misc/Database */ \"../../3D/src/Misc/Database.ts\");\n/* harmony import */ var _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Misc/DefaultAssetUrls */ \"../../3D/src/Misc/DefaultAssetUrls.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar BroadcastChannelEventType;\r\n(function (BroadcastChannelEventType) {\r\n BroadcastChannelEventType[\"CameraMovement\"] = \"camera-movement\";\r\n BroadcastChannelEventType[\"ScriptExecution\"] = \"script-execution\";\r\n BroadcastChannelEventType[\"DesignChanged\"] = \"design-changed\";\r\n})(BroadcastChannelEventType || (BroadcastChannelEventType = {}));\r\nclass SceneViewer {\r\n constructor(options) {\r\n // Zakeke Scene Model\r\n this._zkScene = null;\r\n // Zakeke Product Model\r\n this._zkModel = null;\r\n this._canvasID = \"zakeke-canvas-viewer3D-\" + Zakeke.makeID(5);\r\n this._canvas = null;\r\n this._domElement = null;\r\n this._lastWidth = Number.MIN_VALUE;\r\n this._lastHeight = Number.MIN_VALUE;\r\n this._engine = null;\r\n this._scene = null;\r\n this._bindedResize = null;\r\n this._sceneHelper = null;\r\n this._environmentManager = null;\r\n this._glowManager = null; // Gestisce l'effetto glow sulle mesh con materiali emissivi\r\n this._sceneActionsExecutor = null; // Esegue lo script di configurazione sulla scena\r\n this._renderingNeeded = false;\r\n this._renderingPaused = false;\r\n this._autoRender = false;\r\n this._antialias = true;\r\n this._postProcesses = [];\r\n this._camera = null;\r\n this._hemiLight = null;\r\n this._pointLight = null;\r\n this._highlightColor = \"#00ff00\";\r\n this._highlightSize = 2;\r\n this._highlightLayer = null;\r\n this._highlightBlurHorizontalSize = 1;\r\n this._highlightBlurVerticalSize = 1;\r\n this._highlightAnimationID = null;\r\n this._highlightCurrentMeshes = [];\r\n this._highlightNextMeshes = [];\r\n this._deviceType = MPlaza.DeviceType.All;\r\n this._destroyed = false;\r\n this._sceneDesignManager = null;\r\n this._meshLocationsManager = null;\r\n // Eventi\r\n this._groupPickedListeners = [];\r\n this._focusAttributesListeners = [];\r\n this._designNotifyMessageListeners = [];\r\n this._designRemoveMessageListeners = [];\r\n this._designEventMessages = [];\r\n this._onDelayLoadingStart = null;\r\n this._onDelayLoadingProgress = null;\r\n this._onDelayLoadingSuccess = null;\r\n this._onDelayLoadingError = null;\r\n this._infoPointPickedListeners = [];\r\n this._infoPointContentShownListeners = [];\r\n this._infoPointContentHiddenListeners = [];\r\n this._beginAssetsLoadingListeners = [];\r\n this._endAssetsLoadingListeners = [];\r\n this._beginSceneLoadingListeners = [];\r\n this._endSceneLoadingListeners = [];\r\n this._arFileUrls = {}; // cache degli url dei file per AR (USDZ, glb, glTF)\r\n this._configPreview = false;\r\n this._defaultBackgroundColor = null;\r\n this._grids = [];\r\n this._dracoCompression = null;\r\n this._infoPointsManager = null;\r\n this._infoPointsManagerStyle = null;\r\n this._canShowInfoPoints = true;\r\n this._canShowInfoPointsContent = true;\r\n this._broadcastChannel = null;\r\n this._isHologramSource = false;\r\n this._isHologram = false;\r\n this.setCameraLocked = (isBlocked) => {\r\n if (this._zkScene && this._sceneHelper && this._scene) {\r\n this._sceneHelper.setupCamera();\r\n this._camera = this._scene.activeCamera;\r\n if (this._camera) {\r\n if (isBlocked) {\r\n this._sceneHelper.setCameraLimitLowerRadius(true);\r\n this._sceneHelper.setMinZoomPerc(1);\r\n this._sceneHelper.setMaxZoomPerc(1);\r\n }\r\n else {\r\n this._sceneHelper.setCameraLimitLowerRadius(false);\r\n this._sceneHelper.setMinZoomPerc(1);\r\n this._sceneHelper.setMaxZoomPerc(1.5);\r\n }\r\n }\r\n }\r\n };\r\n if (options != undefined) {\r\n if (typeof options == \"boolean\")\r\n this._configPreview = options;\r\n else {\r\n this._configPreview = options.configPreview;\r\n if (options.defaultBackgroundColor)\r\n this._defaultBackgroundColor = BABYLON.Color4.FromHexString(options.defaultBackgroundColor);\r\n }\r\n }\r\n this._elementSelector = new _Components_Selector_ElementSelector__WEBPACK_IMPORTED_MODULE_10__.ElementSelector();\r\n // metodo init reso asincrono, necessita factory method\r\n //this.init();\r\n }\r\n get zkScene() {\r\n return this._zkScene;\r\n }\r\n get zkModel() {\r\n return this._zkModel;\r\n }\r\n get canvas() {\r\n return this._canvas;\r\n }\r\n get engine() {\r\n return this._engine;\r\n }\r\n get scene() {\r\n return this._scene;\r\n }\r\n get autoRender() {\r\n return this._autoRender;\r\n }\r\n set autoRender(value) {\r\n this._autoRender = value;\r\n }\r\n get antialias() {\r\n return this._antialias;\r\n }\r\n set antialias(value) {\r\n this._antialias = value;\r\n }\r\n get isHologramSource() {\r\n return this.isHologramSource;\r\n }\r\n set isHologramSource(value) {\r\n this._isHologramSource = value;\r\n if (value) {\r\n this._isHologram = false;\r\n this.detachBroadcastChannelEventHandlers();\r\n }\r\n }\r\n get isHologram() {\r\n return this._isHologram;\r\n }\r\n set isHologram(value) {\r\n this._isHologram = value;\r\n if (value) {\r\n this._isHologramSource = false;\r\n this.attachBroadcastChannelEventHandlers();\r\n }\r\n else {\r\n this.detachBroadcastChannelEventHandlers();\r\n }\r\n this.refreshEnvironment();\r\n }\r\n getAntialiasEnabled() {\r\n let def = true;\r\n if (this._zkScene) {\r\n let val = this._zkScene.getAntialiasEnabled();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setAntialiasEnabled(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setAntialiasEnabled(value);\r\n value ? this.enableAntialiasing() : this.disableAntialiasing();\r\n }\r\n }\r\n // Per coerenza con tutto il resto inserisco questi metodi set & get, \r\n // andrebbero usate solo le proprietà, ma questo anche in SceneEditor\r\n getARScale() {\r\n let def = true;\r\n if (this._zkScene) {\r\n let val = this._zkScene.getARScale();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setARScale(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setARScale(value);\r\n }\r\n }\r\n getUseMaterialOffloading() {\r\n let def = false;\r\n if (this.zkScene) {\r\n let val = this.zkScene.getUseMaterialOffloading();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setUseMaterialOffloading(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setUseMaterialOffloading(value);\r\n }\r\n }\r\n getPrefetchMeshes() {\r\n const def = true;\r\n if (this.zkScene) {\r\n const val = this.zkScene.getPrefetchMeshes();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setPrefetchMeshes(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setPrefetchMeshes(value);\r\n }\r\n }\r\n getPrefetchMaterials() {\r\n const def = true;\r\n if (this.zkScene) {\r\n const val = this.zkScene.getPrefetchMaterials();\r\n if (val === undefined || val === null)\r\n return def;\r\n return val;\r\n }\r\n return def;\r\n }\r\n setPrefetchMaterials(value) {\r\n if (this._zkScene) {\r\n this._zkScene.setPrefetchMaterials(value);\r\n }\r\n }\r\n getShowHideInfoPoints() {\r\n return this.canShowInfoPoints;\r\n }\r\n setShowHideInfoPoints(value) {\r\n this.canShowInfoPoints = value;\r\n }\r\n get camera() {\r\n return this._camera;\r\n }\r\n get deviceType() {\r\n return this._deviceType;\r\n }\r\n set deviceType(value) {\r\n this._deviceType = value;\r\n }\r\n getDeviceType() {\r\n return this.deviceType;\r\n }\r\n get highlightColor() {\r\n return this._highlightColor;\r\n }\r\n set highlightColor(value) {\r\n this._highlightColor = value;\r\n }\r\n get highlightSize() {\r\n return this._highlightSize;\r\n }\r\n set highlightSize(value) {\r\n this._highlightSize = value;\r\n }\r\n get destroyed() {\r\n return this._destroyed;\r\n }\r\n get onDelayLoadingStart() {\r\n return this._onDelayLoadingStart;\r\n }\r\n set onDelayLoadingStart(callback) {\r\n this._onDelayLoadingStart = callback;\r\n }\r\n get onDelayLoadingProgress() {\r\n return this._onDelayLoadingProgress;\r\n }\r\n set onDelayLoadingProgress(callback) {\r\n this._onDelayLoadingProgress = callback;\r\n }\r\n get onDelayLoadingSuccess() {\r\n return this._onDelayLoadingSuccess;\r\n }\r\n set onDelayLoadingSuccess(callback) {\r\n this._onDelayLoadingSuccess = callback;\r\n }\r\n get onDelayLoadingError() {\r\n return this._onDelayLoadingError;\r\n }\r\n set onDelayLoadingError(callback) {\r\n this._onDelayLoadingError = callback;\r\n }\r\n get dracoCompression() {\r\n if (!this._dracoCompression) {\r\n this._dracoCompression = _Components_Draco_DracoCompression__WEBPACK_IMPORTED_MODULE_3__.DracoCompression.Default;\r\n //this._dracoCompression = new DracoCompression(1);\r\n }\r\n return this._dracoCompression;\r\n }\r\n get infoPointsShown() {\r\n if (this._infoPointsManager)\r\n return this._infoPointsManager.infoPointsShown;\r\n return false;\r\n }\r\n get infoPointsManagerStyle() {\r\n return this._infoPointsManagerStyle;\r\n }\r\n set infoPointsManagerStyle(style) {\r\n this._infoPointsManagerStyle = style;\r\n this.updateInfoPointsManagerStyle();\r\n }\r\n get canShowInfoPoints() {\r\n return this._canShowInfoPoints;\r\n }\r\n set canShowInfoPoints(value) {\r\n this._canShowInfoPoints = value;\r\n this.refreshInfoPoints();\r\n }\r\n get canShowInfoPointsContent() {\r\n return this._canShowInfoPointsContent;\r\n }\r\n set canShowInfoPointsContent(value) {\r\n this._canShowInfoPointsContent = value;\r\n if (this._infoPointsManager)\r\n this._infoPointsManager.canShowInfoPointsContent = value;\r\n }\r\n static createSceneViewerAsync(options) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const sceneViewer = new SceneViewer(options);\r\n yield sceneViewer.initAsync();\r\n return sceneViewer;\r\n });\r\n }\r\n dispose() {\r\n this.closeBroadcastChannel();\r\n this.removeCanvas();\r\n this.removeDomElement();\r\n this.deleteScene();\r\n this.deleteEngine();\r\n }\r\n initAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this._bindedResize = this.resize.bind(this);\r\n Zakeke.Tools.Init();\r\n BABYLON.Geometry.onDelayLoadingStart = (evt) => {\r\n if (this._onDelayLoadingStart)\r\n this._onDelayLoadingStart(evt);\r\n };\r\n BABYLON.Geometry.onDelayLoadingProgress = (evt) => {\r\n if (this._onDelayLoadingProgress)\r\n this._onDelayLoadingProgress(evt);\r\n };\r\n BABYLON.Geometry.onDelayLoadingSuccess = (evt) => {\r\n if (this._onDelayLoadingSuccess)\r\n this._onDelayLoadingSuccess(evt);\r\n };\r\n BABYLON.Geometry.onDelayLoadingError = (evt) => {\r\n if (this._onDelayLoadingError)\r\n this._onDelayLoadingError(evt);\r\n };\r\n BABYLON.Geometry.dracoDecodingFunction = (filename, dataToDecode, callback) => {\r\n this.dracoDecodingFunction(filename, dataToDecode, callback);\r\n };\r\n this.createCanvas();\r\n this.createDOMElement();\r\n yield this.init3DEngineAsync();\r\n });\r\n }\r\n init3DEngineAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.createEngine();\r\n yield this.createEmptySceneAsync();\r\n this._destroyed = false;\r\n });\r\n }\r\n createCanvas() {\r\n this._canvas = document.createElement('canvas');\r\n this._canvas.setAttribute(\"id\", this._canvasID);\r\n this._canvas.setAttribute(\"touch-action\", \"none\");\r\n this._canvas.addEventListener(\"dblclick\", (e) => this.setRenderingNeeded());\r\n return this._canvas;\r\n }\r\n removeCanvas() {\r\n if (this._canvas) {\r\n this._canvas.remove();\r\n this._canvas = null;\r\n }\r\n }\r\n deleteEngine() {\r\n if (this._engine) {\r\n this._engine.dispose();\r\n this._engine = null;\r\n }\r\n this._destroyed = true;\r\n $(window).off(\"resize\", this._bindedResize);\r\n }\r\n deleteScene() {\r\n this.deleteComponents();\r\n if (this._scene) {\r\n this._scene.dispose();\r\n this._scene = null;\r\n }\r\n }\r\n deleteComponents() {\r\n this.emptyArFileCache();\r\n this.disposeInfoPointsManager();\r\n if (this._meshLocationsManager) {\r\n this._meshLocationsManager.dispose();\r\n this._meshLocationsManager = null;\r\n }\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.dispose();\r\n this._sceneDesignManager = null;\r\n }\r\n if (this._sceneHelper) {\r\n this._sceneHelper.dispose();\r\n this._sceneHelper = null;\r\n }\r\n if (this._environmentManager) {\r\n this._environmentManager.dispose();\r\n this._environmentManager = null;\r\n }\r\n if (this._glowManager) {\r\n this._glowManager.dispose();\r\n this._glowManager = null;\r\n }\r\n if (this._sceneActionsExecutor) {\r\n this._sceneActionsExecutor.dispose();\r\n this._sceneActionsExecutor = null;\r\n }\r\n this.disposePostProcesses();\r\n }\r\n disposeInfoPointsManager() {\r\n if (this._infoPointsManager) {\r\n this._infoPointsManager.dispose();\r\n this._infoPointsManager = null;\r\n }\r\n }\r\n disposePostProcesses() {\r\n while (this._postProcesses.length > 0) {\r\n var postProcess = this._postProcesses.pop();\r\n if (postProcess)\r\n postProcess.dispose();\r\n }\r\n }\r\n emptyArFileCache() {\r\n this._arFileUrls = {};\r\n }\r\n resetSceneAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield this.init3DEngineAsync();\r\n });\r\n }\r\n closeBroadcastChannel() {\r\n if (this._broadcastChannel) {\r\n this._broadcastChannel.close();\r\n this._broadcastChannel = null;\r\n }\r\n }\r\n openBroadcastChannel() {\r\n if (!this._broadcastChannel && window['BroadcastChannel']) {\r\n try {\r\n this._broadcastChannel = new BroadcastChannel(\"zakeke-broadcast-channel\");\r\n }\r\n catch (ex) {\r\n console.error('Failed opening broadcast channel');\r\n console.error(ex);\r\n }\r\n }\r\n }\r\n getOrCreateBroadcastChannel() {\r\n this.openBroadcastChannel();\r\n return this._broadcastChannel;\r\n }\r\n createEngine() {\r\n this.deleteScene();\r\n this.deleteEngine();\r\n // Se preserveDrawingBuffer = false (default) ci sono problemi nel recupero\r\n // dello screenshot. D'altra parte, preserveDrawingBuffer = true peggiora le \r\n // performance in quanto WebGL è costretto a copiare e non a swappare i buffer di disegno (drawing)\r\n // e di visualizzazione.\r\n //this.engine = new BABYLON.Engine(this.canvas, true, { preserveDrawingBuffer: false });\r\n this._engine = new BABYLON.Engine(this._canvas, true, { stencil: true, preserveDrawingBuffer: true });\r\n this._engine.enableOfflineSupport = false;\r\n Logger.info(\"WebGL version: \" + this._engine.webGLVersion);\r\n //BABYLON.SceneLoader.ForceFullSceneLoadingForIncremental = true;\r\n $(window).resize(this._bindedResize);\r\n $(window).on(\"orientationchange\", () => { setTimeout(() => this._bindedResize(), 100); });\r\n }\r\n createEmptySceneAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n //this._zkScene = null;\r\n this.deleteScene();\r\n if (this._engine) {\r\n this._scene = new BABYLON.Scene(this._engine);\r\n if (this._defaultBackgroundColor) {\r\n this._scene.clearColor.copyFrom(this._defaultBackgroundColor);\r\n }\r\n yield this.setupSceneAsync();\r\n }\r\n });\r\n }\r\n setupSceneAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._engine && this._scene) {\r\n this._sceneHelper = new _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__.SceneHelper(this._scene);\r\n const cameraPositionScale = this._zkScene ? this._zkScene.getCameraPositionScale() : undefined;\r\n const cameraLimitLowerRadius = this._zkScene ? this._zkScene.getCameraLimitLowerRadius() : undefined;\r\n const zoomEnabled = this._zkScene ? this._zkScene.getCameraZoomEnabled() : undefined;\r\n const useMinZoomPerc = this._zkScene ? this._zkScene.getCameraUseMinZoomPerc() : false;\r\n const minZoomPerc = this._zkScene ? this._zkScene.getCameraMinZoomPerc() : 1.0;\r\n const useMaxZoomPerc = this._zkScene ? this._zkScene.getCameraUseMaxZoomPerc() : false;\r\n const maxZoomPerc = this._zkScene ? this._zkScene.getCameraMaxZoomPerc() : 1.5;\r\n const lowerAlphaLimit = this._zkScene ? this._zkScene.getCameraLowerAlphaLimit() : null;\r\n const upperAlphaLimit = this._zkScene ? this._zkScene.getCameraUpperAlphaLimit() : null;\r\n const lowerBetaLimit = this._zkScene ? this._zkScene.getCameraLowerBetaLimit() : null;\r\n const upperBetaLimit = this._zkScene ? this._zkScene.getCameraUpperBetaLimit() : null;\r\n if (cameraPositionScale != undefined && cameraPositionScale != null)\r\n this._sceneHelper.setCameraPositionScale(cameraPositionScale, false);\r\n if (cameraLimitLowerRadius != undefined && cameraLimitLowerRadius != null)\r\n this._sceneHelper.setCameraLimitLowerRadius(cameraLimitLowerRadius, false);\r\n if (zoomEnabled != undefined && zoomEnabled != null)\r\n this._sceneHelper.setZoomEnabled(zoomEnabled);\r\n this._sceneHelper.setupCamera();\r\n this._camera = this._scene.activeCamera;\r\n if (this._camera) {\r\n if (useMinZoomPerc)\r\n this._sceneHelper.setMinZoomPerc(minZoomPerc);\r\n else\r\n this._sceneHelper.setMinZoomPerc(null);\r\n if (useMaxZoomPerc)\r\n this._sceneHelper.setMaxZoomPerc(maxZoomPerc);\r\n else\r\n this._sceneHelper.setMaxZoomPerc(null);\r\n this._sceneHelper.setCameraAlphaLimits(lowerAlphaLimit, upperAlphaLimit);\r\n this._sceneHelper.setCameraBetaLimits(lowerBetaLimit, upperBetaLimit);\r\n this._camera.onViewMatrixChangedObservable.add(() => {\r\n this.notifyCameraMovement();\r\n });\r\n this._camera.onRestoreStateObservable.add(() => {\r\n this.setupShaderMaterialsCameraPosition();\r\n this.setRenderingNeeded();\r\n });\r\n }\r\n this._sceneHelper.setupLights();\r\n this.createHighlightLayer();\r\n this.fixEnvironmentTexture();\r\n this.refreshEnvironment();\r\n this.setupGlowManager();\r\n if (this._zkScene) {\r\n this._meshLocationsManager = new _Components_CollapseExplode_MeshLocationsManager__WEBPACK_IMPORTED_MODULE_1__.MeshLocationsManager();\r\n this._meshLocationsManager.setModelAndScene(this._zkScene, this._scene);\r\n this._meshLocationsManager.addMeshAnimationCompletedListener(() => this.setRenderingNeeded());\r\n }\r\n yield this.setupSceneActionsExecutorAsync();\r\n this.setRenderingOnDelayLoaded();\r\n this.setupAntialiasPostProcesses();\r\n this._scene.onPointerDown = (evt, pickInfo) => this.onPointerDown(evt, pickInfo);\r\n this._scene.registerBeforeRender(() => {\r\n this.onBeforeRender();\r\n });\r\n this.refreshInfoPoints();\r\n // Stop the automatic rendering\r\n this._engine.stopRenderLoop();\r\n // Render the first frame.\r\n this.render();\r\n //start main render loop\r\n this._engine.runRenderLoop(() => { this.checkRendering(); });\r\n /*\r\n this.engine.runRenderLoop(function() {\r\n this._scene.render();\r\n });\r\n */\r\n }\r\n });\r\n }\r\n onBeforeRender() {\r\n if (this._scene && this._sceneHelper) {\r\n if (this._camera) {\r\n const pointLight = this._sceneHelper.getDefaultPointLight();\r\n if (pointLight)\r\n pointLight.position = this._camera.position;\r\n }\r\n this._scene.meshes.forEach(m => {\r\n if (m.mustDepthSortFacets && m.isFacetDataEnabled)\r\n m.updateFacetData();\r\n });\r\n }\r\n }\r\n render() {\r\n if (this._scene && !this._scene.isDisposed && !this._renderingPaused)\r\n this._scene.render();\r\n }\r\n // Disabilito il post-processing quando la camera è in movimento \r\n checkRendering() {\r\n if (this._scene) {\r\n if (this._autoRender ||\r\n this._renderingNeeded ||\r\n this._scene._activeAnimatables.length !== 0 ||\r\n (this._sceneHelper && this._sceneHelper.userIsMoving())) {\r\n if (this._autoRender ||\r\n this._scene._activeAnimatables.length !== 0 ||\r\n (this._sceneHelper && this._sceneHelper.userIsMoving() /*&& !this.sceneHelper.cameraLimitsReached()*/)) {\r\n this.disableAntialiasing();\r\n }\r\n else\r\n this.enableAntialiasing();\r\n this.render();\r\n if (this._renderingNeeded)\r\n this._renderingNeeded = false;\r\n }\r\n else {\r\n if (!this._scene.postProcessesEnabled && this.canEnableAntialiasing()) {\r\n this.enableAntialiasing();\r\n this.render();\r\n }\r\n }\r\n if (this._infoPointsManager) {\r\n const updated = this._infoPointsManager.updateInfoPointsVisibility();\r\n if (updated)\r\n this.render();\r\n }\r\n }\r\n }\r\n setupAntialiasPostProcesses() {\r\n if (this._antialias && this.getAntialiasEnabled()) {\r\n this.createAntialiasPostProcesses();\r\n }\r\n }\r\n createAntialiasPostProcesses() {\r\n if (this._camera && this._postProcesses.length === 0) {\r\n var is_firefox = /firefox/i.test(navigator.userAgent);\r\n if (!is_firefox)\r\n this._postProcesses.push(new BABYLON.PassPostProcess(\"scale_pass\", 4.0, this._camera, BABYLON.Texture.BILINEAR_SAMPLINGMODE));\r\n this._postProcesses.push(new BABYLON.PassPostProcess(\"scale_pass\", 2.0, this._camera, BABYLON.Texture.BILINEAR_SAMPLINGMODE));\r\n this._postProcesses.push(new BABYLON.PassPostProcess(\"scale_pass\", 1.0, this._camera, BABYLON.Texture.BILINEAR_SAMPLINGMODE));\r\n }\r\n }\r\n canEnableAntialiasing() {\r\n return (this._scene && this._antialias && this.getAntialiasEnabled());\r\n }\r\n enableAntialiasing() {\r\n if (this._scene && this.canEnableAntialiasing()) {\r\n this.createAntialiasPostProcesses();\r\n this._scene.postProcessesEnabled = true;\r\n }\r\n }\r\n disableAntialiasing(clearPostProcessed = false) {\r\n if (this._scene && this._antialias) {\r\n this._scene.postProcessesEnabled = false;\r\n }\r\n if (clearPostProcessed)\r\n this.disposePostProcesses();\r\n }\r\n setRenderingNeeded() {\r\n this._renderingNeeded = true;\r\n }\r\n setLongRenderingNeeded() {\r\n this.setRenderingNeeded();\r\n for (let t = 50; t <= 1000; t += 200) {\r\n setTimeout(() => this.setRenderingNeeded(), t);\r\n }\r\n }\r\n refreshRendering() {\r\n this.setLongRenderingNeeded();\r\n }\r\n pauseRendering() {\r\n this._renderingPaused = true;\r\n }\r\n resumeRendering() {\r\n this._renderingPaused = false;\r\n this.setRenderingNeeded();\r\n }\r\n setLoadingScreen(loadingScreen) {\r\n if (this._engine)\r\n this._engine.loadingScreen = loadingScreen;\r\n }\r\n setRenderingOnDelayLoaded() {\r\n if (this._scene) {\r\n var _this = this;\r\n this._scene.getGeometries().forEach(function (geometry) {\r\n var origCallback = geometry.onGeometryUpdated;\r\n geometry.onGeometryUpdated = function (geom, kind) {\r\n _this.setLongRenderingNeeded();\r\n if (origCallback)\r\n origCallback.apply(this, [geom, kind]);\r\n };\r\n });\r\n }\r\n }\r\n createHighlightLayer() {\r\n if (this._scene) {\r\n this._highlightLayer = new BABYLON.HighlightLayer(\"hl1\", this._scene);\r\n this.setupHighlightLayerIntensity();\r\n }\r\n }\r\n setupHighlightLayerIntensity() {\r\n if (this._highlightLayer) {\r\n this._highlightLayer.blurHorizontalSize = this._highlightSize;\r\n this._highlightLayer.blurVerticalSize = this._highlightSize;\r\n this._highlightBlurHorizontalSize = this._highlightSize;\r\n this._highlightBlurVerticalSize = this._highlightSize;\r\n }\r\n }\r\n createDOMElement() {\r\n if (this._canvas) {\r\n this._domElement = document.createElement('div');\r\n this._domElement.setAttribute(\"id\", \"zakeke-canvas-viewer3D-div-\" + Zakeke.makeID(5));\r\n this._domElement.appendChild(this._canvas);\r\n this._domElement.style.position = \"absolute\";\r\n this._domElement.style.width = \"100%\";\r\n this._domElement.style.height = \"100%\";\r\n this._domElement.style.left = \"0\";\r\n this._domElement.style.top = \"0\";\r\n }\r\n }\r\n removeDomElement() {\r\n if (this._domElement) {\r\n this.detach();\r\n this._domElement.remove();\r\n this._domElement = null;\r\n }\r\n }\r\n appendTo(element) {\r\n if (this._domElement) {\r\n if (element.firstChild)\r\n element.insertBefore(this._domElement, element.firstChild);\r\n else\r\n element.appendChild(this._domElement);\r\n element.appendChild(this._domElement);\r\n // Senza la doppia chiamata al resize si hanno dei problemi su mobile\r\n // In particolare gli eventi vengono catturati ad una frequenza molto bassa\r\n this.resize();\r\n this.resize();\r\n }\r\n }\r\n detach() {\r\n if (this._domElement && this._domElement.parentNode)\r\n this._domElement.parentNode.removeChild(this._domElement);\r\n }\r\n updateView(adjustCamera = true) {\r\n this.resize(adjustCamera);\r\n }\r\n resize(adjustCamera = true) {\r\n if (!this._canvas)\r\n return;\r\n this.disableAntialiasing(true);\r\n var parent = this._canvas.parentNode;\r\n if (!parent || !(parent instanceof HTMLElement))\r\n return;\r\n var parentWidth = parent.offsetWidth;\r\n var parentHeight = parent.offsetHeight;\r\n // Avoid adjusting camera when we trigger the resize and nothing as changed\r\n if (parentWidth != this._lastWidth || parentHeight != this._lastHeight) {\r\n this._canvas.style.width = \"100%\";\r\n this._canvas.style.height = \"100%\";\r\n if (this._engine) {\r\n this._engine.resize();\r\n if (adjustCamera) {\r\n if (this._scene)\r\n this.adjustCamera(false);\r\n this.setupShaderMaterialsCameraPosition();\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n //Logger.info(\"SceneViewer.resize - Canvas width: \" + this._canvas.width + \" - height: \" + this._canvas.height);\r\n }\r\n this._lastWidth = parentWidth;\r\n this._lastHeight = parentHeight;\r\n this.enableAntialiasing();\r\n }\r\n switchFullScreen(parent) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.switchFullScreen(parent);\r\n }\r\n setupGlowManager() {\r\n if (this._glowManager) {\r\n this._glowManager.dispose();\r\n this._glowManager = null;\r\n }\r\n if (this._zkScene && this._scene) {\r\n this._glowManager = new _Components_Glow_GlowManager__WEBPACK_IMPORTED_MODULE_5__.GlowManager(this._zkScene, this._scene);\r\n this._glowManager.update();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n setupSceneActionsExecutorAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._scene) {\r\n this._sceneActionsExecutor = new _Components_ActionExecutor_SceneActionExecutor__WEBPACK_IMPORTED_MODULE_0__.SceneActionsExecutor(this._zkScene, this._scene);\r\n this._sceneActionsExecutor.deviceType = this.deviceType;\r\n this._sceneActionsExecutor.useMaterialOffloading = !this._configPreview && this.getUseMaterialOffloading();\r\n this._sceneActionsExecutor.prefetchMeshes = this.getPrefetchMeshes();\r\n this._sceneActionsExecutor.prefetchMaterials = this.getPrefetchMaterials();\r\n this._sceneActionsExecutor.addMeshDesignRefreshRequiredListeners((evt) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.refreshMeshesDesignAsync(evt.meshes, evt.effect);\r\n }));\r\n this._sceneActionsExecutor.addBeginAssetsLoadingListener(() => this.fireBeginAssetsLoadingEvent());\r\n this._sceneActionsExecutor.addEndAssetsLoadingListener(() => this.fireEndAssetsLoadingEvent());\r\n }\r\n });\r\n }\r\n restoreCameraState() {\r\n if (this._sceneHelper) {\r\n this._sceneHelper.restoreCameraState();\r\n this._sceneHelper.setupShaderMaterialsCameraPosition();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n fixEnvironmentTexture() {\r\n if (this._scene && this._scene.environmentTexture && this._scene.environmentTexture[\"url\"] && typeof this._scene.environmentTexture[\"url\"] === \"string\") {\r\n const url = this._scene.environmentTexture[\"url\"];\r\n const count = (url.match(/http/g) || []).length;\r\n let newUrl = url;\r\n if (count > 1) {\r\n let idx = url.lastIndexOf(\"http\");\r\n if (idx >= 0) {\r\n newUrl = url.substring(idx);\r\n }\r\n }\r\n // Le informazioni sulla rotazione e sugli eventuali file della cubemap sono salvati\r\n // nei metadatadi della scena perché c'è un bug babylon in fase di serializzazione.\r\n // Li recupero ler settarli sull'environment con l'url sistemato\r\n let rotationY = undefined;\r\n let extensions = undefined;\r\n let files = undefined;\r\n if (this._scene && this._scene.metadata) {\r\n if (this._scene.metadata.environmentTextureRotationY !== undefined && typeof this._scene.metadata.environmentTextureRotationY === \"number\") {\r\n rotationY = this._scene.metadata.environmentTextureRotationY;\r\n }\r\n if (this._scene.metadata.environmentTextureExtensions)\r\n extensions = this._scene.metadata.environmentTextureExtensions;\r\n if (this._scene.metadata.environmentTextureFiles)\r\n files = this._scene.metadata.environmentTextureFiles;\r\n }\r\n this.setSceneEnvironmentTexture(newUrl, rotationY, extensions, files);\r\n }\r\n else {\r\n this.checkSceneEmptyEnvironmentTexture();\r\n }\r\n }\r\n checkSceneEmptyEnvironmentTexture() {\r\n // Controlla se la scena contiene materiali PBR ma ha la EnvironmentTexture vuota\r\n if (this._scene && this._sceneHelper && this._sceneHelper.containsPBRMaterials() && !this._scene.environmentTexture) {\r\n this.setDefaultSceneEnvironmentTexture();\r\n }\r\n }\r\n setDefaultSceneEnvironmentTexture() {\r\n const url = _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_13__.DefaultAssetUrls.Environment.EnvironmentTextureCDNUrl;\r\n this.setSceneEnvironmentTexture(url);\r\n }\r\n setSceneEnvironmentTexture(url, rotationY, extensions, files, onLoad) {\r\n if (this._scene && this._sceneHelper) {\r\n if (this._scene.environmentTexture &&\r\n this._sceneHelper.isTextureWithUrl(this._scene.environmentTexture) &&\r\n this._scene.environmentTexture.url &&\r\n this._scene.environmentTexture.url != url) {\r\n this._scene.environmentTexture.dispose();\r\n this._scene.environmentTexture = null;\r\n }\r\n const onImagesLoad = () => {\r\n if (onLoad)\r\n onLoad();\r\n this.setLongRenderingNeeded();\r\n };\r\n if (!this._scene.metadata)\r\n this._scene.metadata = {};\r\n delete this._scene.metadata.environmentTextureType;\r\n delete this._scene.metadata.environmentTextureSize;\r\n delete this._scene.metadata.environmentTextureExtensions;\r\n delete this._scene.metadata.environmentTextureFiles;\r\n //const environmentTexture = new BABYLON.CubeTexture(url, this._scene, undefined, undefined, undefined, undefined, () => { this.setLongRenderingNeeded() });\r\n let environmentTexture = null;\r\n if (url.endsWith(\".dds\"))\r\n environmentTexture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene);\r\n else if (url.endsWith(\".hdr\")) {\r\n environmentTexture = new BABYLON.HDRCubeTexture(url, this._scene, 128, undefined, undefined, undefined, undefined, onImagesLoad);\r\n this._scene.metadata.environmentTextureType = \"BABYLON.HDRCubeTexture\";\r\n this._scene.metadata.environmentTextureSize = 128;\r\n }\r\n else if (url.endsWith(\".env\")) {\r\n //texture = new BABYLON.CubeTexture(url, this._scene);\r\n //texture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene, undefined, undefined);\r\n environmentTexture = new BABYLON.CubeTexture(url, this._scene, null, false, null, onImagesLoad, null, undefined, true, undefined, true);\r\n //texture = new BABYLON.CubeTexture(url, this._scene, undefined, undefined, undefined, undefined, onImagesLoad);\r\n }\r\n else if (url.endsWith(\".basis\")) {\r\n environmentTexture = BABYLON.CubeTexture.CreateFromPrefilteredData(url, this._scene);\r\n }\r\n else if (extensions && extensions.length === 6 && files && files.length === 6) {\r\n environmentTexture = new BABYLON.CubeTexture(url, this._scene, extensions, false, files, onImagesLoad);\r\n this._scene.metadata.environmentTextureExtensions = extensions;\r\n this._scene.metadata.environmentTextureFiles = files;\r\n }\r\n if (environmentTexture) {\r\n _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__.SceneHelper.whenTextureIsReadyAsync(environmentTexture).then(() => {\r\n if (environmentTexture && this._scene) {\r\n if (rotationY != undefined)\r\n environmentTexture.rotationY = rotationY;\r\n else {\r\n if (this._scene.metadata && this._scene.metadata.environmentTextureRotationY != undefined)\r\n delete this._scene.metadata.environmentTextureRotationY;\r\n }\r\n this._scene.environmentTexture = environmentTexture;\r\n // TEST Default SkyBox\r\n //this._scene.createDefaultSkybox(this._scene.environmentTexture, true, (this._scene.activeCamera!.maxZ - this._scene.activeCamera!.minZ) / 2, 0.3, false);\r\n //this._scene.createDefaultSkybox(this._scene.environmentTexture, true, (this._scene.activeCamera!.maxZ - this._scene.activeCamera!.minZ) / 2, 0.1, false);\r\n this.setRenderingNeeded();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n loadSceneFromModelAsync(zkModel, zkScene, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (zkModel && zkModel instanceof MPlaza.Model) {\r\n this._zkModel = zkModel;\r\n }\r\n if (zkScene && zkScene instanceof Zakeke.Scene) {\r\n this._zkScene = zkScene;\r\n this.checkSceneShaderMaterials(zkScene);\r\n const rootUrl = zkScene.get(\"rootUrl\");\r\n const sceneFileName = zkScene.get(\"sceneFileName\");\r\n if (rootUrl && sceneFileName)\r\n yield this.loadSceneFromRemoteFilesAsync(rootUrl, sceneFileName, onProgress);\r\n }\r\n });\r\n }\r\n loadSceneFromModelDataAsync(zkModel, zkScene, sceneJson, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (zkModel && zkModel instanceof MPlaza.Model) {\r\n this._zkModel = zkModel;\r\n }\r\n if (zkScene && zkScene instanceof Zakeke.Scene) {\r\n this._zkScene = zkScene;\r\n this.checkSceneShaderMaterials(zkScene);\r\n var sceneFileName = \"data:\" + sceneJson;\r\n const rootUrl = zkScene.get(\"rootUrl\");\r\n if (rootUrl)\r\n yield this.loadSceneFromRemoteFilesAsync(rootUrl, sceneFileName, onProgress);\r\n }\r\n });\r\n }\r\n preSceneFileLoading() {\r\n }\r\n postSceneFileLoading() {\r\n }\r\n // Carica la scena Babylon JS tramite rootUrl e sceneFilename\r\n // La scena verrà caricata direttamente da Babylon JS. Le texture verranno lette risolvendo\r\n // il path in base a rootUrl e al nome della texture\r\n // textureUrl = rootUrl + texture.name\r\n loadSceneFromRemoteFilesAsync(rootUrl, sceneFileName, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._engine)\r\n throw new Error(\"Unable to load scene when the 3D engine is null\");\r\n try {\r\n this.fireBeginSceneLoadingEvent();\r\n this.preSceneFileLoading();\r\n this.pauseRendering();\r\n // Per problema useDelayedTextureLoading\r\n this._engine[\"sceneFileRootUrl\"] = rootUrl;\r\n let newScene = yield BABYLON.SceneLoader.LoadAsync(rootUrl, sceneFileName, this._engine, onProgress);\r\n if (this._destroyed) {\r\n Logger.info(\"Loading scene engine destroyed\");\r\n newScene.dispose();\r\n return;\r\n }\r\n yield new Promise(resolve => newScene.executeWhenReady(() => resolve()));\r\n if (this._destroyed) {\r\n Logger.info(\"Loading scene engine destroyed\");\r\n newScene.dispose();\r\n throw new Error(\"Engine destroyed while loading scene\");\r\n }\r\n const requireDelayLoading = _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__.SceneHelper.visibleMeshesRequireDelayedLoading(newScene);\r\n if (requireDelayLoading)\r\n this.fireBeginAssetsLoadingEvent();\r\n yield _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__.SceneHelper.whenAllVisibleMeshesAreReadyAsync(newScene);\r\n if (requireDelayLoading)\r\n this.fireEndAssetsLoadingEvent();\r\n this.deleteScene();\r\n this._scene = newScene;\r\n // useDelayedTextureLoading\r\n for (let i = 0; i < this._scene.textures.length; i++) {\r\n const texture = this._scene.textures[i];\r\n if (texture instanceof BABYLON.Texture) {\r\n if (texture.onLoadObservable) {\r\n texture.onLoadObservable.add((txt) => {\r\n this.setLongRenderingNeeded();\r\n });\r\n }\r\n }\r\n }\r\n yield this.setupSceneAsync();\r\n if (this._sceneHelper) {\r\n // Carico i materiali delayed\r\n if (this._configPreview && this._scene.metadata && this._scene.metadata.delayedMaterials) {\r\n yield this._sceneHelper.loadAllDelayedMaterialsAsync(rootUrl);\r\n }\r\n // Carico gli eventuali materiali offloaded\r\n if (this._configPreview && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n this._sceneHelper.loadAllOffloadedMaterials(rootUrl);\r\n }\r\n // Ripristino i materiali originali per le mesh nascoste\r\n if (this._configPreview && this._scene.metadata && this._scene.metadata.originalMeshMaterials) {\r\n this._sceneHelper.unsetAllDummyMaterials();\r\n }\r\n this._sceneHelper.setupShaderMaterialsCameraPosition();\r\n // Trying to reload texture with loading errors\r\n try {\r\n yield this.reloadAllLoadingErrorTexturesAsync();\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n if (this._environmentManager) {\r\n const skyboxTexture = this._environmentManager.getSkyboxTexture();\r\n if (skyboxTexture) {\r\n yield _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__.SceneHelper.whenTextureIsReadyAsync(skyboxTexture);\r\n }\r\n }\r\n }\r\n finally {\r\n this.resumeRendering();\r\n this.postSceneFileLoading();\r\n this.fireEndSceneLoadingEvent();\r\n }\r\n });\r\n }\r\n getSkyboxTexture() {\r\n var _a;\r\n return (_a = this._environmentManager) === null || _a === void 0 ? void 0 : _a.getSkyboxTexture();\r\n }\r\n // Carica la scena Babylon JS tramite rootUrl e sceneFilename\r\n // La scena verrà caricata direttamente da Babylon JS. Le texture verranno lette risolvendo\r\n // il path in base a rootUrl e al nome della texture\r\n // textureUrl = rootUrl + texture.name\r\n loadSceneFromRemoteFilesAsync_OLD(rootUrl, sceneFileName, onProgress) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n if (!this._engine)\r\n reject();\r\n this.preSceneFileLoading();\r\n // Per problema useDelayedTextureLoading\r\n this._engine[\"sceneFileRootUrl\"] = rootUrl;\r\n let newScene = yield BABYLON.SceneLoader.LoadAsync(rootUrl, sceneFileName, this._engine, onProgress);\r\n if (this._destroyed) {\r\n Logger.info(\"Loading scene engine destroyed\");\r\n newScene.dispose();\r\n return;\r\n }\r\n newScene.executeWhenReady(() => __awaiter(this, void 0, void 0, function* () {\r\n if (this._destroyed) {\r\n Logger.info(\"Loading scene engine destroyed\");\r\n newScene.dispose();\r\n reject();\r\n }\r\n const requireDelayLoading = _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__.SceneHelper.visibleMeshesRequireDelayedLoading(newScene);\r\n if (requireDelayLoading)\r\n this.fireBeginAssetsLoadingEvent();\r\n yield _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_8__.SceneHelper.whenAllVisibleMeshesAreReadyAsync(newScene);\r\n if (requireDelayLoading)\r\n this.fireEndAssetsLoadingEvent();\r\n this.deleteScene();\r\n this._scene = newScene;\r\n // useDelayedTextureLoading\r\n for (let i = 0; i < this._scene.textures.length; i++) {\r\n const texture = this._scene.textures[i];\r\n if (texture instanceof BABYLON.Texture) {\r\n if (texture.onLoadObservable) {\r\n texture.onLoadObservable.add((txt) => {\r\n this.setLongRenderingNeeded();\r\n });\r\n }\r\n }\r\n }\r\n yield this.setupSceneAsync();\r\n if (this._sceneHelper) {\r\n // Carico i materiali delayed\r\n if (this._configPreview && this._scene.metadata && this._scene.metadata.delayedMaterials) {\r\n yield this._sceneHelper.loadAllDelayedMaterialsAsync(rootUrl);\r\n }\r\n // Carico gli eventuali materiali offloaded\r\n if (this._configPreview && this._scene.metadata && this._scene.metadata.offloadedMaterials) {\r\n this._sceneHelper.loadAllOffloadedMaterials(rootUrl);\r\n }\r\n // Ripristino i materiali originali per le mesh nascoste\r\n if (this._configPreview && this._scene.metadata && this._scene.metadata.originalMeshMaterials) {\r\n this._sceneHelper.unsetAllDummyMaterials();\r\n }\r\n this._sceneHelper.setupShaderMaterialsCameraPosition();\r\n }\r\n this.postSceneFileLoading();\r\n resolve();\r\n }));\r\n }));\r\n });\r\n }\r\n checkSceneShaderMaterials(zkScene) {\r\n if (zkScene instanceof Zakeke.Scene && zkScene.get(\"shaderMaterials\")) {\r\n for (let i = 0; i < zkScene.get(\"shaderMaterials\").length; i++) {\r\n const shaderMaterial = zkScene.get(\"shaderMaterials\").at(i);\r\n const name = shaderMaterial.get(\"name\");\r\n const vertex = shaderMaterial.get(\"vertex\");\r\n const fragment = shaderMaterial.get(\"fragment\");\r\n if (name && vertex && fragment) {\r\n const shaderInfo = { name, vertex, fragment };\r\n this.setupShadersStore(shaderInfo);\r\n }\r\n }\r\n }\r\n }\r\n checkShaderMaterial(zkMaterial) {\r\n if (zkMaterial && zkMaterial instanceof Zakeke.Material) {\r\n let shaders = zkMaterial.get(\"shaders\");\r\n if (shaders) {\r\n const name = zkMaterial.get(\"shaders\").get(\"name\");\r\n const vertex = zkMaterial.get(\"shaders\").get(\"vertex\");\r\n const fragment = zkMaterial.get(\"shaders\").get(\"fragment\");\r\n if (name && vertex && fragment) {\r\n const shaderInfo = { name, vertex, fragment };\r\n this.setupShadersStore(shaderInfo);\r\n }\r\n }\r\n }\r\n }\r\n setupShadersStore(shaderInfo) {\r\n if (shaderInfo && shaderInfo.hasOwnProperty(\"name\") && shaderInfo.hasOwnProperty(\"vertex\") && shaderInfo.hasOwnProperty(\"fragment\")) {\r\n var vertexPath = shaderInfo.name + \"VertexShader\";\r\n var fragmentPath = shaderInfo.name + \"FragmentShader\";\r\n BABYLON.Effect.ShadersStore[vertexPath] = shaderInfo.vertex;\r\n BABYLON.Effect.ShadersStore[fragmentPath] = shaderInfo.fragment;\r\n }\r\n }\r\n isRealMesh(mesh) {\r\n if (this._sceneHelper)\r\n return this._sceneHelper.isRealMesh(mesh);\r\n return false;\r\n }\r\n countSceneMeshes() {\r\n return this._sceneHelper ? this._sceneHelper.countSceneMeshes() : 0;\r\n }\r\n getVisibleMeshes() {\r\n return this._sceneHelper ? this._sceneHelper.getVisibleMeshes() : [];\r\n }\r\n getSceneBoundingInfo() {\r\n if (this._sceneHelper)\r\n return this._sceneHelper.getSceneBoundingInfo();\r\n return null;\r\n }\r\n selectMesh(id) {\r\n this.selectUnselectMesh(id, true);\r\n }\r\n unselectMesh(id) {\r\n this.selectUnselectMesh(id, false);\r\n }\r\n unselectAllMeshes() {\r\n if (this._scene) {\r\n this._scene.meshes.forEach((mesh) => this.unselectSingleMesh(mesh));\r\n this.fireFocusAttributesEvent({ groups: [] });\r\n }\r\n }\r\n selectUnselectMesh(id, select) {\r\n if (this._scene) {\r\n this._scene.meshes.forEach(mesh => this.unselectSingleMesh(mesh));\r\n if (select) {\r\n let selectWithChildren = (parent) => {\r\n this.selectSingleMesh(parent);\r\n const children = parent.getChildMeshes();\r\n if (children) {\r\n children.forEach(child => selectWithChildren(child));\r\n }\r\n };\r\n const mesh = this._scene.getMeshByID(id);\r\n if (mesh) {\r\n selectWithChildren(mesh);\r\n const group = this.getGroupForMesh(mesh);\r\n if (group) {\r\n this.highlightGroupForMesh(mesh);\r\n this.fireGroupPickedEvent({ groupID: group.get(\"groupID\") });\r\n }\r\n var groups = this.getVisibleHiddenAttributesForMesh(mesh);\r\n this.fireFocusAttributesEvent({ groups: groups });\r\n if (groups.length > 0)\r\n this.highlightMeshes([mesh]);\r\n }\r\n }\r\n }\r\n }\r\n selectSingleMesh(mesh) {\r\n this.setRenderingNeeded();\r\n mesh[\"selected\"] = true;\r\n }\r\n unselectSingleMesh(mesh) {\r\n this.setRenderingNeeded();\r\n mesh[\"selected\"] = false;\r\n }\r\n selectMeshesWithMaterial(materialID) {\r\n this.selectUnselectMeshesWithMaterial(materialID, true);\r\n }\r\n unselectMeshesWithMaterial(materialID) {\r\n this.selectUnselectMeshesWithMaterial(materialID, false);\r\n }\r\n selectUnselectMeshesWithMaterial(materialID, select) {\r\n if (!this._scene)\r\n return;\r\n this._scene.meshes.forEach(mesh => this.unselectSingleMesh(mesh));\r\n if (select) {\r\n let checkMeshWithChildren = (parent) => {\r\n if (parent.material && parent.material.id === materialID)\r\n this.selectSingleMesh(parent);\r\n const children = parent.getChildMeshes();\r\n if (children) {\r\n children.forEach(child => {\r\n checkMeshWithChildren(child);\r\n });\r\n }\r\n };\r\n this._scene.meshes.forEach(mesh => {\r\n checkMeshWithChildren(mesh);\r\n });\r\n }\r\n }\r\n onPointerDown(evt, pickInfo) {\r\n if (pickInfo.hit && pickInfo.pickedMesh) {\r\n this.selectMesh(pickInfo.pickedMesh.id);\r\n }\r\n else {\r\n this.unselectAllMeshes();\r\n }\r\n }\r\n getSelectedRootMesh() {\r\n if (this._scene) {\r\n for (let i = 0; i < this._scene.meshes.length; i++) {\r\n const mesh = this._scene.meshes[i];\r\n if (mesh[\"selected\"]) {\r\n const parent = mesh.parent;\r\n if (!parent || !parent[\"selected\"])\r\n return mesh;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n getMeshByID(id) {\r\n if (this._scene)\r\n return this._scene.getMeshByID(id);\r\n return null;\r\n }\r\n getMeshByName(id) {\r\n if (this._scene)\r\n return this._scene.getMeshByName(id);\r\n return null;\r\n }\r\n getMaterialByID(id) {\r\n if (this._scene)\r\n return this._scene.getMaterialByID(id);\r\n return null;\r\n }\r\n setCameraLocation(locationID, onlyAngleOfView = false, animate = true) {\r\n if (this._zkScene && this._sceneHelper) {\r\n const zkCameraLocation = this._zkScene.getCameraLocation(locationID);\r\n if (zkCameraLocation) {\r\n const position = new BABYLON.Vector3(zkCameraLocation.get(\"px\"), zkCameraLocation.get(\"py\"), zkCameraLocation.get(\"pz\"));\r\n const target = new BABYLON.Vector3(zkCameraLocation.get(\"tx\"), zkCameraLocation.get(\"ty\"), zkCameraLocation.get(\"tz\"));\r\n if (animate) {\r\n // Animation\r\n if (!onlyAngleOfView) {\r\n this._sceneHelper.animateCamera(target, position, 0.5);\r\n }\r\n else if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const angleOfView = this._sceneHelper.computeCameraAngleOfView(target, position);\r\n this._sceneHelper.animateCameraToFinalParamters(angleOfView.alpha, angleOfView.beta, this._camera.radius, this._camera.target, 0.5);\r\n }\r\n }\r\n else {\r\n // No animation\r\n if (!onlyAngleOfView) {\r\n this._sceneHelper.moveCamera(target, position);\r\n }\r\n else if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n const angleOfView = this._sceneHelper.computeCameraAngleOfView(target, position);\r\n this._sceneHelper.moveCameraToFinalParameters(angleOfView.alpha, angleOfView.beta, this._camera.radius, this._camera.target);\r\n }\r\n }\r\n }\r\n }\r\n this.setRenderingNeeded();\r\n }\r\n adjustCamera(animate) {\r\n if (this._sceneHelper) {\r\n if (animate != undefined && animate != null && typeof (animate) === \"boolean\")\r\n this._sceneHelper.adjustCamera(undefined, undefined, undefined, animate);\r\n else\r\n this._sceneHelper.adjustCamera();\r\n this.setupShaderMaterialsCameraPosition();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n zoomIn() {\r\n if (this._sceneHelper)\r\n this._sceneHelper.zoomIn();\r\n }\r\n zoomOut() {\r\n if (this._sceneHelper)\r\n this._sceneHelper.zoomOut();\r\n }\r\n zoom(perc) {\r\n if (this._sceneHelper)\r\n this._sceneHelper.zoom(perc);\r\n }\r\n setCameraPivot(meshID) {\r\n if (this._scene && this._sceneHelper) {\r\n const mesh = meshID ? this._scene.getMeshByID(meshID) : null;\r\n this._sceneHelper.setCameraPivot(mesh);\r\n }\r\n }\r\n setCameraZoomEnabled(enabled) {\r\n if (this._scene && this._sceneHelper) {\r\n this._sceneHelper.setZoomEnabled(enabled);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n executeScriptAsync(script) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneActionsExecutor) {\r\n yield this._sceneActionsExecutor.executeScriptAsync(script);\r\n this.notifyScriptExecution(script);\r\n this.setupShaderMaterialsCameraPosition();\r\n this.refreshInfoPoints();\r\n this.setLongRenderingNeeded();\r\n }\r\n });\r\n }\r\n executeActionsAsync(attributeID, selectedValue, actions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneActionsExecutor) {\r\n yield this._sceneActionsExecutor.executeActionsAsync(attributeID, selectedValue, actions);\r\n this.notifyActionExecution(attributeID, selectedValue, actions);\r\n this.setupShaderMaterialsCameraPosition();\r\n this.refreshInfoPoints();\r\n this.setLongRenderingNeeded();\r\n }\r\n });\r\n }\r\n prefetchMeshesForUnselectedOptionsAsync(actions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneActionsExecutor)\r\n yield this._sceneActionsExecutor.prefetchMeshesForUnselectedOptionsAsync(actions);\r\n });\r\n }\r\n prefetchDataForUnselectedOptionsAsync(actions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneActionsExecutor)\r\n yield this._sceneActionsExecutor.prefetchDataForUnselectedOptionsAsync(actions);\r\n });\r\n }\r\n refreshEnvironment() {\r\n if (this._zkScene && this._scene) {\r\n if (!this._environmentManager || this._environmentManager.scene != this._scene || this._environmentManager.isHologram != this._isHologram)\r\n this._environmentManager = new _Components_Environment_EnvironmentManager__WEBPACK_IMPORTED_MODULE_4__.EnvironmentManager(this._zkScene, this._scene, this._isHologram);\r\n this._environmentManager.update();\r\n this.setLongRenderingNeeded();\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera)\r\n this._autoRender = this._camera.useAutoRotationBehavior;\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n highlightMeshes(meshes) {\r\n if (!meshes || Object.prototype.toString.call(meshes) !== '[object Array]' || this._highlightSize == 0)\r\n return;\r\n const startHorSize = this._highlightBlurHorizontalSize;\r\n const startVerSize = this._highlightBlurVerticalSize;\r\n const addWithChildren = (parent) => {\r\n if (parent.isVisible && this._highlightLayer)\r\n this._highlightLayer.addMesh(parent, BABYLON.Color3.FromHexString(this._highlightColor));\r\n const children = parent.getChildMeshes();\r\n children.forEach(child => {\r\n if (child instanceof BABYLON.Mesh)\r\n addWithChildren(child);\r\n });\r\n };\r\n const removeWithChildren = (parent) => {\r\n if (this._highlightLayer)\r\n this._highlightLayer.removeMesh(parent);\r\n const children = parent.getChildMeshes();\r\n children.forEach((child) => {\r\n if (child instanceof BABYLON.Mesh)\r\n removeWithChildren(child);\r\n });\r\n };\r\n // Ferma l'eventuale highlighting in corso e ne avvia un altro\r\n const stop = () => {\r\n if (this._highlightAnimationID) {\r\n // Ferma l'animazione corrente\r\n clearInterval(this._highlightAnimationID);\r\n this._highlightAnimationID = null;\r\n }\r\n // riporta le mesh evidenziate allo stato normale\r\n if (this._highlightCurrentMeshes)\r\n this._highlightCurrentMeshes.forEach((mesh) => {\r\n if (mesh instanceof BABYLON.Mesh)\r\n removeWithChildren(mesh);\r\n });\r\n // Riporta i valori normali di highlighting\r\n if (this._highlightLayer) {\r\n this._highlightLayer.blurHorizontalSize = startHorSize;\r\n this._highlightLayer.blurVerticalSize = startVerSize;\r\n }\r\n // Eventualmente lancia l'highlight in attesa\r\n if (this._highlightNextMeshes) {\r\n const nextMeshes = this._highlightNextMeshes;\r\n this._highlightNextMeshes = [];\r\n this.highlightMeshes(nextMeshes);\r\n }\r\n };\r\n if (this._highlightAnimationID) {\r\n // Animazione in corso. metto la mesh in coda e stoppo l'animazione\r\n this._highlightNextMeshes = meshes;\r\n stop();\r\n return;\r\n }\r\n if (!this._highlightLayer)\r\n this.createHighlightLayer();\r\n if (this._highlightLayer) {\r\n this._highlightCurrentMeshes = meshes;\r\n meshes.forEach((mesh) => {\r\n if (mesh instanceof BABYLON.Mesh)\r\n addWithChildren(mesh);\r\n });\r\n const duration = 800.0; // durata totale dell'animazione in millisecondi\r\n const step = 20.0; // tempo tra un frame e l'altro in millisecondi\r\n const delta = step / duration; // percentuale di decremento del blur\r\n let horSize = startHorSize;\r\n let verSize = startVerSize;\r\n this._highlightAnimationID = window.setInterval(() => {\r\n if (this._highlightLayer) {\r\n horSize -= startHorSize * delta;\r\n verSize -= startVerSize * delta;\r\n horSize = Math.max(0, horSize);\r\n verSize = Math.max(0, verSize);\r\n if (horSize >= 0)\r\n this._highlightLayer.blurHorizontalSize = horSize;\r\n if (verSize >= 0)\r\n this._highlightLayer.blurVerticalSize = verSize;\r\n if (horSize == 0 || verSize == 0)\r\n stop();\r\n this.setRenderingNeeded();\r\n }\r\n }, step);\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n highlightGroupForMesh(mesh) {\r\n const zkGroup = this.getGroupForMesh(mesh);\r\n this.highlightGroup(zkGroup);\r\n }\r\n highlightGroupByID(groupID) {\r\n if (this._zkModel) {\r\n const group = this._zkModel.get(\"attributeGroups\").findWhere({ groupID });\r\n group ? this.highlightGroup(group) : this.highlightGroup(null);\r\n }\r\n }\r\n highlightGroup(zkGroup) {\r\n if (this._zkScene && this._scene && zkGroup) {\r\n const selector = zkGroup.get(\"meshSelector\");\r\n if (selector) {\r\n var meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, selector, MPlaza.SceneElementType.Mesh);\r\n this.highlightMeshes(meshes);\r\n }\r\n }\r\n }\r\n getGroupForMesh(mesh) {\r\n if (this._zkModel && this._zkScene && this._scene && mesh && this._sceneHelper) {\r\n const groups = this._zkModel.get(\"attributeGroups\");\r\n for (let i = 0; i < groups.length; i++) {\r\n const group = groups.at(i);\r\n const selector = group.get(\"meshSelector\");\r\n if (selector) {\r\n const meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, selector, MPlaza.SceneElementType.Mesh);\r\n for (let k = 0; k < meshes.length; k++) {\r\n let groupMesh = meshes[k];\r\n if (mesh.id == groupMesh.id || this._sceneHelper.meshHasParent(mesh.id, groupMesh.id)) {\r\n return group;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n highlightAttributeByID(attributeID) {\r\n if (this._zkModel) {\r\n const attribute = this._zkModel.get(\"attributes\").findWhere({ attributeID });\r\n attribute ? this.highlightAttribute(attribute) : this.highlightAttribute(null);\r\n }\r\n }\r\n highlightAttribute(zkAttribute) {\r\n if (this._zkScene && this._scene && zkAttribute) {\r\n const selector = zkAttribute.get(\"meshSelector\");\r\n if (selector) {\r\n var meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, selector, MPlaza.SceneElementType.Mesh);\r\n this.highlightMeshes(meshes);\r\n }\r\n }\r\n }\r\n getVisibleHiddenAttributesForMesh(mesh) {\r\n const groups = [];\r\n const getOrCreateGroup = (groupId) => {\r\n let group = groups.find(x => x.groupId == groupId);\r\n if (!group) {\r\n group = { groupId, visibleAttributes: [], hiddenAttributes: [] };\r\n groups.push(group);\r\n }\r\n return group;\r\n };\r\n if (this._zkModel && this._zkScene && this._scene && mesh) {\r\n const attributes = this._zkModel.get(\"attributes\");\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attribute = attributes.at(i);\r\n const attributeID = attribute.get(\"attributeID\");\r\n const selector = attribute.get(\"meshSelector\");\r\n if (selector) {\r\n const group = getOrCreateGroup(attribute.get(\"groupID\"));\r\n var meshes = this._elementSelector.getMeshElements(this._zkScene, this._scene, null, selector, MPlaza.SceneElementType.Mesh);\r\n // If this attribute selector contains this mesh, then is in visible attributes, else is hidden.\r\n const found = meshes.find(attributeMesh => {\r\n if (this._sceneHelper)\r\n return mesh.id == attributeMesh.id || this._sceneHelper.meshHasParent(mesh.id, attributeMesh.id);\r\n else\r\n return false;\r\n });\r\n if (found)\r\n group.visibleAttributes.push(attributeID);\r\n else\r\n group.hiddenAttributes.push(attributeID);\r\n }\r\n }\r\n }\r\n // If all attributes are hidden for a group and there are no visible attributes than we clicked on a mesh\r\n // that is not attached to any attribute. Then filter them because that\r\n // mean that nothing must be done\r\n return groups.filter(x => x.visibleAttributes.length > 0);\r\n }\r\n // -------------------------------------------------------------\r\n // Events \r\n // -------------------------------------------------------------\r\n fireGroupPickedEvent(e) {\r\n for (let i = 0; i < this._groupPickedListeners.length; i++)\r\n this._groupPickedListeners[i](e);\r\n }\r\n addGroupPickedListener(listenerFunction) {\r\n this._groupPickedListeners.push(listenerFunction);\r\n }\r\n fireFocusAttributesEvent(e) {\r\n for (let i = 0; i < this._focusAttributesListeners.length; i++)\r\n this._focusAttributesListeners[i](e);\r\n }\r\n addFocusAttributesListener(listenerFunction) {\r\n this._focusAttributesListeners.push(listenerFunction);\r\n }\r\n addNotifyMessageListener(listener) {\r\n this._designNotifyMessageListeners.push(listener);\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.addNotifyMessageListener(listener);\r\n }\r\n addRemoveMessageListener(listener) {\r\n this._designRemoveMessageListeners.push(listener);\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.addRemoveMessageListener(listener);\r\n }\r\n setEventMessages(eventMessages) {\r\n this._designEventMessages = eventMessages;\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.setEventMessages(eventMessages);\r\n }\r\n addInfoPointPickedListener(listenerFunction) {\r\n this._infoPointPickedListeners.push(listenerFunction);\r\n if (this._infoPointsManager)\r\n this._infoPointsManager.addInfoPointPickedListener(listenerFunction);\r\n }\r\n addInfoPointContentShownListener(listenerFunction) {\r\n this._infoPointContentShownListeners.push(listenerFunction);\r\n if (this._infoPointsManager)\r\n this._infoPointsManager.addInfoPointContentShownListener(listenerFunction);\r\n }\r\n addInfoPointContentHiddenListener(listenerFunction) {\r\n this._infoPointContentHiddenListeners.push(listenerFunction);\r\n if (this._infoPointsManager)\r\n this._infoPointsManager.addInfoPointContentHiddenListener(listenerFunction);\r\n }\r\n // begin assets loading\r\n addBeginAssetsLoadingListener(callback) {\r\n this._beginAssetsLoadingListeners.push(callback);\r\n }\r\n fireBeginAssetsLoadingEvent() {\r\n Logger.info(\"Begin Assets Loading\");\r\n for (let i = 0; i < this._beginAssetsLoadingListeners.length; ++i) {\r\n this._beginAssetsLoadingListeners[i]();\r\n }\r\n }\r\n addEndAssetsLoadingListener(callback) {\r\n this._endAssetsLoadingListeners.push(callback);\r\n }\r\n fireEndAssetsLoadingEvent() {\r\n Logger.info(\"End Assets Loading\");\r\n for (let i = 0; i < this._endAssetsLoadingListeners.length; ++i) {\r\n this._endAssetsLoadingListeners[i]();\r\n }\r\n }\r\n addBeginSceneLoadingListener(callback) {\r\n this._beginAssetsLoadingListeners.push(callback);\r\n }\r\n fireBeginSceneLoadingEvent() {\r\n Logger.info(\"Begin Scene Loading\");\r\n for (let i = 0; i < this._beginAssetsLoadingListeners.length; ++i) {\r\n this._beginAssetsLoadingListeners[i]();\r\n }\r\n }\r\n addEndSceneLoadingListener(callback) {\r\n this._endAssetsLoadingListeners.push(callback);\r\n }\r\n fireEndSceneLoadingEvent() {\r\n Logger.info(\"End Scene Loading\");\r\n for (let i = 0; i < this._endAssetsLoadingListeners.length; ++i) {\r\n this._endAssetsLoadingListeners[i]();\r\n }\r\n }\r\n // --------------------------------------------------------------\r\n getSceneScreenshotAsync(width, height) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneHelper) {\r\n this.setRenderingNeeded();\r\n return yield this._sceneHelper.takeScreenshotAsync(width, height);\r\n }\r\n return null;\r\n });\r\n }\r\n getSceneContentScreenshotAsync(width, height, padding = 0, zkDesign, legacyScreenshot, camera) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._sceneHelper || !this.scene || !this.zkModel || !this.zkScene)\r\n return null;\r\n this.preSceneContentScreenshot();\r\n if (this._environmentManager) {\r\n this._environmentManager.dispose();\r\n this._environmentManager = null;\r\n }\r\n this.setRenderingNeeded();\r\n const canvasMeshesOriginalMeshesIds = this.scene.meshes.filter(x => { var _a; return (_a = x.metadata) === null || _a === void 0 ? void 0 : _a.iscanvasMesh; }).map(x => x.metadata.originalMeshID);\r\n let dataUrl = '';\r\n if (legacyScreenshot) {\r\n dataUrl = yield this._sceneHelper.takeContentScreenshotAsync(width, height);\r\n }\r\n else {\r\n const result = yield _Components_ScenePreview_ScenePreview__WEBPACK_IMPORTED_MODULE_9__.ScenesPreview.getPreviewsAsync(this.scene, this._zkScene.get(\"rootUrl\"), {\r\n width: 1024,\r\n height: 1024,\r\n camera: camera ? {\r\n position: new BABYLON.Vector3(camera.get(\"px\"), camera.get(\"py\"), camera.get(\"pz\")),\r\n target: new BABYLON.Vector3(camera.get(\"tx\"), camera.get(\"ty\"), camera.get(\"tz\")),\r\n } : {\r\n position: this._scene.activeCamera.position,\r\n target: this._scene.activeCamera.target,\r\n },\r\n zkScene: this._zkScene,\r\n zkModel: this._zkModel,\r\n zkDesign: zkDesign,\r\n meshesWithCustomizationIds: canvasMeshesOriginalMeshesIds,\r\n });\r\n dataUrl = result.previewFile;\r\n }\r\n // Trim image\r\n let image = yield _Helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.trimImageAsync(dataUrl);\r\n if (!image)\r\n throw new Error(`Failed cropping image. DataUrl: ${dataUrl} ${legacyScreenshot}, trimImage:${image}`);\r\n // Place on a fixed size canvas\r\n image = yield _Helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.resizeImageFromDataUri(image, width, height, padding);\r\n if (!image)\r\n throw new Error('Failed resizing image.');\r\n this.refreshEnvironment();\r\n this.postSceneContentScreenshot();\r\n return image;\r\n });\r\n }\r\n preSceneContentScreenshot() {\r\n }\r\n postSceneContentScreenshot() {\r\n }\r\n preSceneMaterialScreenshot() {\r\n if (this._environmentManager) {\r\n this._environmentManager.dispose();\r\n this._environmentManager = null;\r\n }\r\n }\r\n postSceneMaterialScreenshot() {\r\n this.refreshEnvironment();\r\n }\r\n getMaterialScreenshotAsync(materialID, width, height) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._scene || !this._sceneHelper)\r\n return null;\r\n this.preSceneMaterialScreenshot();\r\n let dataUri = null;\r\n const rootUrl = yield this.getSceneRootUrl();\r\n if (rootUrl) {\r\n const previewData = yield _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_7__.MaterialsPreview.getPreviewsAsync(this._scene, rootUrl, [materialID], {\r\n width, height, crop: true\r\n }, false);\r\n const keys = Object.keys(previewData.previewFiles);\r\n if (keys.length == 1)\r\n dataUri = previewData.previewFiles[keys[0]];\r\n }\r\n else {\r\n const data = yield this._sceneHelper.takeMaterialScreenshotAsync(materialID, width, height);\r\n const cropped = yield _Helpers_utils__WEBPACK_IMPORTED_MODULE_11__.Utils.trimImageAsync(data);\r\n if (cropped)\r\n dataUri = cropped;\r\n }\r\n this.postSceneMaterialScreenshot();\r\n return dataUri;\r\n });\r\n }\r\n // Used to avoid multiple listeners when using react redraw\r\n clearListeners() {\r\n this._groupPickedListeners = [];\r\n this._focusAttributesListeners = [];\r\n }\r\n // Il parametro showDesign è stato aggiunto per impedire la visualizzazione dei design sugli oggetti.\r\n // Un utilizzo di questo parametro viene fatto quando si vogliono ottenere le informazioni sugli item\r\n // del design senza volerli visualizzare perché ad esempio potrebbero essere elementi di testo con\r\n // dei font ancora non caricati. In tal caso andrebbero prima caricati i font e poi visualizzato il design\r\n renderDesignAsync(zkDesign, showDesign = true) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._scene && this._zkScene && this._zkModel && zkDesign) {\r\n if (this._sceneDesignManager && this._sceneDesignManager.isForModels(this._scene, this._zkModel, zkDesign)) {\r\n this._sceneDesignManager.showDesign = showDesign;\r\n yield this._sceneDesignManager.refreshAsync();\r\n }\r\n else {\r\n this.emptyArFileCache();\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.dispose();\r\n this._sceneDesignManager = null;\r\n }\r\n this._sceneDesignManager = new _Components_DesignManagers_SceneDesignManager__WEBPACK_IMPORTED_MODULE_2__.SceneDesignManager(this._scene, this._zkScene, this._zkModel, zkDesign, showDesign);\r\n this._sceneDesignManager.addRenderingNeededListener(() => {\r\n this.setLongRenderingNeeded();\r\n this.notifyDesignChanged(zkDesign);\r\n });\r\n this._sceneDesignManager.setCustomizerGrids(this._grids);\r\n this._sceneDesignManager.setEventMessages(this._designEventMessages);\r\n for (const listener of this._designNotifyMessageListeners)\r\n this._sceneDesignManager.addNotifyMessageListener(listener);\r\n for (const listener of this._designRemoveMessageListeners)\r\n this._sceneDesignManager.addRemoveMessageListener(listener);\r\n yield this._sceneDesignManager.refreshAsync();\r\n }\r\n this.setLongRenderingNeeded();\r\n }\r\n });\r\n }\r\n resetDesign() {\r\n if (this._scene && this._zkScene && this._zkModel) {\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.dispose();\r\n this._sceneDesignManager = null;\r\n }\r\n this.setLongRenderingNeeded();\r\n }\r\n }\r\n clearMeshDesignManagers() {\r\n if (this._sceneDesignManager) {\r\n this._sceneDesignManager.clearMeshDesignManagers();\r\n }\r\n }\r\n refreshMeshesDesignAsync(meshes, effect) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (meshes && Object.prototype.toString.call(meshes) === '[object Array]') {\r\n meshes.forEach((mesh) => __awaiter(this, void 0, void 0, function* () { return yield this.refreshMeshDesignAsync(mesh.id, undefined, effect || undefined); }));\r\n }\r\n });\r\n }\r\n refreshMeshDesignAsync(meshID, submeshID = 0, effect) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.refreshMeshDesignAsync(meshID, submeshID, effect);\r\n });\r\n }\r\n setCustomizerGrids(grids) {\r\n var _a;\r\n this._grids = grids;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setCustomizerGrids(grids);\r\n }\r\n removeDesignItem(guid) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.removeItem(guid);\r\n }\r\n addDesignItemText(settings, sideId) {\r\n var _a;\r\n return (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.addItemText(settings, sideId);\r\n }\r\n addDesignItemImage(imageID, sideId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield ((_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.addItemImage(imageID, sideId));\r\n });\r\n }\r\n getDesignItemsInfo() {\r\n var _a, _b;\r\n return (_b = (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.getItemsInfo()) !== null && _b !== void 0 ? _b : [];\r\n }\r\n setDesignItemText(guid, text) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setItemText(guid, text);\r\n }\r\n setDesignItemBold(guid, bold) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setItemBold(guid, bold);\r\n }\r\n setDesignItemItalic(guid, italic) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setItemItalic(guid, italic);\r\n }\r\n setDesignItemColor(guid, color) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setItemColor(guid, color);\r\n }\r\n setDesignItemFontFamily(guid, fontFamily) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setItemFontFamily(guid, fontFamily);\r\n }\r\n setDesignItemImage(guid, image) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n yield ((_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setItemImage(guid, image));\r\n });\r\n }\r\n setItemTextOnPath(guid, areaId, value) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setItemTextOnPath(guid, areaId, value);\r\n }\r\n removeDesignItemImage(guid) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.removeItemImage(guid);\r\n }\r\n setDesignVisibility(meshId, opacity) {\r\n var _a;\r\n (_a = this._sceneDesignManager) === null || _a === void 0 ? void 0 : _a.setDesignVisibility(meshId, opacity);\r\n }\r\n setupShaderMaterialsCameraPosition() {\r\n if (this._scene) {\r\n for (let i = 0; i < this._scene.materials.length; i++) {\r\n const material = this._scene.materials[i];\r\n this.setupShaderMaterialCameraPosition(material);\r\n }\r\n }\r\n }\r\n setupShaderMaterialCameraPosition(material) {\r\n if (this._scene && this._scene.activeCamera && material && material instanceof BABYLON.ShaderMaterial) {\r\n material.setVector3(\"cameraPosition\", this._scene.activeCamera.position);\r\n }\r\n }\r\n setMeshLocation(locationID) {\r\n if (this._meshLocationsManager) {\r\n this._meshLocationsManager.setMeshLocationByID(locationID);\r\n }\r\n }\r\n explodeMeshes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._meshLocationsManager) {\r\n yield this._meshLocationsManager.explodeMeshes();\r\n }\r\n });\r\n }\r\n collapseMeshes() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._meshLocationsManager) {\r\n yield this._meshLocationsManager.collapseMeshes();\r\n }\r\n });\r\n }\r\n dracoDecodingFunction(filename, fileBytes, callback) {\r\n this.decodeDracoFile(filename, fileBytes, callback);\r\n }\r\n decodeDracoFile(filename, fileBytes, callback) {\r\n var start = new Date().getTime();\r\n var fileContentView = new Uint8Array(fileBytes);\r\n var fileContent = msgpack.decode(fileContentView);\r\n //var dracoCompression = new DracoCompression();\r\n this.dracoCompression.decodeMeshAsync(fileContent.data).then(function (vertexData) {\r\n let result = {};\r\n // Da testare il passaggio diretto di VertexData\r\n if (vertexData) {\r\n if (vertexData.indices)\r\n result.indices = vertexData.indices;\r\n if (vertexData.positions)\r\n result.positions = vertexData.positions;\r\n if (vertexData.normals)\r\n result.normals = vertexData.normals;\r\n if (vertexData.uvs)\r\n result.uvs = vertexData.uvs;\r\n if (vertexData.uvs2)\r\n result.uvs2 = vertexData.uvs2;\r\n }\r\n var date = new Date();\r\n var time = date.getTime();\r\n var elapsed = time - start;\r\n var timeText = date.getHours() + \":\" + date.getMinutes() + \":\" + date.getSeconds() + \".\" + date.getMilliseconds();\r\n Logger.info(\"Draco Decoding [\" + timeText + \"] - \" + filename + \"\\t\" + fileBytes.byteLength + \"\\t\" + elapsed + \" ms\");\r\n if (callback)\r\n callback(result);\r\n });\r\n }\r\n exportSceneToBabylon() {\r\n if (!this._zkScene || !this._sceneHelper)\r\n return null;\r\n return this._sceneHelper.exportSceneToBabylon();\r\n }\r\n exportVisibleMeshesToBabylon() {\r\n if (!this._zkScene || !this._sceneHelper)\r\n return null;\r\n return this._sceneHelper.exportVisibleMeshesToBabylon();\r\n }\r\n exportMeshesForTyOnToBabylon() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._zkScene || !this._sceneHelper)\r\n return null;\r\n return yield this._sceneHelper.exportMeshesForTyOnToBabylon();\r\n });\r\n }\r\n exportMeshToBabylon(meshID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._scene || !this._zkScene || !this._sceneHelper)\r\n return null;\r\n const mesh = this._scene.getMeshById(meshID);\r\n if (mesh)\r\n return yield this._sceneHelper.exportMeshToBabylon(mesh);\r\n return null;\r\n });\r\n }\r\n downloadMeshToBabylon(meshID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._scene || !this._zkScene || !this._sceneHelper)\r\n return;\r\n const mesh = this._scene.getMeshById(meshID);\r\n if (mesh)\r\n yield this._sceneHelper.downloadMeshBabylonAsync(mesh);\r\n });\r\n }\r\n saveSceneOnDatabaseAsync(fileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const json = this.exportSceneToBabylon();\r\n if (json) {\r\n const db = new _Misc_Database__WEBPACK_IMPORTED_MODULE_12__.Database(); // carico il file json da IndexedDB\r\n yield db.openAsync();\r\n yield db.saveFileAsync(fileId, json);\r\n }\r\n });\r\n }\r\n saveVisibleMeshesOnDatabaseAsync(fileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n //const json = this.exportVisibleMeshesToBabylon();\r\n const json = yield this.exportMeshesForTyOnToBabylon();\r\n if (json) {\r\n const db = new _Misc_Database__WEBPACK_IMPORTED_MODULE_12__.Database(); // carico il file json da IndexedDB\r\n yield db.openAsync();\r\n yield db.saveFileAsync(fileId, json);\r\n }\r\n });\r\n }\r\n saveGlbOnDatabaseAsync(fileId) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let data = null;\r\n data = yield this.exportSceneToLocalGLBAsync();\r\n if (data) {\r\n const db = new _Misc_Database__WEBPACK_IMPORTED_MODULE_12__.Database();\r\n yield db.openAsync();\r\n yield db.saveFileAsync(fileId, data);\r\n }\r\n });\r\n }\r\n getArFileUrlCacheKey(sceneID, sceneCode, format = 'usdz') {\r\n let key = \"scene_\" + sceneID;\r\n if (sceneCode)\r\n key += \"_code_\" + sceneCode;\r\n if (this._sceneDesignManager) {\r\n var json = this._sceneDesignManager.getDesignItemsJson();\r\n if (json) {\r\n var hash = CryptoJS.SHA1(json).toString();\r\n key += \"_design_\" + this._sceneDesignManager.getDesignID() + \"_\" + hash;\r\n }\r\n }\r\n key += \"_\" + format;\r\n return key;\r\n }\r\n getCachedArFileUrl(sceneID, sceneCode, format = 'usdz') {\r\n var key = this.getArFileUrlCacheKey(sceneID, sceneCode, format);\r\n if (this._arFileUrls.hasOwnProperty(key))\r\n return this._arFileUrls[key];\r\n return null;\r\n }\r\n cacheArFileUrl(sceneID, sceneCode, format, url) {\r\n if (url) {\r\n var key = this.getArFileUrlCacheKey(sceneID, sceneCode || undefined, format);\r\n this._arFileUrls[key] = url;\r\n }\r\n }\r\n exportSceneToUsdzAsync(sceneID, sceneCode, useCacheWithDesign) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._zkScene || !this._sceneHelper)\r\n return null;\r\n const format = \"usdz\";\r\n let url = null;\r\n if (sceneID && (!this._sceneDesignManager || useCacheWithDesign))\r\n url = this.getCachedArFileUrl(sceneID, sceneCode, format);\r\n if (url)\r\n return url;\r\n let sceneName = null;\r\n let sceneRootUrl = null;\r\n const sn = this._zkScene.get(\"name\");\r\n if (sn)\r\n sceneName = sn;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n url = yield this._sceneHelper.exportSceneToUsdzAsync(sceneName, sceneRootUrl, this._sceneDesignManager && !useCacheWithDesign ? undefined : sceneID, this._sceneDesignManager && !useCacheWithDesign ? undefined : sceneCode, (_a = this._zkScene) === null || _a === void 0 ? void 0 : _a.getARScale());\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n if (url && sceneID && !this._sceneDesignManager)\r\n this.cacheArFileUrl(sceneID, sceneCode || null, format, url);\r\n return url;\r\n });\r\n }\r\n exportMeshToUsdzAsync(meshID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && this._zkScene && this._sceneHelper) {\r\n let sceneRootUrl = null;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n const url = yield this._sceneHelper.exportMeshToUsdzAsync(sceneRootUrl, mesh, this.getARScale());\r\n Logger.info(\"USDZ: \" + url);\r\n return url;\r\n }\r\n return null;\r\n });\r\n }\r\n exportSceneToRemoteGlTFAsync(sceneID, sceneCode, useCacheWithDesign) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._sceneHelper)\r\n return null;\r\n const format = \"glTF\";\r\n let url = null;\r\n if (sceneID && (!this._sceneDesignManager || useCacheWithDesign))\r\n url = this.getCachedArFileUrl(sceneID, sceneCode, format);\r\n if (url)\r\n return url;\r\n let sceneName = null;\r\n let sceneRootUrl = null;\r\n if (this._zkScene) {\r\n const sn = this._zkScene.get(\"name\");\r\n if (sn)\r\n sceneName = sn;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n }\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n url = yield this._sceneHelper.exportSceneToRemoteGlTFAsync(sceneName, sceneRootUrl, this._sceneDesignManager && !useCacheWithDesign ? undefined : sceneID, this._sceneDesignManager && !useCacheWithDesign ? undefined : sceneCode, (_a = this._zkScene) === null || _a === void 0 ? void 0 : _a.getARScale());\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n if (url && sceneID && !this._sceneDesignManager)\r\n this.cacheArFileUrl(sceneID, sceneCode || null, format, url);\r\n Logger.info(\"GlTF: \" + url);\r\n return url;\r\n });\r\n }\r\n exportMeshToRemoteGlTFAsync(meshID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && this._zkScene && this._sceneHelper) {\r\n let sceneRootUrl = null;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n const url = yield this._sceneHelper.exportMeshToRemoteGlTFAsync(sceneRootUrl, mesh, this.getARScale());\r\n Logger.info(\"GlTF: \" + url);\r\n return url;\r\n }\r\n return null;\r\n });\r\n }\r\n exportSceneToRemoteGLBAsync(sceneID, sceneCode, useCacheWithDesign) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (!this._sceneHelper)\r\n return null;\r\n const format = \"glb\";\r\n let url = null;\r\n if (sceneID && (!this._sceneDesignManager || useCacheWithDesign))\r\n url = this.getCachedArFileUrl(sceneID, sceneCode, format);\r\n if (url)\r\n return url;\r\n let sceneName = null;\r\n let sceneRootUrl = null;\r\n if (this._zkScene) {\r\n const sn = this._zkScene.get(\"name\");\r\n if (sn)\r\n sceneName = sn;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n }\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n url = yield this._sceneHelper.exportSceneToRemoteGLBAsync(sceneName, sceneRootUrl, this._sceneDesignManager && !useCacheWithDesign ? undefined : sceneID, this._sceneDesignManager && !useCacheWithDesign ? undefined : sceneCode, (_a = this._zkScene) === null || _a === void 0 ? void 0 : _a.getARScale());\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n if (url && sceneID && !this._sceneDesignManager)\r\n this.cacheArFileUrl(sceneID, sceneCode || null, format, url);\r\n Logger.info(\"GLB: \" + url);\r\n return url;\r\n });\r\n }\r\n exportMeshToRemoteGLBAsync(meshID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && this._zkScene && this._sceneHelper) {\r\n let sceneRootUrl = null;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n const url = yield this._sceneHelper.exportMeshToRemoteGLBAsync(sceneRootUrl, mesh, this.getARScale());\r\n Logger.info(\"GlTF: \" + url);\r\n return url;\r\n }\r\n return null;\r\n });\r\n }\r\n // Esporta la scena nei formati glb e usdz utili per visualizzarli con model-viewer\r\n // il formato png viene richiesto per ottenere un poster del modello da visualizzare inizialmente\r\n exportSceneToARAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let result = [];\r\n if (!this._sceneHelper)\r\n return result;\r\n let sceneName = null;\r\n let sceneRootUrl = null;\r\n if (this._zkScene) {\r\n const sn = this._zkScene.get(\"name\");\r\n if (sn)\r\n sceneName = sn;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n }\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n result = yield this._sceneHelper.exportSceneToARMultiformatAsync(sceneName, sceneRootUrl, [\"usdz\", \"glb\"]);\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n return result;\r\n });\r\n }\r\n // Esporta la mesh nei formati glb e usdz utili per visualizzarli con model-viewer\r\n // il formato png viene richiesto per ottenere un poster del modello da visualizzare inizialmente\r\n exportMeshToARAsync(meshID) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n let result = [];\r\n const mesh = this.getMeshByID(meshID);\r\n if (mesh && this._zkScene && this._sceneHelper) {\r\n let sceneRootUrl = null;\r\n const sru = this._zkScene.get(\"rootUrl\");\r\n if (sru)\r\n sceneRootUrl = sru;\r\n result = yield this._sceneHelper.exportMeshToARMultiformatAsync(sceneRootUrl, mesh, [\"usdz\", \"glb\"], this.getARScale());\r\n }\r\n return result;\r\n });\r\n }\r\n isAREnabled() {\r\n if (!this._zkScene)\r\n return false;\r\n let enabled = this._zkScene.getAREnabled();\r\n return enabled !== null &&\r\n enabled !== undefined &&\r\n enabled &&\r\n this._sceneHelper != null &&\r\n this._sceneHelper.getMeshesForAR().length > 0 &&\r\n this._sceneHelper.checkMaterialsForAR();\r\n }\r\n exportSceneToLocalGLBAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n let result = null;\r\n if (this._sceneHelper)\r\n result = yield this._sceneHelper.exportSceneToLocalGLBBlobAsync();\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n return result;\r\n });\r\n }\r\n downloadSceneLocalGLBAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n if (this._sceneHelper)\r\n yield this._sceneHelper.downloadSceneLocalGLBAsync();\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n });\r\n }\r\n exportSceneToLocalUSDZAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n let result = null;\r\n if (this._sceneHelper)\r\n result = yield this._sceneHelper.exportSceneToLocalUSDZUrlAsync();\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n return result;\r\n });\r\n }\r\n downloadSceneLocalUSDZAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.expandCanvasMeshes();\r\n if (this._sceneHelper)\r\n yield this._sceneHelper.downloadSceneLocalUSDZAsync();\r\n if (this._sceneDesignManager)\r\n this._sceneDesignManager.contractCanvasMeshes();\r\n });\r\n }\r\n getSceneRootUrl() {\r\n return new Promise((resolve, reject) => {\r\n let rootUrl = null;\r\n if (this._zkScene) {\r\n rootUrl = this._zkScene.get(\"rootUrl\") || null;\r\n if (rootUrl)\r\n resolve(rootUrl);\r\n else {\r\n jQuery.ajax({\r\n url: this._zkScene.getSceneRootUrlApiUrl(),\r\n type: 'GET',\r\n success: function (data) {\r\n rootUrl = data;\r\n resolve(rootUrl);\r\n },\r\n error: function (xhr, textStatus, errorThrown) {\r\n reject(errorThrown);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n resolve(rootUrl);\r\n }\r\n });\r\n }\r\n refreshInfoPoints() {\r\n const enabled = this._zkScene && this._zkScene.getInfoPointsEnabled() && this.canShowInfoPoints;\r\n if (!enabled) {\r\n this.disposeInfoPointsManager();\r\n this.setLongRenderingNeeded();\r\n return;\r\n }\r\n const style = this.getInfoPointsManagerStyle();\r\n let antialias = null;\r\n if (!this._infoPointsManager) {\r\n if (this._scene && this._zkScene) {\r\n this._infoPointsManager = new _Components_InfoPointsManager_InfoPointsManager__WEBPACK_IMPORTED_MODULE_6__.InfoPointsManager(this._zkScene, this._scene, style);\r\n if (this._infoPointPickedListeners && this._infoPointPickedListeners.length > 0)\r\n this._infoPointsManager.addInfoPointPickedListenerRange(this._infoPointPickedListeners);\r\n if (this._infoPointContentShownListeners && this._infoPointContentShownListeners.length > 0)\r\n this._infoPointsManager.addInfoPointContentShownListenerRange(this._infoPointContentShownListeners);\r\n if (this._infoPointContentShownListeners && this._infoPointContentShownListeners.length > 0)\r\n this._infoPointsManager.addInfoPointContentShownListenerRange(this._infoPointContentShownListeners);\r\n this._infoPointsManager.onBeforeShowImages = () => {\r\n if (antialias === null)\r\n antialias = this.antialias;\r\n this.antialias = false;\r\n this.disableAntialiasing();\r\n };\r\n this._infoPointsManager.onAfterShowImages = () => {\r\n this.antialias = antialias;\r\n antialias = null;\r\n this.enableAntialiasing();\r\n this.setLongRenderingNeeded();\r\n };\r\n this._infoPointsManager.addRenderingNeededListener(() => this.setRenderingNeeded());\r\n }\r\n }\r\n if (this._infoPointsManager) {\r\n this.updateInfoPointsManagerStyle();\r\n this._infoPointsManager.canShowInfoPointsContent = this.canShowInfoPointsContent;\r\n this._infoPointsManager.refresh();\r\n }\r\n this.setLongRenderingNeeded();\r\n }\r\n getInfoPointsManagerStyle() {\r\n const style = this._infoPointsManagerStyle ? this._infoPointsManagerStyle : {};\r\n if (this._zkScene) {\r\n const pointsStyle = this._zkScene.getInfoPointsStyleConfig();\r\n if (pointsStyle) {\r\n if (!style.infoPointsStyle)\r\n style.infoPointsStyle = {};\r\n if (pointsStyle.get(\"borderColor\"))\r\n style.infoPointsStyle.borderColor = pointsStyle.get(\"borderColor\");\r\n if (pointsStyle.get(\"innerPointColor\"))\r\n style.infoPointsStyle.innerPointColor = pointsStyle.get(\"innerPointColor\");\r\n if (pointsStyle.get(\"color\"))\r\n style.infoPointsStyle.color = pointsStyle.get(\"color\");\r\n if (pointsStyle.get(\"highlightColor\"))\r\n style.infoPointsStyle.highlightColor = pointsStyle.get(\"highlightColor\");\r\n }\r\n }\r\n return style;\r\n }\r\n updateInfoPointsManagerStyle() {\r\n if (this._infoPointsManager) {\r\n const style = this.getInfoPointsManagerStyle();\r\n this._infoPointsManager.applyStyle(style);\r\n }\r\n }\r\n showInfoPoints() {\r\n if (this._infoPointsManager) {\r\n this._infoPointsManager.showInfoPoints();\r\n this.render();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n hideInfoPoints() {\r\n if (this._infoPointsManager) {\r\n this._infoPointsManager.hideInfoPoints();\r\n this.render();\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n // try to reload all textures with loading errors\r\n reloadAllLoadingErrorTexturesAsync() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._sceneHelper) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl)\r\n yield this._sceneHelper.reloadAllLoadingErrorTexturesAsync(rootUrl);\r\n }\r\n });\r\n }\r\n // try to reload the material textures with loading errors\r\n reloadMaterialLoadingErrorTexturesAsync(material) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._sceneHelper) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl)\r\n yield this._sceneHelper.reloadMaterialLoadingErrorTexturesAsync(rootUrl, material);\r\n }\r\n });\r\n }\r\n // try to reload the texture having loading errors\r\n reloadLoadingErrorTextureAsync(texture) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this._zkScene && this._sceneHelper) {\r\n const rootUrl = this._zkScene.get(\"rootUrl\");\r\n if (rootUrl)\r\n yield this._sceneHelper.reloadLoadingErrorTextureAsync(rootUrl, texture);\r\n }\r\n });\r\n }\r\n // were there any loading errors for the texture?\r\n isTextureLoadingError(texture) {\r\n return this._sceneHelper ? this._sceneHelper.isTextureLoadingError(texture) : false;\r\n }\r\n // the material has some texture with loading errors\r\n materialHasLoadingErrorTextues(material) {\r\n return this._sceneHelper ? this._sceneHelper.materialHasLoadingErrorTextues(material) : false;\r\n }\r\n notifyCameraMovement() {\r\n if (this._isHologramSource && this._camera && this._camera instanceof BABYLON.ArcRotateCamera) {\r\n let bc = this.getOrCreateBroadcastChannel();\r\n if (!bc)\r\n return;\r\n bc.postMessage({\r\n type: BroadcastChannelEventType.CameraMovement,\r\n target: { x: this._camera.target.x, y: this._camera.target.y, z: this._camera.target.z },\r\n alpha: this._camera.alpha,\r\n beta: this._camera.beta,\r\n radius: this._camera.radius\r\n });\r\n }\r\n }\r\n notifyScriptExecution(script) {\r\n if (this._isHologramSource) {\r\n const scriptJson = script.map(s => ({\r\n attributeID: s.attributeID,\r\n selectedValue: s.selectedValue,\r\n actions: s.actions.map(a => a.toJSON())\r\n /*\r\n actions: s.actions.map(a => ({\r\n attributeGuid: a.get(\"actionGuid\"),\r\n name: a.get(\"name\"),\r\n actionTypeID: a.get(\"actionTypeID\"),\r\n sceneElementTypeID: a.get(\"sceneElementTypeID\"),\r\n selector: a.get(\"selector\"),\r\n propertyName: a.get(\"propertyName\"),\r\n value: a.get(\"value\"),\r\n execOrder: a.get(\"execOrder\"),\r\n deviceTypes: a.get(\"deviceTypes\")\r\n }))\r\n */\r\n }));\r\n let bc = this.getOrCreateBroadcastChannel();\r\n if (!bc)\r\n return;\r\n bc.postMessage({\r\n type: BroadcastChannelEventType.ScriptExecution,\r\n script: scriptJson\r\n });\r\n }\r\n }\r\n notifyDesignChanged(zkDesign) {\r\n if (this._isHologramSource) {\r\n let bc = this.getOrCreateBroadcastChannel();\r\n if (!bc)\r\n return;\r\n bc.postMessage({\r\n type: BroadcastChannelEventType.DesignChanged,\r\n design: zkDesign.toJSON()\r\n });\r\n }\r\n }\r\n notifyActionExecution(attributeID, selectedValue, actions) {\r\n this.notifyScriptExecution([{\r\n attributeID,\r\n selectedValue,\r\n actions\r\n }]);\r\n }\r\n attachBroadcastChannelEventHandlers() {\r\n if (this._isHologram && !this._isHologramSource) {\r\n var bc = this.getOrCreateBroadcastChannel();\r\n if (!bc)\r\n return;\r\n bc.onmessage = (event) => this.onBroadcastMessageReceived(event);\r\n }\r\n }\r\n detachBroadcastChannelEventHandlers() {\r\n if (this._broadcastChannel)\r\n this._broadcastChannel.onmessage = null;\r\n }\r\n onBroadcastMessageReceived(event) {\r\n if (this._isHologram && event && event.data && event.data.type) {\r\n if (event.data.type === BroadcastChannelEventType.CameraMovement) {\r\n this.processCameraMovementEvent(event);\r\n }\r\n else if (event.data.type === BroadcastChannelEventType.ScriptExecution) {\r\n this.processScriptExecution(event);\r\n }\r\n else if (event.data.type === BroadcastChannelEventType.DesignChanged) {\r\n this.processDesignChanged(event);\r\n }\r\n }\r\n }\r\n processCameraMovementEvent(event) {\r\n if (this._camera && this._camera instanceof BABYLON.ArcRotateCamera && event && event.data) {\r\n this._camera.target = new BABYLON.Vector3(event.data.target.x, event.data.target.y, event.data.target.z);\r\n this._camera.alpha = event.data.alpha;\r\n this._camera.beta = event.data.beta;\r\n this._camera.radius = event.data.radius;\r\n this.setRenderingNeeded();\r\n }\r\n }\r\n processScriptExecution(event) {\r\n if (event && event.data && event.data.script && Object.prototype.toString.call(event.data.script) === '[object Array]') {\r\n var composerScript = event.data.script.map(s => ({\r\n attributeID: s.attributeID,\r\n selectedValue: s.selectedValue,\r\n actions: s.actions.map(a => new MPlaza.AttributeSceneAction(a))\r\n }));\r\n this.executeScriptAsync(composerScript);\r\n }\r\n }\r\n processDesignChanged(event) {\r\n if (event && event.data && event.data.design) {\r\n let zkDesign = new MPlaza.Design(event.data.design);\r\n this.renderDesignAsync(zkDesign);\r\n }\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"../../3D/src/index.ts\":\n/*!*****************************!*\\\n !*** ../../3D/src/index.ts ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"AndroidAR\": () => (/* reexport safe */ _Components_AR_AndroidAR__WEBPACK_IMPORTED_MODULE_33__.AndroidAR),\n/* harmony export */ \"AxesLayer\": () => (/* reexport safe */ _Layers_AxesLayer__WEBPACK_IMPORTED_MODULE_41__.AxesLayer),\n/* harmony export */ \"BlendProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_BlendProceduralTexture__WEBPACK_IMPORTED_MODULE_14__.BlendProceduralTexture),\n/* harmony export */ \"BlurXProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_6__.BlurXProceduralTexture),\n/* harmony export */ \"BlurYProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_7__.BlurYProceduralTexture),\n/* harmony export */ \"BroadcastChannelEventType\": () => (/* reexport safe */ _Viewers_SceneViewer__WEBPACK_IMPORTED_MODULE_48__.BroadcastChannelEventType),\n/* harmony export */ \"Database\": () => (/* reexport safe */ _Misc_Database__WEBPACK_IMPORTED_MODULE_47__.Database),\n/* harmony export */ \"DefaultAssetUrls\": () => (/* reexport safe */ _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_43__.DefaultAssetUrls),\n/* harmony export */ \"DracoCompression\": () => (/* reexport safe */ _Components_Draco_DracoCompression__WEBPACK_IMPORTED_MODULE_27__.DracoCompression),\n/* harmony export */ \"EditingMode\": () => (/* reexport safe */ _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EditingMode),\n/* harmony export */ \"EditorMeshType\": () => (/* reexport safe */ _Viewers_MaterialEditor__WEBPACK_IMPORTED_MODULE_50__.EditorMeshType),\n/* harmony export */ \"ElementSelector\": () => (/* reexport safe */ _Components_Selector_ElementSelector__WEBPACK_IMPORTED_MODULE_28__.ElementSelector),\n/* harmony export */ \"EnvironmentManager\": () => (/* reexport safe */ _Components_Environment_EnvironmentManager__WEBPACK_IMPORTED_MODULE_29__.EnvironmentManager),\n/* harmony export */ \"EnvironmentMode\": () => (/* reexport safe */ _Enumerations__WEBPACK_IMPORTED_MODULE_5__.EnvironmentMode),\n/* harmony export */ \"EventState\": () => (/* reexport safe */ _Misc_Observable__WEBPACK_IMPORTED_MODULE_45__.EventState),\n/* harmony export */ \"ForegroundBackgroundProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_8__.ForegroundBackgroundProceduralTexture),\n/* harmony export */ \"GlowManager\": () => (/* reexport safe */ _Components_Glow_GlowManager__WEBPACK_IMPORTED_MODULE_17__.GlowManager),\n/* harmony export */ \"IncrementalFiles\": () => (/* reexport safe */ _Components_IncrementalFiles_IncrementalFiles__WEBPACK_IMPORTED_MODULE_19__.IncrementalFiles),\n/* harmony export */ \"InfoPointsManager\": () => (/* reexport safe */ _Components_InfoPointsManager_InfoPointsManager__WEBPACK_IMPORTED_MODULE_34__.InfoPointsManager),\n/* harmony export */ \"InnerShadow\": () => (/* reexport safe */ _Components_Shadows_InnerShadow__WEBPACK_IMPORTED_MODULE_22__.InnerShadow),\n/* harmony export */ \"LightsLayer\": () => (/* reexport safe */ _Layers_LightsLayer__WEBPACK_IMPORTED_MODULE_42__.LightsLayer),\n/* harmony export */ \"MakeIncremental\": () => (/* reexport safe */ _Components_IncrementalFiles_MakeIncremental__WEBPACK_IMPORTED_MODULE_18__.MakeIncremental),\n/* harmony export */ \"MaterialEditor\": () => (/* reexport safe */ _Viewers_MaterialEditor__WEBPACK_IMPORTED_MODULE_50__.MaterialEditor),\n/* harmony export */ \"MaterialGroup\": () => (/* reexport safe */ _Viewers_SceneEditor__WEBPACK_IMPORTED_MODULE_49__.MaterialGroup),\n/* harmony export */ \"MaterialPreviewData\": () => (/* reexport safe */ _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_20__.MaterialPreviewData),\n/* harmony export */ \"MaterialsPreview\": () => (/* reexport safe */ _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_20__.MaterialsPreview),\n/* harmony export */ \"MeshDesignManager\": () => (/* reexport safe */ _Components_DesignManagers_MeshDesignManager__WEBPACK_IMPORTED_MODULE_24__.MeshDesignManager),\n/* harmony export */ \"MeshExpander\": () => (/* reexport safe */ _Components_MeshExpander_MeshExpander__WEBPACK_IMPORTED_MODULE_30__.MeshExpander),\n/* harmony export */ \"MeshLocationsManager\": () => (/* reexport safe */ _Components_CollapseExplode_MeshLocationsManager__WEBPACK_IMPORTED_MODULE_16__.MeshLocationsManager),\n/* harmony export */ \"MoveProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_MoveProceduralTexture__WEBPACK_IMPORTED_MODULE_9__.MoveProceduralTexture),\n/* harmony export */ \"MultiObserver\": () => (/* reexport safe */ _Misc_Observable__WEBPACK_IMPORTED_MODULE_45__.MultiObserver),\n/* harmony export */ \"MultiplyProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_10__.MultiplyProceduralTexture),\n/* harmony export */ \"NormalMapProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_NormalMapProceduralTexture__WEBPACK_IMPORTED_MODULE_11__.NormalMapProceduralTexture),\n/* harmony export */ \"Observable\": () => (/* reexport safe */ _Misc_Observable__WEBPACK_IMPORTED_MODULE_45__.Observable),\n/* harmony export */ \"Observer\": () => (/* reexport safe */ _Misc_Observable__WEBPACK_IMPORTED_MODULE_45__.Observer),\n/* harmony export */ \"OpacityProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_OpacityProceduralTexture__WEBPACK_IMPORTED_MODULE_12__.OpacityProceduralTexture),\n/* harmony export */ \"OuterShadow\": () => (/* reexport safe */ _Components_Shadows_OuterShadow__WEBPACK_IMPORTED_MODULE_23__.OuterShadow),\n/* harmony export */ \"OverlayProceduralTexture\": () => (/* reexport safe */ _Components_ProceduralTextures_OverlayProceduralTexture__WEBPACK_IMPORTED_MODULE_13__.OverlayProceduralTexture),\n/* harmony export */ \"Preview3DConfigurationManager\": () => (/* reexport safe */ _Components_Preview3D_Preview3DConfigurationManager__WEBPACK_IMPORTED_MODULE_26__.Preview3DConfigurationManager),\n/* harmony export */ \"ProceduralNormalMap\": () => (/* reexport safe */ _Components_NormalMap_ProceduralNormalMap__WEBPACK_IMPORTED_MODULE_21__.ProceduralNormalMap),\n/* harmony export */ \"SceneActionsExecutor\": () => (/* reexport safe */ _Components_ActionExecutor_SceneActionExecutor__WEBPACK_IMPORTED_MODULE_15__.SceneActionsExecutor),\n/* harmony export */ \"SceneDesignManager\": () => (/* reexport safe */ _Components_DesignManagers_SceneDesignManager__WEBPACK_IMPORTED_MODULE_25__.SceneDesignManager),\n/* harmony export */ \"SceneEditor\": () => (/* reexport safe */ _Viewers_SceneEditor__WEBPACK_IMPORTED_MODULE_49__.SceneEditor),\n/* harmony export */ \"SceneHelper\": () => (/* reexport safe */ _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_31__.SceneHelper),\n/* harmony export */ \"SceneToBlobs\": () => (/* reexport safe */ _Components_SceneToBlobs_SceneToBlobs__WEBPACK_IMPORTED_MODULE_32__.SceneToBlobs),\n/* harmony export */ \"SceneViewer\": () => (/* reexport safe */ _Viewers_SceneViewer__WEBPACK_IMPORTED_MODULE_48__.SceneViewer),\n/* harmony export */ \"SourceTaskStatus\": () => (/* reexport safe */ _Viewers_SceneEditor__WEBPACK_IMPORTED_MODULE_49__.SourceTaskStatus),\n/* harmony export */ \"StringTools\": () => (/* reexport safe */ _Misc_StringTools__WEBPACK_IMPORTED_MODULE_44__.StringTools),\n/* harmony export */ \"Task\": () => (/* reexport safe */ _composer_Components_ChunkedTask__WEBPACK_IMPORTED_MODULE_51__.Task),\n/* harmony export */ \"UsdzHelper\": () => (/* reexport safe */ _Components_USDZ_UsdzHelper__WEBPACK_IMPORTED_MODULE_35__.UsdzHelper),\n/* harmony export */ \"Utils\": () => (/* reexport safe */ _Helpers_utils__WEBPACK_IMPORTED_MODULE_37__.Utils),\n/* harmony export */ \"WorkerPool\": () => (/* reexport safe */ _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_46__.WorkerPool),\n/* harmony export */ \"ZakekeEnvironment\": () => (/* reexport safe */ _Enumerations__WEBPACK_IMPORTED_MODULE_5__.ZakekeEnvironment),\n/* harmony export */ \"debounce\": () => (/* reexport safe */ _Helpers_debounce__WEBPACK_IMPORTED_MODULE_36__.debounce)\n/* harmony export */ });\n/* harmony import */ var _Polyfills_Array_Array_prototype_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Polyfills/Array/Array.prototype.find */ \"../../3D/src/Polyfills/Array/Array.prototype.find.js\");\n/* harmony import */ var _Polyfills_Array_Array_prototype_find__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_Polyfills_Array_Array_prototype_find__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Polyfills_Array_Array_prototype_includes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Polyfills/Array/Array.prototype.includes */ \"../../3D/src/Polyfills/Array/Array.prototype.includes.js\");\n/* harmony import */ var _Polyfills_Array_Array_prototype_includes__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_Polyfills_Array_Array_prototype_includes__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Polyfills_Array_Array_prototype_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Polyfills/Array/Array.prototype.map */ \"../../3D/src/Polyfills/Array/Array.prototype.map.js\");\n/* harmony import */ var _Polyfills_Array_Array_prototype_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_Polyfills_Array_Array_prototype_map__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Polyfills_String_String_prototype_startsWith__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Polyfills/String/String.prototype.startsWith */ \"../../3D/src/Polyfills/String/String.prototype.startsWith.js\");\n/* harmony import */ var _Polyfills_String_String_prototype_startsWith__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_Polyfills_String_String_prototype_startsWith__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _Polyfills_String_String_prototype_endsWith__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Polyfills/String/String.prototype.endsWith */ \"../../3D/src/Polyfills/String/String.prototype.endsWith.js\");\n/* harmony import */ var _Polyfills_String_String_prototype_endsWith__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_Polyfills_String_String_prototype_endsWith__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _Enumerations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Enumerations */ \"../../3D/src/Enumerations.ts\");\n/* harmony import */ var _Components_ProceduralTextures_BlurXProceduralTexture__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Components/ProceduralTextures/BlurXProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurXProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_BlurYProceduralTexture__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Components/ProceduralTextures/BlurYProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlurYProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_ForegroundBackgroundProceduralTexture__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Components/ProceduralTextures/ForegroundBackgroundProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/ForegroundBackgroundProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_MoveProceduralTexture__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Components/ProceduralTextures/MoveProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/MoveProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_MultiplyProceduralTexture__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Components/ProceduralTextures/MultiplyProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/MultiplyProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_NormalMapProceduralTexture__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Components/ProceduralTextures/NormalMapProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/NormalMapProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_OpacityProceduralTexture__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Components/ProceduralTextures/OpacityProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/OpacityProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_OverlayProceduralTexture__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./Components/ProceduralTextures/OverlayProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/OverlayProceduralTexture.ts\");\n/* harmony import */ var _Components_ProceduralTextures_BlendProceduralTexture__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Components/ProceduralTextures/BlendProceduralTexture */ \"../../3D/src/Components/ProceduralTextures/BlendProceduralTexture.ts\");\n/* harmony import */ var _Components_ActionExecutor_SceneActionExecutor__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Components/ActionExecutor/SceneActionExecutor */ \"../../3D/src/Components/ActionExecutor/SceneActionExecutor.ts\");\n/* harmony import */ var _Components_CollapseExplode_MeshLocationsManager__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./Components/CollapseExplode/MeshLocationsManager */ \"../../3D/src/Components/CollapseExplode/MeshLocationsManager.ts\");\n/* harmony import */ var _Components_Glow_GlowManager__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Components/Glow/GlowManager */ \"../../3D/src/Components/Glow/GlowManager.ts\");\n/* harmony import */ var _Components_IncrementalFiles_MakeIncremental__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./Components/IncrementalFiles/MakeIncremental */ \"../../3D/src/Components/IncrementalFiles/MakeIncremental.ts\");\n/* harmony import */ var _Components_IncrementalFiles_IncrementalFiles__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./Components/IncrementalFiles/IncrementalFiles */ \"../../3D/src/Components/IncrementalFiles/IncrementalFiles.ts\");\n/* harmony import */ var _Components_MaterialsPreview_MaterialsPreview__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./Components/MaterialsPreview/MaterialsPreview */ \"../../3D/src/Components/MaterialsPreview/MaterialsPreview.ts\");\n/* harmony import */ var _Components_NormalMap_ProceduralNormalMap__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./Components/NormalMap/ProceduralNormalMap */ \"../../3D/src/Components/NormalMap/ProceduralNormalMap.ts\");\n/* harmony import */ var _Components_Shadows_InnerShadow__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./Components/Shadows/InnerShadow */ \"../../3D/src/Components/Shadows/InnerShadow.ts\");\n/* harmony import */ var _Components_Shadows_OuterShadow__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./Components/Shadows/OuterShadow */ \"../../3D/src/Components/Shadows/OuterShadow.ts\");\n/* harmony import */ var _Components_DesignManagers_MeshDesignManager__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./Components/DesignManagers/MeshDesignManager */ \"../../3D/src/Components/DesignManagers/MeshDesignManager.ts\");\n/* harmony import */ var _Components_DesignManagers_SceneDesignManager__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./Components/DesignManagers/SceneDesignManager */ \"../../3D/src/Components/DesignManagers/SceneDesignManager.ts\");\n/* harmony import */ var _Components_Preview3D_Preview3DConfigurationManager__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./Components/Preview3D/Preview3DConfigurationManager */ \"../../3D/src/Components/Preview3D/Preview3DConfigurationManager.ts\");\n/* harmony import */ var _Components_Draco_DracoCompression__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./Components/Draco/DracoCompression */ \"../../3D/src/Components/Draco/DracoCompression.ts\");\n/* harmony import */ var _Components_Selector_ElementSelector__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./Components/Selector/ElementSelector */ \"../../3D/src/Components/Selector/ElementSelector.ts\");\n/* harmony import */ var _Components_Environment_EnvironmentManager__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./Components/Environment/EnvironmentManager */ \"../../3D/src/Components/Environment/EnvironmentManager.ts\");\n/* harmony import */ var _Components_MeshExpander_MeshExpander__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./Components/MeshExpander/MeshExpander */ \"../../3D/src/Components/MeshExpander/MeshExpander.ts\");\n/* harmony import */ var _Components_SceneHelper__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./Components/SceneHelper */ \"../../3D/src/Components/SceneHelper.ts\");\n/* harmony import */ var _Components_SceneToBlobs_SceneToBlobs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./Components/SceneToBlobs/SceneToBlobs */ \"../../3D/src/Components/SceneToBlobs/SceneToBlobs.ts\");\n/* harmony import */ var _Components_AR_AndroidAR__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./Components/AR/AndroidAR */ \"../../3D/src/Components/AR/AndroidAR.ts\");\n/* harmony import */ var _Components_InfoPointsManager_InfoPointsManager__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./Components/InfoPointsManager/InfoPointsManager */ \"../../3D/src/Components/InfoPointsManager/InfoPointsManager.ts\");\n/* harmony import */ var _Components_USDZ_UsdzHelper__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./Components/USDZ/UsdzHelper */ \"../../3D/src/Components/USDZ/UsdzHelper.ts\");\n/* harmony import */ var _Helpers_debounce__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./Helpers/debounce */ \"../../3D/src/Helpers/debounce.ts\");\n/* harmony import */ var _Helpers_utils__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./Helpers/utils */ \"../../3D/src/Helpers/utils.ts\");\n/* harmony import */ var _Interfaces_IDisposable__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./Interfaces/IDisposable */ \"../../3D/src/Interfaces/IDisposable.ts\");\n/* harmony import */ var _Interfaces_IDisposable__WEBPACK_IMPORTED_MODULE_38___default = /*#__PURE__*/__webpack_require__.n(_Interfaces_IDisposable__WEBPACK_IMPORTED_MODULE_38__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _Interfaces_IDisposable__WEBPACK_IMPORTED_MODULE_38__) if([\"default\",\"EditingMode\",\"EnvironmentMode\",\"ZakekeEnvironment\",\"BlurXProceduralTexture\",\"BlurYProceduralTexture\",\"ForegroundBackgroundProceduralTexture\",\"MoveProceduralTexture\",\"MultiplyProceduralTexture\",\"NormalMapProceduralTexture\",\"OpacityProceduralTexture\",\"OverlayProceduralTexture\",\"BlendProceduralTexture\",\"SceneActionsExecutor\",\"MeshLocationsManager\",\"GlowManager\",\"MakeIncremental\",\"IncrementalFiles\",\"MaterialPreviewData\",\"MaterialsPreview\",\"ProceduralNormalMap\",\"InnerShadow\",\"OuterShadow\",\"MeshDesignManager\",\"SceneDesignManager\",\"Preview3DConfigurationManager\",\"DracoCompression\",\"ElementSelector\",\"EnvironmentManager\",\"MeshExpander\",\"SceneHelper\",\"SceneToBlobs\",\"AndroidAR\",\"InfoPointsManager\",\"UsdzHelper\",\"debounce\",\"Utils\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _Interfaces_IDisposable__WEBPACK_IMPORTED_MODULE_38__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n/* harmony import */ var _Interfaces_ISupportInitialize__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./Interfaces/ISupportInitialize */ \"../../3D/src/Interfaces/ISupportInitialize.ts\");\n/* harmony import */ var _Interfaces_ISupportInitialize__WEBPACK_IMPORTED_MODULE_39___default = /*#__PURE__*/__webpack_require__.n(_Interfaces_ISupportInitialize__WEBPACK_IMPORTED_MODULE_39__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _Interfaces_ISupportInitialize__WEBPACK_IMPORTED_MODULE_39__) if([\"default\",\"EditingMode\",\"EnvironmentMode\",\"ZakekeEnvironment\",\"BlurXProceduralTexture\",\"BlurYProceduralTexture\",\"ForegroundBackgroundProceduralTexture\",\"MoveProceduralTexture\",\"MultiplyProceduralTexture\",\"NormalMapProceduralTexture\",\"OpacityProceduralTexture\",\"OverlayProceduralTexture\",\"BlendProceduralTexture\",\"SceneActionsExecutor\",\"MeshLocationsManager\",\"GlowManager\",\"MakeIncremental\",\"IncrementalFiles\",\"MaterialPreviewData\",\"MaterialsPreview\",\"ProceduralNormalMap\",\"InnerShadow\",\"OuterShadow\",\"MeshDesignManager\",\"SceneDesignManager\",\"Preview3DConfigurationManager\",\"DracoCompression\",\"ElementSelector\",\"EnvironmentManager\",\"MeshExpander\",\"SceneHelper\",\"SceneToBlobs\",\"AndroidAR\",\"InfoPointsManager\",\"UsdzHelper\",\"debounce\",\"Utils\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _Interfaces_ISupportInitialize__WEBPACK_IMPORTED_MODULE_39__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n/* harmony import */ var _Interfaces_ISceneEditor__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./Interfaces/ISceneEditor */ \"../../3D/src/Interfaces/ISceneEditor.ts\");\n/* harmony import */ var _Interfaces_ISceneEditor__WEBPACK_IMPORTED_MODULE_40___default = /*#__PURE__*/__webpack_require__.n(_Interfaces_ISceneEditor__WEBPACK_IMPORTED_MODULE_40__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _Interfaces_ISceneEditor__WEBPACK_IMPORTED_MODULE_40__) if([\"default\",\"EditingMode\",\"EnvironmentMode\",\"ZakekeEnvironment\",\"BlurXProceduralTexture\",\"BlurYProceduralTexture\",\"ForegroundBackgroundProceduralTexture\",\"MoveProceduralTexture\",\"MultiplyProceduralTexture\",\"NormalMapProceduralTexture\",\"OpacityProceduralTexture\",\"OverlayProceduralTexture\",\"BlendProceduralTexture\",\"SceneActionsExecutor\",\"MeshLocationsManager\",\"GlowManager\",\"MakeIncremental\",\"IncrementalFiles\",\"MaterialPreviewData\",\"MaterialsPreview\",\"ProceduralNormalMap\",\"InnerShadow\",\"OuterShadow\",\"MeshDesignManager\",\"SceneDesignManager\",\"Preview3DConfigurationManager\",\"DracoCompression\",\"ElementSelector\",\"EnvironmentManager\",\"MeshExpander\",\"SceneHelper\",\"SceneToBlobs\",\"AndroidAR\",\"InfoPointsManager\",\"UsdzHelper\",\"debounce\",\"Utils\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _Interfaces_ISceneEditor__WEBPACK_IMPORTED_MODULE_40__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n/* harmony import */ var _Layers_AxesLayer__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./Layers/AxesLayer */ \"../../3D/src/Layers/AxesLayer.ts\");\n/* harmony import */ var _Layers_LightsLayer__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./Layers/LightsLayer */ \"../../3D/src/Layers/LightsLayer.ts\");\n/* harmony import */ var _Misc_DefaultAssetUrls__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./Misc/DefaultAssetUrls */ \"../../3D/src/Misc/DefaultAssetUrls.ts\");\n/* harmony import */ var _Misc_StringTools__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./Misc/StringTools */ \"../../3D/src/Misc/StringTools.ts\");\n/* harmony import */ var _Misc_Observable__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./Misc/Observable */ \"../../3D/src/Misc/Observable.ts\");\n/* harmony import */ var _Misc_WorkerPool__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./Misc/WorkerPool */ \"../../3D/src/Misc/WorkerPool.ts\");\n/* harmony import */ var _Misc_Database__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./Misc/Database */ \"../../3D/src/Misc/Database.ts\");\n/* harmony import */ var _Viewers_SceneViewer__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./Viewers/SceneViewer */ \"../../3D/src/Viewers/SceneViewer.ts\");\n/* harmony import */ var _Viewers_SceneEditor__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./Viewers/SceneEditor */ \"../../3D/src/Viewers/SceneEditor.ts\");\n/* harmony import */ var _Viewers_MaterialEditor__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./Viewers/MaterialEditor */ \"../../3D/src/Viewers/MaterialEditor.ts\");\n/* harmony import */ var _composer_Components_ChunkedTask__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ../../composer/Components/ChunkedTask */ \"../Components/ChunkedTask.ts\");\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n/// \r\n\r\n\r\n\r\n\r\n\r\n// root\r\n\r\n// Components\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// helpers\r\n\r\n\r\n// interfaces\r\n\r\n\r\n\r\n// Layers\r\n\r\n\r\n// misc\r\n\r\n\r\n\r\n\r\n\r\n// Viewers\r\n\r\n\r\n\r\n// ChunkedTasks\r\n\r\n\n\n/***/ }),\n\n/***/ \"../Components/ChunkedTask.ts\":\n/*!************************************!*\\\n !*** ../Components/ChunkedTask.ts ***!\n \\************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Task\": () => (/* binding */ Task)\n/* harmony export */ });\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ \"../../../node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);\n// ChunckedTask\r\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\nclass Task {\r\n constructor(tasksUrl, token, isOwin = true) {\r\n this.tasksUrl = tasksUrl;\r\n this.token = token;\r\n this.upload = (file, options) => __awaiter(this, void 0, void 0, function* () {\r\n return yield this.uploadFileChunked(file, file.type, Zakeke.generateUUID(), options);\r\n });\r\n this.uploadFileChunked = (imageFile, mimeType, fileID, options, progressCallaback) => __awaiter(this, void 0, void 0, function* () {\r\n let status = yield this.resumableUpload(imageFile, mimeType, fileID, progressCallaback);\r\n if (status === 'OK') {\r\n let taskID = yield this.createTask(fileID, options);\r\n if (taskID !== -1) {\r\n let responseTaskImage = yield this.getResultFromTask(taskID);\r\n if (responseTaskImage) {\r\n return responseTaskImage.files;\r\n }\r\n }\r\n else {\r\n throw \"Upload failed\";\r\n }\r\n }\r\n return null;\r\n });\r\n this.resumableUpload = (imageFile, mimeType, fileID, progressCallback) => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n let r = new Resumable({\r\n target: Zakeke.config.baseApiUrl + \"filechunks/upload\",\r\n generateUniqueIdentifier: function () {\r\n return fileID;\r\n },\r\n maxFiles: 1,\r\n testChunks: false,\r\n headers: this.headers,\r\n query: { 'resumableType': mimeType },\r\n simultaneousUploads: 3\r\n });\r\n // Adding file\r\n r.addFile(imageFile);\r\n // Event Upload handlers\r\n r.on('fileError', function (file, message) {\r\n resolve('KO');\r\n console.error('fileError', file, message);\r\n });\r\n r.on('error', function (message, file) {\r\n resolve('KO');\r\n console.error('error', message, file);\r\n });\r\n r.on('progress', function () {\r\n let percentage = (r.progress() * 100);\r\n if (progressCallback)\r\n progressCallback(percentage);\r\n });\r\n r.on('fileAdded', function (file, event) {\r\n r.upload();\r\n });\r\n r.on('complete', function () {\r\n resolve('OK');\r\n });\r\n });\r\n });\r\n this.createTask = (fileID, options) => __awaiter(this, void 0, void 0, function* () {\r\n let imageTask = { 'fileID': fileID, 'options': options };\r\n let response = yield axios__WEBPACK_IMPORTED_MODULE_0___default().post(Zakeke.config.baseApiUrl + this.tasksUrl, imageTask, { headers: this.headers });\r\n return (response) ? response.data.taskID : -1;\r\n });\r\n this.getResultFromTask = (taskID) => __awaiter(this, void 0, void 0, function* () {\r\n let times = 0;\r\n for (;;) {\r\n try {\r\n let response = yield axios__WEBPACK_IMPORTED_MODULE_0___default().get(Zakeke.config.baseApiUrl + this.tasksUrl + \"/results/\" + taskID, { headers: this.headers });\r\n if (response && response.data.state === 2) {\r\n return response.data;\r\n }\r\n else if (response && response.data.state === 3) {\r\n return null;\r\n }\r\n }\r\n catch (ex) {\r\n return null;\r\n }\r\n times++;\r\n if (times > 200) {\r\n return null;\r\n }\r\n // Delay 1s\r\n yield new Promise(resolve => setTimeout(resolve, 1000));\r\n }\r\n });\r\n if (isOwin) {\r\n this.headers = {\r\n 'Authorization': 'Bearer ' + this.token,\r\n \"Accept-Language\": \"en-US\"\r\n };\r\n }\r\n else {\r\n this.headers = {\r\n 'X-Auth-Token': this.token,\r\n \"Accept-Language\": \"en-US\"\r\n };\r\n }\r\n }\r\n}\r\n\n\n/***/ }),\n\n/***/ \"./src/api.ts\":\n/*!********************!*\\\n !*** ./src/api.ts ***!\n \\********************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"axiosApi\": () => (/* binding */ axiosApi),\n/* harmony export */ \"setupApi\": () => (/* binding */ setupApi)\n/* harmony export */ });\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! axios */ \"./node_modules/axios/index.js\");\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(axios__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.tsx\");\n\r\n\r\n\r\nlet axiosApi;\r\nfunction setupApi(culture, token) {\r\n axiosApi = axios__WEBPACK_IMPORTED_MODULE_0___default().create({\r\n baseURL: Zakeke.config.baseApiUrl,\r\n timeout: 120000,\r\n withCredentials: true,\r\n headers: {\r\n \"Authorization\": \"Bearer \" + token,\r\n \"Accept-Language\": culture\r\n }\r\n });\r\n $.ajaxSetup({\r\n xhrFields: { withCredentials: true },\r\n headers: {\r\n \"Authorization\": \"Bearer \" + token,\r\n \"Accept-Language\": culture\r\n }\r\n });\r\n axiosApi.interceptors.response.use(function (response) {\r\n // Convert all to camelCase\r\n if (response.data && (lodash__WEBPACK_IMPORTED_MODULE_1___default().isObject(response.data) || lodash__WEBPACK_IMPORTED_MODULE_1___default().isArray(response.data)))\r\n response.data = _helpers__WEBPACK_IMPORTED_MODULE_2__.StringHelper.pascalToCamel(response.data);\r\n return response;\r\n }, function (error) {\r\n // Convert all to camelCase\r\n if (error.response && error.response.data) {\r\n error.response.data = _helpers__WEBPACK_IMPORTED_MODULE_2__.StringHelper.pascalToCamel(error.response.data);\r\n }\r\n return Promise.reject(error);\r\n });\r\n}\r\n\n\n/***/ }),\n\n/***/ \"./src/components/customizer.tsx\":\n/*!***************************************!*\\\n !*** ./src/components/customizer.tsx ***!\n \\***************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ZakekeDesigner\": () => (/* binding */ ZakekeDesigner)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ \"styled-components\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/helpers.tsx\");\n/* harmony import */ var _state_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../state/provider */ \"./src/state/provider.tsx\");\n\r\n\r\n\r\n\r\n\r\nconst ZakekeDesignerContainer = (styled_components__WEBPACK_IMPORTED_MODULE_1___default().div) `\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n outline: none !important;\r\n \r\n canvas {\r\n outline: none !important;\r\n }\r\n`;\r\n// Persistent mode will keep the SceneEditor alive after unmount.\r\n// You should save the current editor with the ref\r\nconst ZakekeDesigner = react__WEBPACK_IMPORTED_MODULE_0__.forwardRef((props, ref) => {\r\n const [guid] = react__WEBPACK_IMPORTED_MODULE_0__.useState((0,_helpers__WEBPACK_IMPORTED_MODULE_2__.uuid)());\r\n const { designUpdate, internalProduct, currentTemplate, internalCurrentTemplate } = (0,_state_provider__WEBPACK_IMPORTED_MODULE_3__.useZakeke)();\r\n const [customizer, setCustomizer] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null);\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\r\n const container = document.getElementById('zakeke-designer-container-' + guid);\r\n const newCustomizer = new MPlaza.Customizer(false, false, null, true);\r\n newCustomizer.showSideImage = false;\r\n newCustomizer.addItemChangedListener(handleItemChanged);\r\n newCustomizer.addItemRemovedListener(handleItemRemoved);\r\n // Hide DPI warnings\r\n newCustomizer.setCustomizedMessages([{\r\n Description: \"\",\r\n EventID: MPlaza.EventMessages.DPIWarning,\r\n Visible: false\r\n }]);\r\n newCustomizer.appendTo(container);\r\n setCustomizer(newCustomizer);\r\n }, []);\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\r\n if (internalProduct) {\r\n const side = internalProduct.get(\"colors\").at(0).get(\"sides\").find(x => x.get('sideID') == props.areaId);\r\n if (side && customizer && internalCurrentTemplate) {\r\n customizer.model = internalProduct;\r\n customizer.setDesign(internalCurrentTemplate);\r\n customizer.setSide(side).then(() => {\r\n customizer.adaptZoomToSideAreas(false);\r\n });\r\n }\r\n }\r\n }, [props.areaId, currentTemplate, !!customizer]);\r\n const handleItemChanged = () => {\r\n designUpdate();\r\n };\r\n const handleItemRemoved = () => {\r\n designUpdate();\r\n };\r\n const zoomIn = () => {\r\n if (customizer)\r\n customizer.zoomIn();\r\n };\r\n const zoomOut = () => {\r\n if (customizer)\r\n customizer.zoomOut();\r\n };\r\n // Expose the zoom methods to ref\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle)(ref, () => ({\r\n zoomIn,\r\n zoomOut\r\n }), []);\r\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(ZakekeDesignerContainer, { id: 'zakeke-designer-container-' + guid });\r\n});\r\n\n\n/***/ }),\n\n/***/ \"./src/components/sceneViewer.tsx\":\n/*!****************************************!*\\\n !*** ./src/components/sceneViewer.tsx ***!\n \\****************************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ZakekeViewer\": () => (/* binding */ ZakekeViewer)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _state_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../state/provider */ \"./src/state/provider.tsx\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/helpers.tsx\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! styled-components */ \"styled-components\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(styled_components__WEBPACK_IMPORTED_MODULE_3__);\n\r\n\r\n\r\n\r\n\r\nconst ZakekeViewerContainer = (styled_components__WEBPACK_IMPORTED_MODULE_3___default().div) `\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n outline: none !important;\r\n \r\n canvas {\r\n outline: none !important;\r\n }\r\n`;\r\n// Persistent mode will keep the SceneEditor alive after unmount.\r\n// You should save the current editor with the ref\r\nconst ZakekeViewer = ({ className }) => {\r\n const [guid] = react__WEBPACK_IMPORTED_MODULE_0__.useState((0,_helpers__WEBPACK_IMPORTED_MODULE_2__.uuid)());\r\n const { isViewerReady, internalAppendViewer } = (0,_state_provider__WEBPACK_IMPORTED_MODULE_1__.useZakeke)();\r\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\r\n if (isViewerReady)\r\n internalAppendViewer(document.getElementById('zakeke-viewer-container-' + guid));\r\n }, [isViewerReady]);\r\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(ZakekeViewerContainer, { id: 'zakeke-viewer-container-' + guid, className: className });\r\n};\r\n\n\n/***/ }),\n\n/***/ \"./src/environment.tsx\":\n/*!*****************************!*\\\n !*** ./src/environment.tsx ***!\n \\*****************************/\n/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ZakekeEnvironment\": () => (/* binding */ ZakekeEnvironment)\n/* harmony export */ });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! . */ \"./src/index.tsx\");\n/* harmony import */ var _3D_src__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../3D/src */ \"../../3D/src/index.ts\");\n/* harmony import */ var _libs_pricingRuleBase_DesignPriceCalculatorRuleBased__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../libs/pricingRuleBase/DesignPriceCalculatorRuleBased */ \"../../libs/pricingRuleBase/DesignPriceCalculatorRuleBased.tsx\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./api */ \"./src/api.ts\");\n/* harmony import */ var _exceptions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./exceptions */ \"./src/exceptions.tsx\");\n/* harmony import */ var _fontsManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./fontsManager */ \"./src/fontsManager.ts\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./helpers */ \"./src/helpers.tsx\");\n/* harmony import */ var _imageUploadTask__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./imageUploadTask */ \"./src/imageUploadTask.ts\");\n/* harmony import */ var _integrations_Helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./integrations/Helpers */ \"./src/integrations/Helpers.ts\");\n/* harmony import */ var _integrations_Integration__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./integrations/Integration */ \"./src/integrations/Integration.ts\");\n/* harmony import */ var _models__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./models */ \"./src/models.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ZakekeEnvironment {\r\n constructor() {\r\n this.platformAttributesSelection = [];\r\n this.previewWidth = 768;\r\n this.previewHeight = 768;\r\n this.clientPreviewWidth = 1024;\r\n this.clientPreviewHeight = 1024;\r\n this.shareUrlPrefix = null;\r\n this.events = [];\r\n this.zkProduct = null;\r\n this.zkScene = null;\r\n this.zkCurrentTemplate = null;\r\n this.zkTemplates = [];\r\n this.internalIsFullscreen = false;\r\n this.highlightSettings = null;\r\n this.previousMeshesVisibleStates = {};\r\n this.lastCameraLocation = null;\r\n this.enableShareCompositionUrl = false;\r\n this.sharedCompositionDocId = null;\r\n this.savedCompositions = null;\r\n this.isDraftEditor = false;\r\n this.isViewerMode = false;\r\n this.draftCompositionDocId = null;\r\n this.undoStack = [];\r\n this.redoStack = [];\r\n this.currentAttributesSelection = null;\r\n this.currentCompositionInfo = null;\r\n this.copyrightMessageLocalStorageKey = \"\";\r\n this.sellerSettings = null;\r\n this.themeCompositions = null;\r\n this.currency = 'EUR';\r\n this.groups = [];\r\n this.fonts = [];\r\n this.disableTextColors = false;\r\n this.textColors = [];\r\n this.defaultColor = '';\r\n this.quantity = 1;\r\n this.quantityRule = null;\r\n this.culture = \"en-US\";\r\n this.price = 0;\r\n this.compositionId = null;\r\n this.templates = [];\r\n this.currentTemplate = null;\r\n this.product = null;\r\n this.cameras = [];\r\n this.isExplodedMode = false;\r\n this.isAssetsLoading = false;\r\n this.extensionFields = [];\r\n this.translations = {\r\n statics: [],\r\n dynamics: []\r\n };\r\n this.publicTranslations = null;\r\n this.useLegacyScreenshot = false;\r\n this.eventMessages = null;\r\n this.parseParameters = (parameters) => {\r\n console.info(\"Parameters\", parameters);\r\n // From parameters or URL\r\n if (parameters) {\r\n for (const key in parameters) {\r\n const value = parameters[key];\r\n switch (key) {\r\n case \"name\":\r\n this.productName = value.replace(/\\+/g, '%20');\r\n break;\r\n case \"ecommerce\":\r\n this.platform = value;\r\n break;\r\n case \"qty\":\r\n this.quantity = value;\r\n break;\r\n case \"culture\":\r\n this.culture = value;\r\n break;\r\n case \"currency\":\r\n this.currency = value;\r\n break;\r\n case \"token\":\r\n this.token = value;\r\n break;\r\n case \"compositionId\":\r\n this.compositionId = value;\r\n break;\r\n case \"modelCode\":\r\n this.productCode = value;\r\n break;\r\n case \"previewWidth\":\r\n this.previewWidth = value;\r\n break;\r\n case \"previewHeight\":\r\n this.previewHeight = value;\r\n break;\r\n case \"shareUrlPrefix\":\r\n this.shareUrlPrefix = value;\r\n break;\r\n case \"sharedCompositionDocId\":\r\n this.sharedCompositionDocId = value;\r\n break;\r\n case \"enableShareCompositionUrl\":\r\n this.enableShareCompositionUrl = value;\r\n break;\r\n case \"isDraftEditor\":\r\n this.isDraftEditor = value;\r\n break;\r\n case \"draftCompositionDocId\":\r\n this.draftCompositionDocId = value;\r\n break;\r\n case \"viewerMode\":\r\n this.isViewerMode = value;\r\n break;\r\n case \"legacyScreenshot\":\r\n this.useLegacyScreenshot = value == 1;\r\n break;\r\n }\r\n // Attributes collection\r\n if (key.indexOf(\"attributes\") == 0) {\r\n for (let attr of value) { // For each attribute/option\r\n this.platformAttributesSelection.push(new _integrations_Integration__WEBPACK_IMPORTED_MODULE_10__.PlatformAttributeSelection(JSON.stringify(attr[0]), JSON.stringify(attr[1]), \"\", \"\", true, true));\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n let queryString = window.location.href.substring(window.location.href.lastIndexOf(\"?\") + 1);\r\n let pieces = queryString.split(\"&\");\r\n for (let i = 0; i < pieces.length; i++) {\r\n let index = pieces[i].indexOf(\"=\");\r\n if (index == -1) {\r\n throw new _exceptions__WEBPACK_IMPORTED_MODULE_5__.ParametersParseFailException(pieces[i]);\r\n }\r\n let key = decodeURIComponent(pieces[i].substring(0, index));\r\n let value = pieces[i].substring(index + 1);\r\n switch (key) {\r\n case \"name\":\r\n this.productName = decodeURIComponent(value.replace(/\\+/g, '%20'));\r\n break;\r\n case \"ecommerce\":\r\n this.platform = decodeURIComponent(value);\r\n break;\r\n case \"qty\":\r\n this.quantity = parseFloat(decodeURIComponent(value));\r\n break;\r\n case \"culture\":\r\n this.culture = decodeURIComponent(value);\r\n break;\r\n case \"currency\":\r\n this.currency = decodeURIComponent(value);\r\n break;\r\n case \"token\":\r\n this.token = decodeURIComponent(value);\r\n break;\r\n case \"compositionId\":\r\n this.compositionId = decodeURIComponent(value);\r\n break;\r\n case \"modelCode\":\r\n this.productCode = decodeURIComponent(value.replace(/\\+/g, '%20'));\r\n break;\r\n case \"previewWidth\":\r\n this.previewWidth = parseInt(decodeURIComponent(value.replace(/\\+/g, '%20')));\r\n break;\r\n case \"previewHeight\":\r\n this.previewHeight = parseInt(decodeURIComponent(value.replace(/\\+/g, '%20')));\r\n break;\r\n case \"shareUrlPrefix\":\r\n this.shareUrlPrefix = decodeURIComponent(value.replace(/\\+/g, '%20'));\r\n break;\r\n case \"sharedCompositionDocId\":\r\n this.sharedCompositionDocId = decodeURIComponent(value.replace(/\\+/g, '%20'));\r\n ;\r\n break;\r\n case \"isDraftEditor\":\r\n this.isDraftEditor = true;\r\n break;\r\n case \"enableShareCompositionUrl\":\r\n this.enableShareCompositionUrl = true;\r\n break;\r\n case \"draftCompositionDocId\":\r\n this.draftCompositionDocId = value;\r\n break;\r\n case \"viewerMode\":\r\n this.isViewerMode = true;\r\n break;\r\n case \"legacyScreenshot\":\r\n this.useLegacyScreenshot = value == '1';\r\n break;\r\n }\r\n // Attributes collection\r\n if (key.indexOf(\"attributes\") == 0) {\r\n let data = decodeURIComponent(value.replace(/\\+/g, '%20'));\r\n if (data && data != \"\") {\r\n let json = JSON.parse(data);\r\n for (let attr of json)\r\n this.platformAttributesSelection.push(new _integrations_Integration__WEBPACK_IMPORTED_MODULE_10__.PlatformAttributeSelection(JSON.stringify(attr[0]), JSON.stringify(attr[1]), \"\", \"\", true, true));\r\n }\r\n }\r\n }\r\n }\r\n // Parameter validation\r\n const requiredParams = {\r\n \"culture (in xx_XX format)\": this.culture,\r\n \"currency\": this.currency,\r\n \"name (product name)\": this.productName,\r\n \"ecommerce\": this.platform,\r\n \"qty (product quantity)\": this.quantity,\r\n \"token\": this.token,\r\n \"modelCode\": this.productCode\r\n };\r\n for (const key in requiredParams) {\r\n if (!requiredParams[key])\r\n throw new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Missing parameter: \" + key);\r\n }\r\n window[\"token\"] = this.token;\r\n window[\"isOwin\"] = true;\r\n return true;\r\n };\r\n // Get product\r\n this.getProduct = () => __awaiter(this, void 0, void 0, function* () {\r\n if (!this.productCode || this.productCode == \"\")\r\n throw new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Loading product but no SKU found\");\r\n return new Promise((resolve, reject) => {\r\n const zkModel = new MPlaza.Model();\r\n zkModel.set(\"modelID\", 1);\r\n zkModel.fetch({\r\n success: () => {\r\n resolve(zkModel);\r\n },\r\n error: () => {\r\n reject(new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Failed loading product\"));\r\n },\r\n data: {\r\n c: this.productCode\r\n }\r\n });\r\n });\r\n });\r\n // Get scene\r\n this.getScene = (product) => __awaiter(this, void 0, void 0, function* () {\r\n if (!product)\r\n throw new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Loading scene but no product found\");\r\n if (product.get(\"scenes\").length == 0)\r\n throw new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"The product don't have any scene configured\");\r\n const zkScene = new Zakeke.Scene();\r\n zkScene.set(\"sceneID\", product.get(\"scenes\").at(0).get(\"sceneID\"));\r\n return new Promise((resolve, reject) => {\r\n zkScene.fetch({\r\n success: (zkScene) => {\r\n resolve(zkScene);\r\n },\r\n error: () => {\r\n reject(new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Failed loading scene\"));\r\n }\r\n });\r\n });\r\n });\r\n // Get composer models\r\n this.getComposerModels = () => __awaiter(this, void 0, void 0, function* () {\r\n if (!this.productCode || this.productCode == \"\")\r\n throw new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Loading product but no SKU found\");\r\n return new Promise((resolve, reject) => {\r\n const models = new Zakeke.ComposerModels();\r\n models.set(\"modelID\", 1);\r\n models.fetch({\r\n success: () => {\r\n resolve(models);\r\n },\r\n error: () => {\r\n reject(new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Failed loading product\"));\r\n },\r\n data: {\r\n c: this.productCode\r\n }\r\n });\r\n });\r\n });\r\n // Get fonts\r\n this.getFonts = () => __awaiter(this, void 0, void 0, function* () {\r\n var _a, _b;\r\n let fonts = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.get(Zakeke.config.baseApiUrl + \"fontfamilies/\")).data;\r\n let productFonts = (_b = (_a = this.zkProduct) === null || _a === void 0 ? void 0 : _a.get(\"printTypes\").at(0).get(\"fonts\").map(x => x.get(\"fontFamilyID\"))) !== null && _b !== void 0 ? _b : [];\r\n if (productFonts.length > 0)\r\n fonts = fonts.filter(font => productFonts.indexOf(font.fontFamilyID) != -1);\r\n return fonts;\r\n });\r\n // Get settings\r\n this.getSettings = () => __awaiter(this, void 0, void 0, function* () {\r\n const settings = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.get(Zakeke.config.baseApiUrl + \"customizerinfo/\")).data;\r\n return settings;\r\n });\r\n this.getSellerSetting = () => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n // Fetch the seller setting\r\n const sellerSetting = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.get(\"sellerSetting/\")).data;\r\n resolve(sellerSetting);\r\n }));\r\n });\r\n // Create quote for composition\r\n this.createQuote = (formData) => __awaiter(this, void 0, void 0, function* () {\r\n var _c, _e;\r\n let quote = new _models__WEBPACK_IMPORTED_MODULE_11__.Quote();\r\n quote.formData = JSON.stringify(formData);\r\n quote.quantity = this.quantity;\r\n quote.compositionDocID = this.composition.get('docID');\r\n quote.modelPrice = (_c = yield this.integration.getPrice(this.composition, this.zkCurrentTemplate, this.zkProduct, this.platformAttributesSelection, 0, 1)) !== null && _c !== void 0 ? _c : 0;\r\n quote.variantName = (_e = this.product.name) !== null && _e !== void 0 ? _e : \"\";\r\n const quoteCreated = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.post(Zakeke.config.baseApiUrl + \"quotes\", quote)).data;\r\n return quoteCreated;\r\n });\r\n this.getTranslations = () => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n var url = Zakeke.config.baseApiUrl + \"SellerLocalizations/customizer-localizations\";\r\n const response = yield $.ajax({\r\n url: url,\r\n data: JSON.stringify({}),\r\n method: \"GET\",\r\n contentType: \"application/json\",\r\n dataType: \"json\"\r\n });\r\n if (response != null) {\r\n // console.log(`getTranslations response is OK: ${JSON.stringify(response)}`);\r\n return response;\r\n }\r\n else {\r\n console.log('getTranslations response is empty');\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n });\r\n this.loadLocalization = () => __awaiter(this, void 0, void 0, function* () {\r\n let lang = this.culture;\r\n // Try zh-TW\r\n if (Zakeke.config.avaibleLanguages.indexOf(lang) == -1)\r\n lang = this.culture.substring(0, 2);\r\n // Try zh\r\n if (Zakeke.config.avaibleLanguages.lastIndexOf(lang) == -1)\r\n lang = \"en\";\r\n yield this.loadScript(Zakeke.config.baseUrl + `Scripts/localizations/${lang.toLowerCase()}/composer.js`);\r\n });\r\n this.loadScript = (src) => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n var script = document.createElement(\"script\");\r\n script.onload = resolve;\r\n script.src = src;\r\n document.body.appendChild(script);\r\n });\r\n });\r\n this.setCopyrightMessageAccepted = (copyrightMandatoryCheckbox) => {\r\n try {\r\n if (copyrightMandatoryCheckbox)\r\n window.localStorage.setItem(this.copyrightMessageLocalStorageKey, (copyrightMandatoryCheckbox).toString());\r\n else\r\n window.localStorage.removeItem(this.copyrightMessageLocalStorageKey);\r\n }\r\n catch (e) { }\r\n };\r\n this.getCopyrightMessageAccepted = () => {\r\n let copyrightMessageAccepted = false;\r\n try {\r\n copyrightMessageAccepted = window.localStorage.getItem(this.copyrightMessageLocalStorageKey) ? true : false;\r\n }\r\n catch (e) { }\r\n ;\r\n return copyrightMessageAccepted;\r\n };\r\n this.boot = (parameters) => __awaiter(this, void 0, void 0, function* () {\r\n var _f, _g;\r\n this.parseParameters(parameters);\r\n (0,_api__WEBPACK_IMPORTED_MODULE_4__.setupApi)(this.culture, this.token);\r\n yield this.loadLocalization();\r\n this.settings = yield this.getSettings();\r\n this.copyrightMessageLocalStorageKey = this.settings.userID + \"_copyright_accepted\";\r\n this.eventMessages = this.settings.eventMessages.map(message => ___WEBPACK_IMPORTED_MODULE_1__.EventMessage.fromMessage(message));\r\n this.trigger(\"change\");\r\n this.translations = yield this.getTranslations();\r\n const staticTranslations = new Map(this.translations.statics.map(staticTranslation => [staticTranslation.original, staticTranslation.localization]));\r\n const dynamicTranslations = new Map(this.translations.dynamics.map(staticTranslation => [staticTranslation.original, staticTranslation.localization]));\r\n this.publicTranslations = {\r\n statics: staticTranslations,\r\n dynamics: dynamicTranslations\r\n };\r\n _helpers__WEBPACK_IMPORTED_MODULE_7__.T.translations = this.publicTranslations;\r\n this.trigger(\"change\");\r\n const composerModels = yield this.getComposerModels();\r\n this.zkScene = composerModels.get('scene');\r\n this.zkProduct = composerModels.get('model');\r\n this.product = _models__WEBPACK_IMPORTED_MODULE_11__.Product.fromProduct(this.zkProduct);\r\n this.quantityRule = this.zkProduct.get(\"quantityRule\") ? _models__WEBPACK_IMPORTED_MODULE_11__.ProductQuantityRule.fromQuantityRule(this.zkProduct.get(\"quantityRule\")) : null;\r\n this.integration = yield (0,_integrations_Helpers__WEBPACK_IMPORTED_MODULE_9__.integrationFor)(this.platform);\r\n this.sellerSettings = yield this.getSellerSetting();\r\n if (!this.zkScene)\r\n throw new Error('Product has no 3D scene.');\r\n this.trigger(\"change\");\r\n this.fonts = yield this.getFonts();\r\n this.defaultColor = this.getDefaultColor();\r\n this.disableTextColors = this.getDisableTextColors();\r\n this.textColors = this.getTextColors();\r\n this.trigger(\"change\");\r\n this.zkTemplates = yield this.getTemplates();\r\n this.templates = this.zkTemplates.map(zkTemplate => _models__WEBPACK_IMPORTED_MODULE_11__.Template.fromTemplate(zkTemplate));\r\n this.cameras = (_g = (_f = this.zkScene) === null || _f === void 0 ? void 0 : _f.get('cameraLocations').map(x => _models__WEBPACK_IMPORTED_MODULE_11__.Camera.fromZkCamera(x))) !== null && _g !== void 0 ? _g : [];\r\n this.trigger(\"change\");\r\n this.viewer = yield _3D_src__WEBPACK_IMPORTED_MODULE_2__.SceneViewer.createSceneViewerAsync();\r\n this.viewer.isHologramSource = true;\r\n this.viewer.addBeginAssetsLoadingListener(() => {\r\n this.isAssetsLoading = true;\r\n this.trigger(\"change\");\r\n });\r\n this.viewer.addEndAssetsLoadingListener(() => {\r\n this.isAssetsLoading = false;\r\n this.trigger(\"change\");\r\n });\r\n if (this.highlightSettings) {\r\n this.viewer.highlightColor = this.highlightSettings.color;\r\n this.viewer.highlightSize = this.highlightSettings.size;\r\n }\r\n this.viewer.setLoadingScreen({\r\n displayLoadingUI: () => null,\r\n hideLoadingUI: () => null,\r\n loadingUIBackgroundColor: 'black',\r\n loadingUIText: 'black'\r\n });\r\n this.viewer.infoPointsManagerStyle = {\r\n imagePanelStyle: {\r\n backgroundColor: \"white\",\r\n loadingTextColor: \"#cccccc\",\r\n buttonsBorderColor: \"#dddddd\",\r\n buttonsBorderHighlightColor: \"#eeeeee\",\r\n buttonsColor: \"#888888\",\r\n buttonsHighlightColor: \"#555555\",\r\n buttonsIconColor: \"white\"\r\n }\r\n };\r\n // Set transparent background\r\n this.zkScene.getOrCreateEnvironmentConfig().set(\"mainColor\", '#000000');\r\n this.zkScene.getOrCreateGeneralConfig().set(\"backgroundColor\", '#000000');\r\n this.zkScene.getOrCreateGeneralConfig().set(\"backgroundAlpha\", 0);\r\n // Pricing calculator\r\n this.pricingCalculator = yield _libs_pricingRuleBase_DesignPriceCalculatorRuleBased__WEBPACK_IMPORTED_MODULE_3__.DesignPriceCalculatorRuleFactory.create(this.zkProduct, Zakeke.config.baseApiUrl, this.token, true, Zakeke.config.cloudFlareApiUrl);\r\n this.pricingCalculator.colorID = this.zkProduct.get('colors').at(0).get('colorID');\r\n this.integration.setPricingCalculator(this.pricingCalculator);\r\n yield this.viewer.loadSceneFromModelAsync(this.zkProduct, this.zkScene);\r\n this.trigger(\"change\");\r\n yield this.handleSceneLoaded();\r\n });\r\n this.appendViewer = (container) => {\r\n if (this.viewer)\r\n this.viewer.appendTo(container);\r\n };\r\n this.setHighlightSettings = (settings) => {\r\n this.highlightSettings = settings;\r\n if (this.viewer) {\r\n this.viewer.highlightColor = settings.color;\r\n this.viewer.highlightSize = settings.size;\r\n }\r\n };\r\n this.renderDesign = lodash__WEBPACK_IMPORTED_MODULE_0___default().throttle(() => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer && this.zkCurrentTemplate) {\r\n yield this.viewer.renderDesignAsync(this.zkCurrentTemplate);\r\n this.fireItemsChange();\r\n }\r\n }), 300);\r\n this.resize = () => {\r\n if (!this.viewer)\r\n return;\r\n //this.viewer.updateView(false);\r\n // Restore last camera locazione\r\n if (this.lastCameraLocation && this.lastCameraLocation !== Zakeke.getEmptyUUID()) {\r\n console.log(\"Restoring last camera location \" + this.lastCameraLocation + \" ...\");\r\n this.setCamera(this.lastCameraLocation, false, false);\r\n }\r\n else {\r\n this.viewer.adjustCamera(false);\r\n }\r\n };\r\n this.buildRecapProps = lodash__WEBPACK_IMPORTED_MODULE_0___default().debounce((selectedOptions) => {\r\n if (!this.sellerSettings || !this.sellerSettings.isCompositionRecapEnabled)\r\n return;\r\n const storeAttr = this.zkProduct.get(\"attributes\");\r\n const storeGroups = this.zkProduct.get(\"attributeGroups\");\r\n const storeSteps = this.zkProduct.get(\"attributeSteps\");\r\n const recapProps = {};\r\n selectedOptions.forEach((item) => {\r\n const currentAttr = storeAttr.find(attr => attr.get(\"attributeID\") == item.attributeID);\r\n const currentOption = currentAttr.get(\"options\").find(opt => opt.get(\"optionID\") == item.optionID);\r\n const currentGroup = storeGroups.find(group => group.get(\"groupID\") == currentAttr.get('groupID'));\r\n const currentStep = storeSteps.find(step => step.get(\"stepID\") == currentAttr.get('stepID'));\r\n let label = \"\";\r\n let isOptionEnabled = false;\r\n this.selection.get(\"groups\").each(group => {\r\n group.get(\"attributes\").each(attr => {\r\n var _a, _b, _c, _e;\r\n const option = attr.get(\"options\").find(x => x.get('optionID') == currentOption.get(\"optionID\"));\r\n if (option && attr.get(\"enabled\")) {\r\n isOptionEnabled = this.isOptionEnabled(currentOption.get(\"optionID\"));\r\n label = group.get(\"groupID\") !== -1 ? (_helpers__WEBPACK_IMPORTED_MODULE_7__.T._d(group.get(\"name\")) + \" \" + _helpers__WEBPACK_IMPORTED_MODULE_7__.T._d(currentAttr.get(\"name\"))) : _helpers__WEBPACK_IMPORTED_MODULE_7__.T._d(currentAttr.get(\"name\"));\r\n recapProps[`${label}`] = {\r\n groupDisplayOrder: (_a = currentGroup === null || currentGroup === void 0 ? void 0 : currentGroup.get('displayOrder')) !== null && _a !== void 0 ? _a : 0,\r\n stepDisplayOrder: (_b = currentStep === null || currentStep === void 0 ? void 0 : currentStep.get('displayOrder')) !== null && _b !== void 0 ? _b : 0,\r\n attributeDisplayOrder: (_c = currentAttr === null || currentAttr === void 0 ? void 0 : currentAttr.get('displayOrder')) !== null && _c !== void 0 ? _c : 0,\r\n optionDisplayOrder: (_e = currentOption === null || currentOption === void 0 ? void 0 : currentOption.get('displayOrder')) !== null && _e !== void 0 ? _e : 0,\r\n value: _helpers__WEBPACK_IMPORTED_MODULE_7__.T._d(currentOption.get(\"name\")),\r\n };\r\n }\r\n });\r\n });\r\n });\r\n this.currentAttributesSelection = recapProps;\r\n }, 200);\r\n this.updateRecapAndExtensionField = () => {\r\n const selectedOptions = [];\r\n this.selection.getAllAttributeSelections().forEach(attribute => {\r\n attribute.get(\"options\").forEach((option) => {\r\n if (option.get(\"selected\")) {\r\n selectedOptions.push({\r\n attributeID: option.get(\"attributeID\"),\r\n optionID: option.get(\"optionID\"),\r\n });\r\n }\r\n });\r\n });\r\n this.getCurrentExtensionFields(selectedOptions);\r\n this.buildRecapProps(selectedOptions);\r\n this.trigger('change');\r\n };\r\n this.getCurrentExtensionFields = (options) => {\r\n const propsValues = [];\r\n const propsMap = {};\r\n const storeAttr = this.zkProduct.get(\"attributes\");\r\n options.forEach(item => {\r\n const currentAttr = storeAttr.find(attr => attr.get(\"attributeID\") == item.attributeID);\r\n const currentOption = currentAttr.get(\"options\").find(opt => opt.get(\"optionID\") == item.optionID);\r\n if (currentOption.get(\"extensionFields\").length) {\r\n currentOption.get(\"extensionFields\").forEach((item) => {\r\n if (propsValues.length === 0 || propsValues.indexOf(item.name) == -1) {\r\n propsValues.push(item.name);\r\n propsMap[item.name] = {\r\n value: 0,\r\n label: item.label,\r\n formatString: item.formatString,\r\n };\r\n }\r\n let val;\r\n if (item.dataTypeID === _models__WEBPACK_IMPORTED_MODULE_11__.ExtensionFieldDataType.Integer) {\r\n val = parseInt(item.value);\r\n }\r\n else {\r\n val = parseFloat(item.value);\r\n }\r\n propsMap[item.name].value += val;\r\n });\r\n }\r\n });\r\n let itemsArray = Object.keys(propsMap)\r\n .map(function (key) {\r\n return (propsMap[key]);\r\n });\r\n this.extensionFields = itemsArray;\r\n };\r\n this.handleSceneLoaded = () => __awaiter(this, void 0, void 0, function* () {\r\n var _h, _j;\r\n window.addEventListener(\"resize\", this.resize);\r\n console.log(\"Scene loaded\");\r\n this.selection = Zakeke.ComposerSelection.CreateComposerSelection(this.zkProduct);\r\n let currentCompositionId = this.draftCompositionDocId || this.sharedCompositionDocId || this.compositionId;\r\n if (this.initialSelection == undefined) {\r\n this.initialSelection = this.cloneSelection(this.selection);\r\n }\r\n yield this.internalLoadComposition(currentCompositionId);\r\n this.trigger(\"change\");\r\n this.buildStructure();\r\n // Trigger quantity update\r\n this.setQuantity(this.quantity);\r\n this.renderDesign();\r\n //this.viewer.addNotifyMessageListener((sideID, itemGuid, type, title, message, closabled, requiredWidth, requiredHeight) => this.trigger(\"change\"));\r\n //this.viewer.addRemoveMessageListener((sideID, itemGuid) => this.trigger(\"change\"));\r\n // this.viewer.setEventMessages(this.settings.eventMessages.map(x => ({\r\n // AddToCartDisabledIfVisible: x.addToCartDisabledIfVisible,\r\n // AdditionalData: x.additionalData,\r\n // Closeable: x.closeable,\r\n // Description: x.description,\r\n // EnableCheckForSellerImages: x.enableCheckForSellerImages,\r\n // EventID: x.eventID,\r\n // Visible: x.visible\r\n // })));\r\n if (this.sellerSettings) {\r\n this.addHotjarScript((_h = this.sellerSettings) === null || _h === void 0 ? void 0 : _h.hotjarSiteID);\r\n this.addGoogleTagManagerID((_j = this.sellerSettings) === null || _j === void 0 ? void 0 : _j.googleTagManagerID);\r\n }\r\n if (this.sharedCompositionDocId) {\r\n this.composition.set(\"docID\", null);\r\n this.composition.set(\"designDocID\", null);\r\n }\r\n this.registerView();\r\n yield this.updateSavedCompositions();\r\n setTimeout(() => this.updateRecapAndExtensionField(), 1000);\r\n });\r\n this.getComposition = (id) => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n const composition = new MPlaza.Composition();\r\n composition.set(\"docID\", id);\r\n composition.fetch({\r\n success: (model) => {\r\n resolve(model);\r\n },\r\n error: () => {\r\n reject();\r\n }\r\n });\r\n });\r\n });\r\n this.getDesign = (id) => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n const design = new MPlaza.Design();\r\n design.set(\"docID\", id);\r\n design.fetch({\r\n success: (model) => {\r\n resolve(model);\r\n },\r\n error: () => {\r\n reject();\r\n },\r\n data: {\r\n frombackoffice: (this.isDraftEditor ? true : false)\r\n }\r\n });\r\n design.addEventListener('change', this.updatePrice);\r\n });\r\n });\r\n this.internalLoadDesign = (id) => __awaiter(this, void 0, void 0, function* () {\r\n this.zkCurrentTemplate = yield this.getDesign(this.composition.get(\"designDocID\"));\r\n yield (0,_fontsManager__WEBPACK_IMPORTED_MODULE_6__.downloadFontsOfDesign)(this.zkCurrentTemplate, this.fonts);\r\n this.renderDesign();\r\n });\r\n this.loadComposition = (id) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.internalLoadComposition(id);\r\n this.buildStructure();\r\n });\r\n this.internalLoadComposition = (id) => __awaiter(this, void 0, void 0, function* () {\r\n // Get or create a new composition\r\n if (id) {\r\n this.composition = yield this.getComposition(id);\r\n this.selection.setupOnComposition(this.composition);\r\n if (this.composition.get(\"designDocID\")) {\r\n yield this.internalLoadDesign(this.composition.get(\"designDocID\"));\r\n }\r\n else if (this.templates.length > 0) {\r\n this.setTemplate(this.templates[0].id);\r\n }\r\n }\r\n else {\r\n this.composition = this.selection.buildComposition();\r\n // Select initial values from platform\r\n for (let platformSelection of this.platformAttributesSelection) {\r\n // Search the attribute\r\n this.zkProduct.get(\"attributes\").each(attribute => {\r\n if ((0,_helpers__WEBPACK_IMPORTED_MODULE_7__.isPlatformCode)(attribute.get(\"attributeCode\"))) {\r\n try {\r\n if ((0,_helpers__WEBPACK_IMPORTED_MODULE_7__.compare)(JSON.parse(attribute.get(\"attributeCode\")), JSON.parse(platformSelection.attributeCode))) {\r\n let option = attribute.get(\"options\").find(option => {\r\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.compare)(JSON.parse(option.get(\"optionCode\")), JSON.parse(platformSelection.optionCode));\r\n });\r\n if (option) {\r\n this.selection.selectAttributeValue(attribute.get('attributeID'), option.get('optionID'));\r\n // Update here the labels because events are not attached yet (attached below)\r\n platformSelection.attributeLabel = attribute.get(\"name\");\r\n platformSelection.optionLabel = option.get(\"name\");\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n console.error(\"Failed parsing attribute from data:\", platformSelection);\r\n console.error(ex);\r\n }\r\n }\r\n });\r\n }\r\n if (this.templates.length > 0)\r\n this.setTemplate(this.templates[0].id);\r\n }\r\n // Add all composition attributes to the platformAttributes that we will send to the plugin\r\n this.selection.get(\"groups\").each(group => {\r\n group.get(\"attributes\").each(attribute => {\r\n // Here we check if this attributes was already passed from the parameters.\r\n // If yes, we ignore it because the correct value was already selected in the previous rows.\r\n // else we add it to the list of attributes selections\r\n let oldAttribute = this.platformAttributesSelection.find(x => {\r\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.matchCodes)(x.attributeCode, attribute.get(\"attributeCode\"));\r\n });\r\n if ((!oldAttribute)) {\r\n let selectedOption = attribute.get(\"options\").findWhere({ selected: true });\r\n if (selectedOption)\r\n this.platformAttributesSelection.push(new _integrations_Integration__WEBPACK_IMPORTED_MODULE_10__.PlatformAttributeSelection(attribute.get(\"attributeCode\"), selectedOption.get(\"optionCode\"), attribute.get(\"name\"), selectedOption.get(\"name\"), attribute.get(\"enabled\"), selectedOption.get(\"enabled\")));\r\n }\r\n });\r\n });\r\n const script = this.selection.getAllAttributeTransformationScript();\r\n this.viewer.adjustCamera(false);\r\n yield this.viewer.executeScriptAsync(script);\r\n this.selection.on(\"attributeSelectionChanged\", (e) => {\r\n this.handleAttributeSelectionChanged(e);\r\n });\r\n this.selection.on(\"attributeEnabled\", (e) => {\r\n this.handleAttributeEnabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeDisabled\", (e) => {\r\n this.handleAttributeDisabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeOptionEnabled\", (e) => {\r\n this.handleAttributeOptionEnabled(e.attributeID, e.optionID);\r\n });\r\n this.selection.on(\"attributeOptionDisabled\", (e) => {\r\n this.handleAttributeOptionDisabled(e.attributeID, e.optionID);\r\n });\r\n this.updateComposition();\r\n this.updateRecapAndExtensionField();\r\n });\r\n this.cloneSelection = (selection) => {\r\n const clone = new Zakeke.ComposerSelection();\r\n clone.set('zkModel', this.zkProduct);\r\n clone.set('attributeDependencies', selection.get('attributeDependencies'));\r\n clone.set('optionDependencies', selection.get('optionDependencies'));\r\n clone.get('groups').reset();\r\n selection.get('groups').each(group => {\r\n var cloneGroup = new Zakeke.AttributeGroupSelection();\r\n for (const key in group.attributes) {\r\n cloneGroup.set(key, group.attributes[key]);\r\n }\r\n clone.get('groups').add(cloneGroup);\r\n });\r\n let idx = 0;\r\n clone.get(\"groups\").each((group) => {\r\n group.set(\"attributes\", selection.get(\"groups\").at(idx).get(\"attributes\").clone());\r\n group.get('attributes').reset();\r\n selection.get(\"groups\").at(idx).get(\"attributes\").each(attribute => {\r\n var cloneAttribute = new Zakeke.AttributeSelection();\r\n for (const key in attribute.attributes) {\r\n cloneAttribute.set(key, attribute.attributes[key]);\r\n }\r\n group.get('attributes').add(cloneAttribute);\r\n });\r\n let idx2 = 0;\r\n group.get(\"attributes\").each((attribute) => {\r\n attribute.set(\"options\", selection.get(\"groups\").at(idx).get(\"attributes\").at(idx2).get(\"options\").clone());\r\n attribute.get('options').reset();\r\n selection.get(\"groups\").at(idx).get(\"attributes\").at(idx2).get(\"options\").each(option => {\r\n var cloneOption = new Zakeke.OptionSelection();\r\n for (const key in option.attributes) {\r\n cloneOption.set(key, option.attributes[key]);\r\n }\r\n attribute.get('options').add(cloneOption);\r\n });\r\n idx2++;\r\n });\r\n idx++;\r\n });\r\n return clone;\r\n };\r\n this.undo = () => __awaiter(this, void 0, void 0, function* () {\r\n let selection = (this.undoStack && this.undoStack.length > 0 ? this.undoStack.pop() : null);\r\n if (!selection)\r\n return;\r\n this.redoStack.push(this.selection);\r\n this.selection = selection;\r\n this.selection.on(\"attributeSelectionChanged\", (e) => {\r\n this.handleAttributeSelectionChanged(e);\r\n });\r\n this.selection.on(\"attributeEnabled\", (e) => {\r\n this.handleAttributeEnabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeDisabled\", (e) => {\r\n this.handleAttributeDisabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeOptionEnabled\", (e) => {\r\n this.handleAttributeOptionEnabled(e.attributeID, e.optionID);\r\n });\r\n this.selection.on(\"attributeOptionDisabled\", (e) => {\r\n this.handleAttributeOptionDisabled(e.attributeID, e.optionID);\r\n });\r\n this.selection.attachEvents();\r\n let script = this.selection.getAllAttributeTransformationScript();\r\n yield this.viewer.executeScriptAsync(script);\r\n this.buildStructure();\r\n this.updateComposition();\r\n this.updateRecapAndExtensionField();\r\n });\r\n this.redo = () => __awaiter(this, void 0, void 0, function* () {\r\n let selection = (this.redoStack && this.redoStack.length > 0 ? this.redoStack.pop() : null);\r\n if (!selection)\r\n return;\r\n this.undoStack.push(this.selection);\r\n this.selection = selection;\r\n this.selection.on(\"attributeSelectionChanged\", (e) => {\r\n this.handleAttributeSelectionChanged(e);\r\n });\r\n this.selection.on(\"attributeEnabled\", (e) => {\r\n this.handleAttributeEnabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeDisabled\", (e) => {\r\n this.handleAttributeDisabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeOptionEnabled\", (e) => {\r\n this.handleAttributeOptionEnabled(e.attributeID, e.optionID);\r\n });\r\n this.selection.on(\"attributeOptionDisabled\", (e) => {\r\n this.handleAttributeOptionDisabled(e.attributeID, e.optionID);\r\n });\r\n this.selection.attachEvents();\r\n let script = this.selection.getAllAttributeTransformationScript();\r\n yield this.viewer.executeScriptAsync(script);\r\n this.buildStructure();\r\n this.updateComposition();\r\n this.updateRecapAndExtensionField();\r\n });\r\n this.reset = () => __awaiter(this, void 0, void 0, function* () {\r\n if (!this.initialSelection)\r\n return;\r\n this.undoStack = [];\r\n this.redoStack = [];\r\n this.selection = this.cloneSelection(this.initialSelection);\r\n this.selection.attachEvents();\r\n this.selection.on(\"attributeSelectionChanged\", (e) => {\r\n this.handleAttributeSelectionChanged(e);\r\n });\r\n this.selection.on(\"attributeEnabled\", (e) => {\r\n this.handleAttributeEnabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeDisabled\", (e) => {\r\n this.handleAttributeDisabled(e.attributeID);\r\n });\r\n this.selection.on(\"attributeOptionEnabled\", (e) => {\r\n this.handleAttributeOptionEnabled(e.attributeID, e.optionID);\r\n });\r\n this.selection.on(\"attributeOptionDisabled\", (e) => {\r\n this.handleAttributeOptionDisabled(e.attributeID, e.optionID);\r\n });\r\n let script = this.selection.getAllAttributeTransformationScript();\r\n yield this.viewer.executeScriptAsync(script);\r\n this.buildStructure();\r\n this.updateComposition();\r\n this.updateRecapAndExtensionField();\r\n });\r\n this.handleAttributeSelectionChanged = (e) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.viewer.executeActionsAsync(e.attributeID, e.selectedValue, e.actions);\r\n this.updateComposition();\r\n const attribute = this.zkProduct.get(\"attributes\").find(attribute => attribute.get('attributeID') == e.attributeID);\r\n if (attribute) {\r\n const option = attribute.get(\"options\").find(option => option.get('optionID') == e.selectedValue);\r\n if (option) {\r\n // Change platform selection\r\n let platformSelection = this.platformAttributesSelection.find(x => {\r\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.matchCodes)(x.attributeCode, attribute.get(\"attributeCode\"));\r\n });\r\n if (platformSelection) {\r\n platformSelection.optionCode = option.get(\"optionCode\");\r\n platformSelection.optionLabel = option.get(\"name\");\r\n }\r\n this.setOptionSelectionEnabled(attribute.get('attributeID'), option.get('optionID'), this.isOptionEnabled(option.get('optionID')));\r\n }\r\n }\r\n this.buildStructure();\r\n this.renderDesign();\r\n });\r\n this.handleAttributeEnabled = (attributeId) => {\r\n this.updateComposition();\r\n this.setAttributeSelectionEnabled(attributeId, true);\r\n this.buildStructure();\r\n this.renderDesign();\r\n };\r\n this.handleAttributeDisabled = (attributeId) => {\r\n this.updateComposition();\r\n this.setAttributeSelectionEnabled(attributeId, false);\r\n this.buildStructure();\r\n this.renderDesign();\r\n };\r\n this.handleAttributeOptionEnabled = (attributeId, optionId) => {\r\n this.updateComposition();\r\n this.setOptionSelectionEnabled(attributeId, optionId, true);\r\n this.buildStructure();\r\n this.renderDesign();\r\n };\r\n this.handleAttributeOptionDisabled = (attributeId, optionId) => {\r\n this.updateComposition();\r\n this.setOptionSelectionEnabled(attributeId, optionId, false);\r\n this.buildStructure();\r\n this.renderDesign();\r\n };\r\n // Set the current attribute platform selection as enabled or not\r\n this.setAttributeSelectionEnabled = (attributeId, isEnabled) => {\r\n let attribute = this.zkProduct.get(\"attributes\").find(attribute => attribute.get('attributeID') == attributeId);\r\n if (attribute) {\r\n let attributePlatformSelection = this.platformAttributesSelection.find(selection => {\r\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.matchCodes)(selection.attributeCode, attribute.get(\"attributeCode\"));\r\n });\r\n if (attributePlatformSelection) {\r\n attributePlatformSelection.attributeIsEnabled = isEnabled;\r\n }\r\n // Set all options as disabled too in platfrom attributes\r\n attribute.get(\"options\").each(option => {\r\n this.setOptionSelectionEnabled(attributeId, option.get('optionID'), isEnabled);\r\n });\r\n }\r\n };\r\n // Set the current option platform selection as enabled or not but only if it's the selected option\r\n this.setOptionSelectionEnabled = (attributeId, optionId, isEnabled) => {\r\n let attribute = this.zkProduct.get(\"attributes\").find(attribute => attribute.get('attributeID') == attributeId);\r\n if (attribute) {\r\n let option = attribute.get(\"options\").find(option => option.get('optionID') == optionId);\r\n if (option) {\r\n let attributePlatformSelection = this.platformAttributesSelection.find(selection => {\r\n return (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.matchCodes)(selection.attributeCode, attribute.get(\"attributeCode\"));\r\n });\r\n if (attributePlatformSelection && (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.matchCodes)(attributePlatformSelection.optionCode, option.get(\"optionCode\"))) {\r\n attributePlatformSelection.optionIsEnabled = isEnabled;\r\n }\r\n }\r\n }\r\n this.updateRecapAndExtensionField();\r\n };\r\n this.isOptionEnabled = (optionId) => {\r\n let enabled = false;\r\n this.selection.get(\"groups\").each(group => {\r\n group.get(\"attributes\").each(attr => {\r\n let option = attr.get(\"options\").find(x => x.id == optionId);\r\n if (option)\r\n enabled = option.get(\"enabled\");\r\n });\r\n });\r\n return enabled;\r\n };\r\n this.updateComposition = () => {\r\n this.selection.updateComposition(this.composition);\r\n this.updatePrice();\r\n };\r\n this._updatePrice = () => __awaiter(this, void 0, void 0, function* () {\r\n var price = 0;\r\n if (this.composition && this.zkProduct) {\r\n let compositionPrice = this.composition.getPrice(this.zkProduct, this.quantity);\r\n price = yield this.integration.getPrice(this.composition, this.zkCurrentTemplate, this.zkProduct, this.platformAttributesSelection, compositionPrice, this.quantity);\r\n }\r\n this.price = price;\r\n this.trigger(\"change\");\r\n });\r\n this.updatePrice = lodash__WEBPACK_IMPORTED_MODULE_0___default().debounce(this._updatePrice, 300);\r\n this.buildStructure = () => {\r\n let data = [];\r\n if (this.selection) {\r\n for (var i = 0; i < this.selection.get(\"groups\").length; i++) {\r\n var group = this.selection.get(\"groups\").at(i);\r\n var groupData = this.createGroupFromSelection(group);\r\n data.push(groupData);\r\n }\r\n data.sort((a, b) => a.displayOrder - b.displayOrder);\r\n }\r\n this.groups = data;\r\n this.trigger(\"change\");\r\n };\r\n this.createGroupFromSelection = (groupSelection) => {\r\n let zakekeGroup = this.zkProduct.get(\"attributeGroups\").get(groupSelection.get(\"groupID\"));\r\n let imageUrl = zakekeGroup ? zakekeGroup.get(\"imageUrl\") : null;\r\n let group = new _models__WEBPACK_IMPORTED_MODULE_11__.Group();\r\n group.id = zakekeGroup ? zakekeGroup.get('groupID') : -1;\r\n group.guid = zakekeGroup ? zakekeGroup.get(\"groupGuid\") : '-1';\r\n group.name = zakekeGroup ? zakekeGroup.get(\"name\") : \"Other\";\r\n group.imageUrl = imageUrl;\r\n group.enabled = true;\r\n group.cameraLocationId = zakekeGroup ? zakekeGroup.get(\"sceneCameraLocationID\") : null;\r\n group.steps = this.zkProduct.get(\"attributeSteps\")\r\n .filter(step => step.get(\"groupID\") == group.id)\r\n .map(step => this.createStep(step, groupSelection));\r\n if (zakekeGroup) {\r\n group.displayOrder = zakekeGroup.get(\"displayOrder\");\r\n group.direction = zakekeGroup.get(\"direction\");\r\n group.attributesAlwaysOpened = zakekeGroup.get(\"attributesAlwaysOpened\");\r\n }\r\n for (var i = 0; i < groupSelection.get(\"attributes\").length; i++) {\r\n let attributeSelection = groupSelection.get(\"attributes\").at(i);\r\n let zakekeAttribute = this.zkProduct.get(\"attributes\").find(attribute => attribute.get('attributeID') == attributeSelection.id);\r\n if (zakekeAttribute.get(\"stepID\") == -1) {\r\n let attribute = this.createAttributeFromSelection(attributeSelection);\r\n group.attributes.push(attribute);\r\n }\r\n }\r\n group.attributes.sort((a, b) => a.displayOrder - b.displayOrder);\r\n return group;\r\n };\r\n this.createAttributeFromSelection = (attributeSelection) => {\r\n let zakekeAttribute = this.zkProduct.get(\"attributes\").get(attributeSelection.get(\"attributeID\"));\r\n var attribute = new _models__WEBPACK_IMPORTED_MODULE_11__.Attribute();\r\n attribute.id = zakekeAttribute.get('attributeID');\r\n attribute.guid = zakekeAttribute.get(\"attributeGuid\");\r\n attribute.code = zakekeAttribute.get(\"attributeCode\");\r\n attribute.name = zakekeAttribute.get(\"name\") || '';\r\n attribute.description = zakekeAttribute.get(\"description\") || '';\r\n attribute.optionShapeType = zakekeAttribute.get(\"optionPreviewShapeID\") == 1 ? _models__WEBPACK_IMPORTED_MODULE_11__.AttributeOptionShapeType.Round : _models__WEBPACK_IMPORTED_MODULE_11__.AttributeOptionShapeType.Square;\r\n attribute.displayOrder = zakekeAttribute.get(\"displayOrder\");\r\n attribute.enabled = attributeSelection.get(\"enabled\");\r\n attribute.groupId = zakekeAttribute.get(\"groupID\");\r\n attribute.stepId = zakekeAttribute.get(\"stepID\");\r\n attribute.hideOptionsLabel = zakekeAttribute.get(\"hideOptionsLabel\");\r\n attribute.cameraLocationId = zakekeAttribute ? zakekeAttribute.get(\"sceneCameraLocationID\") : null;\r\n // Options\r\n for (var i = 0; i < attributeSelection.get(\"options\").length; i++) {\r\n let optionSelection = attributeSelection.get(\"options\").at(i);\r\n let option = this.createOptionFromSelection(optionSelection);\r\n option.attribute = attribute;\r\n attribute.options.push(option);\r\n }\r\n if (attributeSelection.get(\"attributeTypeID\") == MPlaza.AttributeType.Options) {\r\n attribute.type = _models__WEBPACK_IMPORTED_MODULE_11__.AttributeType.Select;\r\n }\r\n else if (attributeSelection.get(\"attributeTypeID\") == MPlaza.AttributeType.Color) {\r\n attribute.type = _models__WEBPACK_IMPORTED_MODULE_11__.AttributeType.Colorpicker;\r\n attribute.value = attributeSelection.get(\"selectedValue\");\r\n }\r\n else if (attributeSelection.get(\"attributeTypeID\") == MPlaza.AttributeType.Number) {\r\n attribute.type = _models__WEBPACK_IMPORTED_MODULE_11__.AttributeType.Colorpicker;\r\n attribute.value = attributeSelection.get(\"selectedValue\");\r\n attribute.numberFormat = \"\";\r\n }\r\n else if (attributeSelection.get(\"attributeTypeID\") == MPlaza.AttributeType.String) {\r\n attribute.type = _models__WEBPACK_IMPORTED_MODULE_11__.AttributeType.Colorpicker;\r\n attribute.value = attributeSelection.get(\"selectedValue\");\r\n attribute.numberFormat = \"\";\r\n }\r\n attribute.options.sort((a, b) => a.displayOrder - b.displayOrder);\r\n return attribute;\r\n };\r\n this.createOptionFromSelection = (optionSelection) => {\r\n var zakekeOption = this.zkProduct.get(\"attributes\").get(optionSelection.get(\"attributeID\")).get(\"options\").get(optionSelection.get(\"optionID\"));\r\n var option = new _models__WEBPACK_IMPORTED_MODULE_11__.Option();\r\n option.id = zakekeOption.get('optionID');\r\n option.guid = zakekeOption.get(\"optionGuid\");\r\n option.code = zakekeOption.get(\"optionCode\");\r\n option.name = zakekeOption.get(\"name\") || '';\r\n option.description = zakekeOption.get(\"description\") || '';\r\n option.imageUrl = zakekeOption.get(\"imageUrl\");\r\n option.displayOrder = zakekeOption.get(\"displayOrder\");\r\n option.selected = optionSelection.get(\"selected\");\r\n option.enabled = optionSelection.get(\"enabled\");\r\n return option;\r\n };\r\n this.saveDesignBackbone = () => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n let design = this.zkCurrentTemplate;\r\n if (!design) {\r\n resolve();\r\n return;\r\n }\r\n design.save(null, {\r\n success: (model) => {\r\n this.composition.set(\"designDocID\", model.get(\"docID\"));\r\n resolve();\r\n },\r\n error: () => {\r\n reject();\r\n },\r\n headers: {\r\n fromBackOffice: (this.isDraftEditor ? true : false)\r\n }\r\n });\r\n });\r\n });\r\n this.saveCompositionBackbone = () => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n this.composition.save(null, {\r\n success: (model, response, options) => {\r\n resolve();\r\n },\r\n error: (model, response, options) => {\r\n reject();\r\n },\r\n headers: {\r\n fromBackOffice: this.isDraftEditor ? true : false\r\n }\r\n });\r\n });\r\n });\r\n // Events \r\n this.trigger = (event, ...params) => {\r\n for (let handler of this.events.filter(x => x.event == event)) {\r\n if (handler.callback)\r\n handler.callback.apply(this, params);\r\n else\r\n console.error(\"Event handler can't be null or undefined\");\r\n }\r\n };\r\n this.on = (event, callback) => {\r\n this.events.push(new _models__WEBPACK_IMPORTED_MODULE_11__.ZakekeEvent(event, callback));\r\n };\r\n this.off = (event, callback) => {\r\n this.events = this.events.filter(x => {\r\n return x.event == event && x.callback == callback;\r\n });\r\n };\r\n this.setTemplate = (templateId) => {\r\n this.zkCurrentTemplate = this.zkTemplates.find(x => x.get(\"templateDesignID\") == templateId);\r\n this.currentTemplate = this.templates.find(x => x.id == templateId) || null;\r\n this.renderDesign();\r\n };\r\n this.getTemplateUploadRestrictictions = (templateId, areaId) => {\r\n var _a, _b, _c, _e, _f, _g, _h;\r\n const design = this.zkTemplates.find(x => x.get(\"templateDesignID\") == templateId);\r\n if (!design)\r\n throw \"Template does not exists with id \" + templateId;\r\n const designSide = design.getDesignSide(this.zkProduct.get(\"colors\").at(0).get(\"sides\").get(areaId));\r\n const getUploadRestriction = (restriction) => {\r\n var _a, _b;\r\n if (designSide && designSide.get(\"uploadRestrictions\"))\r\n return (_a = designSide.get(\"uploadRestrictions\")) === null || _a === void 0 ? void 0 : _a[restriction];\r\n else if (design.get(\"uploadRestrictions\"))\r\n (_b = design.get(\"uploadRestrictions\")) === null || _b === void 0 ? void 0 : _b[restriction];\r\n else\r\n return null;\r\n };\r\n const pdfAddonEnabled = this.settings.addons.find(x => x.addonName === 'PDF' || x.addonName === 'PDF_EPS');\r\n const epsAddonEnabled = this.settings.addons.find(x => x.addonName === 'EPS' || x.addonName === 'PDF_EPS');\r\n return {\r\n isUserImageAllowed: (_a = getUploadRestriction(\"isUserImageAllowed\")) !== null && _a !== void 0 ? _a : true,\r\n isJpgAllowed: (_b = getUploadRestriction(\"isJpgAllowed\")) !== null && _b !== void 0 ? _b : true,\r\n isPngAllowed: (_c = getUploadRestriction(\"isPngAllowed\")) !== null && _c !== void 0 ? _c : true,\r\n isSvgAllowed: (_e = getUploadRestriction(\"isSvgAllowed\")) !== null && _e !== void 0 ? _e : true,\r\n isPdfAllowed: ((_f = getUploadRestriction(\"isPdfAllowed\")) !== null && _f !== void 0 ? _f : true) && !!pdfAddonEnabled,\r\n isEpsAllowed: ((_g = getUploadRestriction(\"isEpsAllowed\")) !== null && _g !== void 0 ? _g : true) && !!epsAddonEnabled,\r\n isPdfWithRasterAllowed: ((_h = getUploadRestriction(\"isPdfWithRasterAllowed\")) !== null && _h !== void 0 ? _h : true) && !!pdfAddonEnabled\r\n };\r\n };\r\n // Get template\r\n this.getTemplates = () => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n // Fetch the design\r\n let templatesList = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.get(\"designs/templates/\" + this.zkProduct.get('modelID'))).data;\r\n let templates = [];\r\n // Build a new design\r\n if (templatesList.length > 0) {\r\n for (const _template of templatesList[0].categories[0].templates) {\r\n const template = yield this.getTemplate(_template.designID);\r\n yield (0,_fontsManager__WEBPACK_IMPORTED_MODULE_6__.downloadFontsOfDesign)(template, this.fonts);\r\n templates.push(template);\r\n }\r\n }\r\n resolve(templates);\r\n }));\r\n });\r\n // Get single template\r\n this.getTemplate = (templateId) => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n let design = new MPlaza.Design();\r\n design.set(\"docID\", templateId);\r\n design.fetch({\r\n success: () => __awaiter(this, void 0, void 0, function* () {\r\n resolve(design);\r\n }),\r\n error: () => null,\r\n data: {\r\n template: true\r\n }\r\n });\r\n design.addEventListener('change', this.updatePrice);\r\n });\r\n });\r\n // Public methods\r\n this.updateView = () => {\r\n this.viewer.updateView();\r\n };\r\n this.selectOption = (optionId) => {\r\n const clone = this.cloneSelection(this.selection);\r\n this.undoStack.push(clone);\r\n let option;\r\n let attribute;\r\n this.zkProduct.get(\"attributes\").each(attr => {\r\n let _option = attr.get(\"options\").find(option => option.get('optionID') == optionId);\r\n if (_option) {\r\n option = _option;\r\n attribute = attr;\r\n }\r\n });\r\n if (option) {\r\n // Don' t reselect it.\r\n if (option.selected)\r\n return;\r\n this.selection.selectAttributeValue(attribute.get('attributeID'), optionId);\r\n }\r\n else {\r\n throw new _exceptions__WEBPACK_IMPORTED_MODULE_5__.Exception(\"Invalid option with id \" + optionId);\r\n }\r\n };\r\n // Focus a group executing some camera movements\r\n this.focusGroup = (groupId) => {\r\n const sceneGroup = this.groups.find(x => x.id == groupId);\r\n if (sceneGroup && sceneGroup.cameraLocationId) {\r\n this.viewer.setCameraLocation(sceneGroup.cameraLocationId);\r\n this.lastCameraLocation = sceneGroup.cameraLocationId;\r\n }\r\n };\r\n this.focusAttribute = (attributeId) => __awaiter(this, void 0, void 0, function* () {\r\n const unselectedOptionsActions = this.selection.getAttributeUnselectedOptionsSceneActions(attributeId);\r\n yield this.viewer.prefetchDataForUnselectedOptionsAsync(unselectedOptionsActions);\r\n const attribute = this.zkProduct.get(\"attributes\").find(attribute => attribute.get('attributeID') == attributeId);\r\n if (attribute && attribute.get(\"sceneCameraLocationID\") && attribute.get(\"sceneCameraLocationID\") != Zakeke.getEmptyUUID()) {\r\n this.viewer.setCameraLocation(attribute.get(\"sceneCameraLocationID\"));\r\n this.lastCameraLocation = attribute.get(\"sceneCameraLocationID\");\r\n }\r\n });\r\n this.base64StringToFile = (base64String, filename) => {\r\n var arr = base64String.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new File([u8arr], filename, { type: mime });\r\n };\r\n this.addToCart = (additionalProperties, onBeforeSendDataToParent, legacyScreenshot) => __awaiter(this, void 0, void 0, function* () {\r\n var _k;\r\n yield this.setExplodedMode(false);\r\n this.composition.set(\"compositionClientPreviews\", []);\r\n const compositionClientPreviews = [];\r\n let sortedBuyScreenshotCameras = [];\r\n const buyScreenshotCameras = (_k = this.zkScene) === null || _k === void 0 ? void 0 : _k.get(\"cameraLocations\").filter(x => { var _a; return ((_a = x.get(\"name\")) === null || _a === void 0 ? void 0 : _a.toLowerCase().indexOf(\"buy_screenshot_camera_\")) !== -1; });\r\n if (buyScreenshotCameras)\r\n sortedBuyScreenshotCameras = lodash__WEBPACK_IMPORTED_MODULE_0___default().sortBy(buyScreenshotCameras, a => { return a.get(\"name\"); });\r\n if (sortedBuyScreenshotCameras && sortedBuyScreenshotCameras.length > 0) {\r\n for (const camera of sortedBuyScreenshotCameras) {\r\n const preview = yield this.viewer.getSceneContentScreenshotAsync(this.clientPreviewWidth, this.clientPreviewHeight, 0, this.zkCurrentTemplate, legacyScreenshot, camera);\r\n const formData = new FormData();\r\n const file = this.base64StringToFile(preview, camera + \".png\");\r\n formData.set(\"file\", file);\r\n const previewCameraFile = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.post(Zakeke.config.baseApiUrl + \"designs/upload-client-preview\", formData)).data;\r\n compositionClientPreviews.push({ fileObjectID: previewCameraFile.id, cameraName: camera.get(\"name\"), url: previewCameraFile.url });\r\n yield (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.sleep)(1);\r\n }\r\n this.composition.set(\"compositionClientPreviews\", compositionClientPreviews);\r\n }\r\n if (this.composition.get(\"isDraft\") && !this.isDraftEditor) {\r\n this.composition.set(\"docID\", null);\r\n this.composition.set(\"designDocID\", null);\r\n this.composition.set(\"isDraft\", false);\r\n if (this.zkCurrentTemplate)\r\n this.zkCurrentTemplate.set(\"docID\", null);\r\n }\r\n // Save composition\r\n yield this.saveComposition(undefined, legacyScreenshot);\r\n if (onBeforeSendDataToParent) {\r\n yield onBeforeSendDataToParent({\r\n composition: this.composition.id,\r\n preview: this.composition.get('previewImageUrl'),\r\n attributes: this.platformAttributesSelection,\r\n designItems: this.getDesignItemsInfo(),\r\n quantity: this.quantity,\r\n additionalProperties\r\n });\r\n }\r\n // Add to cart\r\n this.integration.addToCart(this.composition, this.zkCurrentTemplate, this.zkProduct, this.platformAttributesSelection, this.getDesignItemsInfo(), this.quantity, additionalProperties);\r\n });\r\n this.zoomIn = () => {\r\n if (this.viewer)\r\n this.viewer.zoomIn();\r\n };\r\n this.zoomOut = () => {\r\n if (this.viewer)\r\n this.viewer.zoomOut();\r\n };\r\n this.isFullscreenEnabled = () => {\r\n return !_helpers__WEBPACK_IMPORTED_MODULE_7__.iOS;\r\n };\r\n this.switchFullscreen = () => {\r\n let interval = null;\r\n this.viewer.switchFullScreen(document.getElementById(\"zakeke-viewer-container\"));\r\n if (!interval) {\r\n //eslint-disable-next-line\r\n interval = setInterval(() => {\r\n if (this.isFullscreenMode && this.internalIsFullscreen == false) {\r\n setTimeout(() => {\r\n this.viewer.updateView();\r\n this.internalIsFullscreen = true;\r\n console.info(\"Fullscreen enabled\");\r\n }, 10);\r\n }\r\n if (!this.isFullscreenMode && this.internalIsFullscreen == true) {\r\n clearInterval(interval);\r\n interval = null;\r\n setTimeout(() => __awaiter(this, void 0, void 0, function* () {\r\n this.internalIsFullscreen = false;\r\n // Update layout for two seconds\r\n yield this.extendedUpdate();\r\n this.viewer.updateView();\r\n console.info(\"Fullscreen disabled\");\r\n }), 10);\r\n }\r\n }, 100);\r\n }\r\n };\r\n this.openSecondScreen = () => {\r\n const url = Zakeke.config.baseUrl + \"en/SecondScreen?token=\" + this.token + \"&modelID=\" + this.zkProduct.get('modelID');\r\n window.open(url);\r\n };\r\n this.extendedUpdate = () => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n let count = 0;\r\n let interval = setInterval(() => {\r\n this.viewer.updateView();\r\n if (++count > 20) { // After two seconds\r\n clearInterval(interval);\r\n resolve();\r\n }\r\n }, 100);\r\n });\r\n });\r\n this.exportSceneToUsdz = (hash) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer && this.viewer.zkScene)\r\n return this.viewer.exportSceneToUsdzAsync(this.viewer.zkScene.get(\"sceneID\"), hash);\r\n });\r\n this.exportSceneToGlb = () => __awaiter(this, void 0, void 0, function* () {\r\n return this.viewer.exportSceneToLocalGLBAsync();\r\n });\r\n this.setExplodedMode = (explodedMode) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n if (explodedMode)\r\n yield this.viewer.explodeMeshes();\r\n else\r\n yield this.viewer.collapseMeshes();\r\n }\r\n this.isExplodedMode = explodedMode;\r\n });\r\n this.hasExplodedMode = () => {\r\n let zkScene = this.zkScene;\r\n if (zkScene)\r\n return !!zkScene.getFirstExplodedMeshLocation();\r\n else\r\n return false;\r\n };\r\n this.setBackgroundColor = (color, alpha) => {\r\n let zkScene = this.zkScene;\r\n if (color.indexOf(\"rgb\") == 0) {\r\n let values = color.replace(\"rgb(\", \"\").replace(\")\", \"\").split(\",\");\r\n color = (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.rgb2hex)(values[0], values[1], values[2]);\r\n }\r\n if (this.viewer && zkScene) {\r\n zkScene.getOrCreateEnvironmentConfig().set(\"mainColor\", color);\r\n zkScene.getOrCreateGeneralConfig().set(\"backgroundColor\", color);\r\n zkScene.getOrCreateGeneralConfig().set(\"backgroundAlpha\", alpha);\r\n this.viewer.refreshEnvironment();\r\n }\r\n };\r\n this.getCurrentSelection = () => {\r\n return lodash__WEBPACK_IMPORTED_MODULE_0___default().cloneDeep(this.platformAttributesSelection);\r\n };\r\n this.getScreenshot = (width = 1024, height = 1024, legacyScreenshot, backgroundColor = null, padding = 0) => __awaiter(this, void 0, void 0, function* () {\r\n let url = yield this.viewer.getSceneContentScreenshotAsync(width, height, padding, this.zkCurrentTemplate, legacyScreenshot);\r\n if (!url)\r\n throw new Error('Failed generating screenshot');\r\n if (backgroundColor) {\r\n yield new Promise(resolve => {\r\n const img = new Image();\r\n img.onload = () => {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n const ctx = canvas.getContext(\"2d\");\r\n if (ctx) {\r\n ctx.fillStyle = backgroundColor;\r\n ctx.fillRect(0, 0, img.width, img.height);\r\n ctx.drawImage(img, 0, 0);\r\n url = canvas.toDataURL();\r\n resolve();\r\n }\r\n };\r\n img.src = url;\r\n });\r\n }\r\n return url;\r\n });\r\n this.fireItemsChange = () => {\r\n this.trigger(\"change\");\r\n };\r\n this.removeItem = (guid) => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => {\r\n if (this.viewer) {\r\n this.viewer.removeDesignItem(guid);\r\n this.fireItemsChange();\r\n resolve();\r\n }\r\n else {\r\n reject(\"Called remove item but no viewer or viewer not ready\");\r\n }\r\n });\r\n });\r\n this.setItemText = (guid, text) => {\r\n if (this.viewer) {\r\n this.viewer.setDesignItemText(guid, text);\r\n }\r\n else\r\n throw \"Called set item text but no viewer or viewer not ready\";\r\n };\r\n this.setItemItalic = (guid, italic) => {\r\n if (this.viewer) {\r\n this.viewer.setDesignItemItalic(guid, italic);\r\n }\r\n else\r\n throw \"Called set item italic but no viewer or viewer not ready\";\r\n };\r\n this.setItemBold = (guid, bold) => {\r\n if (this.viewer) {\r\n this.viewer.setDesignItemBold(guid, bold);\r\n }\r\n else\r\n throw \"Called set item bold but no viewer or viewer not ready\";\r\n };\r\n this.setItemColor = (guid, color) => {\r\n if (this.viewer) {\r\n this.viewer.setDesignItemColor(guid, color);\r\n }\r\n else\r\n throw \"Called set item color but no viewer or viewer not ready\";\r\n };\r\n this.setItemFontFamily = (guid, fontFamily) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n const font = this.fonts.find(x => x.name === fontFamily);\r\n if (font) {\r\n yield (0,_fontsManager__WEBPACK_IMPORTED_MODULE_6__.loadFonts)([font]);\r\n this.viewer.setDesignItemFontFamily(guid, fontFamily);\r\n this.fireItemsChange();\r\n }\r\n else {\r\n console.warn(`No font found for ${fontFamily}`);\r\n }\r\n }\r\n else\r\n throw \"Called set item font family but no viewer or viewer not ready\";\r\n });\r\n this.setItemTextOnPath = (guid, areaId, value) => {\r\n if (this.viewer) {\r\n this.viewer.setItemTextOnPath(guid, areaId, value);\r\n this.fireItemsChange();\r\n }\r\n else\r\n throw \"Called toggleItemTextOnPath but no viewer or viewer not ready\";\r\n };\r\n this.createImage = (file, progress) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n const imageTask = new _imageUploadTask__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.culture, this.token);\r\n const result = yield imageTask.upload(file, progress);\r\n const image = result ? result[0] : null;\r\n return image;\r\n }\r\n else\r\n throw \"Called create image but no viewer or viewer not ready\";\r\n });\r\n this.createImageFromUrl = (url) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n const result = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.post(Zakeke.config.baseApiUrl + \"images/import/url\", {\r\n url\r\n })).data;\r\n return result;\r\n }\r\n else\r\n throw \"Called create image from url but no viewer or viewer not ready\";\r\n });\r\n this.addItemImage = (id, areaId) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n yield this.viewer.addDesignItemImage(id, areaId);\r\n yield this.renderDesign();\r\n this.fireItemsChange();\r\n }\r\n else\r\n throw \"Called add item text but no viewer or viewer not ready\";\r\n });\r\n this.setItemImageFromFile = (guid, file, progress) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n const image = yield this.createImage(file, progress);\r\n yield this.setItemImage(guid, image.imageID);\r\n this.fireItemsChange();\r\n }\r\n else\r\n throw \"Called set item image but no viewer or viewer not ready\";\r\n });\r\n // For preview only!!\r\n this.setItemImageFromBase64 = (guid, base64) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n const image = new MPlaza.Image();\r\n image.set(\"imageID\", -1);\r\n image.set(\"previewUrl\", base64);\r\n yield this.viewer.setDesignItemImage(guid, image);\r\n this.fireItemsChange();\r\n }\r\n else\r\n throw \"Called set item image but no viewer or viewer not ready\";\r\n });\r\n this.setItemImage = (guid, id) => __awaiter(this, void 0, void 0, function* () {\r\n return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\r\n if (this.viewer) {\r\n const image = new MPlaza.Image();\r\n image.set(\"imageID\", id);\r\n image.fetch({\r\n success: (model, response, opts) => __awaiter(this, void 0, void 0, function* () {\r\n yield this.viewer.setDesignItemImage(guid, image);\r\n this.fireItemsChange();\r\n resolve();\r\n }),\r\n error: (model, response, opts) => null\r\n });\r\n }\r\n else {\r\n throw \"Called set item image but no viewer or viewer not ready\";\r\n }\r\n }));\r\n });\r\n this.getMacroCategories = () => __awaiter(this, void 0, void 0, function* () {\r\n let macroCategories = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.get(Zakeke.config.baseApiUrl + \"imagemacrocategories/\")).data;\r\n macroCategories = macroCategories.filter(x => x.hasImages);\r\n for (let macroCategory of macroCategories)\r\n macroCategory.categories = macroCategory.categories.filter(x => x.hasImages);\r\n return macroCategories;\r\n });\r\n this.getImages = (categoryId) => __awaiter(this, void 0, void 0, function* () {\r\n return (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.get(Zakeke.config.baseApiUrl + \"images/\", {\r\n params: {\r\n type: 'lib',\r\n c: categoryId\r\n }\r\n })).data;\r\n });\r\n this.getPDF = () => __awaiter(this, void 0, void 0, function* () {\r\n var _l;\r\n const data = yield this.getScreenshot(2048, 2048);\r\n const items = this.getDesignItemsInfo();\r\n const areas = (_l = this.product) === null || _l === void 0 ? void 0 : _l.areas.filter(x => this.isAreaVisible(x.id)).map(x => ({\r\n name: x.name,\r\n textItems: items.filter(i => i.areaId == x.id && i.type === ___WEBPACK_IMPORTED_MODULE_1__.ItemType.Text)\r\n })).filter(x => x.textItems.length > 0);\r\n const selectedOptions = this.platformAttributesSelection.filter(x => x.attributeIsEnabled && x.attributeIsEnabled).map(({ attributeLabel, attributeCode, optionCode, optionLabel }) => ({\r\n attributeLabel,\r\n attributeCode: !(0,_helpers__WEBPACK_IMPORTED_MODULE_7__.isPlatformCode)(attributeCode) ? attributeCode : '',\r\n optionLabel,\r\n optionCode: !(0,_helpers__WEBPACK_IMPORTED_MODULE_7__.isPlatformCode)(optionCode) ? optionCode : '',\r\n }));\r\n const params = {\r\n environment: 2,\r\n productName: this.zkProduct.get('name'),\r\n previewImage: data,\r\n sides: [],\r\n areas,\r\n selectedOptions,\r\n };\r\n const pdf = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.post(Zakeke.config.baseApiUrl + \"previewdesigns/pdf\", params, {\r\n transformResponse: (res) => res,\r\n responseType: \"text\"\r\n })).data.replace(/\"/g, \"\");\r\n return pdf;\r\n });\r\n this.rewriteShareUrl = (url) => {\r\n const path = url.split(\"/SharedPreview\")[1];\r\n if (this.shareUrlPrefix) {\r\n return this.shareUrlPrefix + path;\r\n }\r\n if (document.referrer && this.settings.referrerID === 2) {\r\n const regex = /(apps\\/configurator\\/)(.*)/gms;\r\n let firstPart = document.referrer.replace(regex, '$1');\r\n if (!firstPart.endsWith('\\/'))\r\n firstPart += '/';\r\n return firstPart + path;\r\n }\r\n return url;\r\n };\r\n this.getShareCompositionUrl = () => __awaiter(this, void 0, void 0, function* () {\r\n // salvo (e riassegno dopo la creazione dello share url) l'id , per evitare problemi in caso di add to cart e edit\r\n // in questo modo ogni composizione condivisa è sempre diversa da quella di partenza\r\n var _m;\r\n const isDraft = (_m = this.composition.get(\"isDraft\")) !== null && _m !== void 0 ? _m : false;\r\n this.composition.set(\"isDraft\", false);\r\n const docID = yield this.saveCompositionCopy();\r\n this.composition.set(\"isDraft\", isDraft);\r\n const result = yield this.integration.getSharedCompositionUrl(docID);\r\n //link for local test\r\n //const result = \"https://localhost:44363/scripts/composer/Themes/DefaultTheme/public/index.html?name=Test%20Elena%203D&modelCode=65¤cy=EUR&ecommerce=preview&qty=1&culture=en-US&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiU2VsbGVyIiwiUGVybUJpdHMiOiIwMTAwMTExMDAxMTAwMTExMTExMTAxIiwidW5pcXVlX25hbWUiOiJuaWNvbGV0dG8iLCJVc2VySUQiOiIyNCIsIlVzZXJOYW1lIjoibmljb2xldHRvIiwiZW1haWwiOiJuLmJpenpvY2FAZnV0dXJlbmV4dC5pdCIsIlVzZXJUeXBlSUQiOiIzIiwiSXNzdWVEYXRlIjoiMDgtMDctMjAyMiAwOC0xMi01OFoiLCJVc2VyVmVyc2lvbiI6IjIwMjIwNzA3MTczOTU4IiwiY2xpZW50SUQiOiIyNjM0Iiwic2FsZXNDaGFubmVsSUQiOiIxIiwiY3VzdG9tZXJjb2RlIjoidGVzdCBjdXN0b21lciIsImFjY2Vzc1R5cGUiOiJTMlMiLCJuYmYiOjE2NTcyNjc5NzgsImV4cCI6MTY1NzM1NDM3OCwiaWF0IjoxNjU3MjY3OTc4LCJpc3MiOiJ3d3cuemFrZWtlLmNvbSIsImF1ZCI6Imh0dHBzOi8vd3d3Lnpha2VrZS5jb20ifQ.jQynLW6sZi3mtk5f05DaebVKfcwtbSyPT_JMd1HDM88&fromUrl=1&viewerMode=1&sharedCompositionDocId=\"+ docID;\r\n return result.url;\r\n });\r\n this.saveCompositionCopy = () => __awaiter(this, void 0, void 0, function* () {\r\n let docId = null;\r\n let designDocId = null;\r\n let currentTemplate = this.zkCurrentTemplate;\r\n if (currentTemplate) {\r\n designDocId = currentTemplate.get(\"docID\");\r\n currentTemplate.set(\"docID\", null);\r\n }\r\n docId = this.composition.get(\"docID\");\r\n this.composition.set(\"docID\", null);\r\n this.composition.set(\"designDocID\", null);\r\n yield this.saveComposition();\r\n const newCompositionDocId = this.composition.get(\"docID\");\r\n this.composition.set(\"docID\", docId);\r\n this.composition.set(\"designDocID\", designDocId);\r\n if (currentTemplate)\r\n currentTemplate.set(\"docID\", designDocId);\r\n return newCompositionDocId;\r\n });\r\n this.getOnlineScreenshot = (width, height, legacyScreenshot, backgroundColor, padding = 30) => __awaiter(this, void 0, void 0, function* () {\r\n const preview = yield this.getScreenshot(width, height, legacyScreenshot, backgroundColor, padding);\r\n const { url: originalUrl } = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.post(Zakeke.config.baseApiUrl + \"designs/save-share-preview\", { preview })).data;\r\n const rewrittenUrl = this.rewriteShareUrl(originalUrl);\r\n return {\r\n originalUrl,\r\n rewrittenUrl,\r\n };\r\n });\r\n // AR - Augmented Reality\r\n this.isSceneArOnTheFly = () => {\r\n var _a;\r\n if (this.viewer)\r\n return (_a = this.zkScene) === null || _a === void 0 ? void 0 : _a.getArOnTheFly();\r\n return false;\r\n };\r\n this.isArDeviceCompliant = () => _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_AR_DEVICE_COMPLIANT;\r\n this.isAndroidOrIOS = () => (_helpers__WEBPACK_IMPORTED_MODULE_7__.IS_ANDROID || _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_IOS);\r\n this.isAndroid = _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_ANDROID;\r\n this.isIOS = _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_IOS;\r\n this.buildModelViewerUrl = (fileInfos) => {\r\n const url = Zakeke.config.baseUrl + \"ModelViewer\";\r\n const link = new URL(url);\r\n let search = \"\";\r\n for (const file of fileInfos) {\r\n if (file.format && file.arFileUrl) {\r\n const encodedUrl = encodeURIComponent(file.arFileUrl);\r\n let searchFile = '';\r\n switch (file.format) {\r\n case \"gltf\":\r\n case \"glb\":\r\n searchFile = \"gltf=\" + encodedUrl;\r\n break;\r\n case \"usdz\":\r\n searchFile = \"usdz=\" + encodedUrl;\r\n break;\r\n case \"png\":\r\n searchFile = \"poster=\" + encodedUrl;\r\n break;\r\n }\r\n if (searchFile)\r\n search += (search ? '&' : '') + searchFile;\r\n }\r\n }\r\n search += '&arScale=' + (this.zkScene.getARScale() ? 1 : 0);\r\n link.search += search;\r\n const pageUrl = link.toString();\r\n return pageUrl;\r\n };\r\n this.isSceneArEnabled = () => {\r\n if (this.zkScene)\r\n return this.zkScene.getAREnabled() || false;\r\n return false;\r\n };\r\n this.getPregeneratedARUrl = (fileType) => {\r\n var _a, _b, _c;\r\n return (_c = (_b = (_a = this.zkScene) === null || _a === void 0 ? void 0 : _a.get('arFiles')) === null || _b === void 0 ? void 0 : _b.find(x => x.get('fileType') == fileType)) === null || _c === void 0 ? void 0 : _c.get('url');\r\n };\r\n this.getQrCodeArUrl = (device) => __awaiter(this, void 0, void 0, function* () {\r\n let fileInfos = [];\r\n if (device == 'Android') {\r\n const url = this.getPregeneratedARUrl('glb') || (yield this.viewer.exportSceneToRemoteGLBAsync());\r\n fileInfos = [{ format: \"gltf\", arFileUrl: url }];\r\n }\r\n else {\r\n const glb = this.getPregeneratedARUrl('glb');\r\n const usdz = this.getPregeneratedARUrl('usdz');\r\n if (glb && usdz)\r\n fileInfos = [\r\n { format: \"glb\", arFileUrl: glb },\r\n { format: \"usdz\", arFileUrl: usdz }\r\n ];\r\n else\r\n fileInfos = yield this.viewer.exportSceneToARAsync();\r\n }\r\n return this.buildModelViewerUrl(fileInfos);\r\n });\r\n this.getMobileArUrl = (onFlyArUrl) => __awaiter(this, void 0, void 0, function* () {\r\n let url = null;\r\n if (this.isSceneArOnTheFly()) {\r\n url = yield this.getMobileLocalArUrl(onFlyArUrl);\r\n }\r\n else {\r\n if (_helpers__WEBPACK_IMPORTED_MODULE_7__.IS_IOS) {\r\n url = yield this.viewer.exportSceneToUsdzAsync(this.zkScene.get(\"sceneID\"), this.selection.getCompositionHashCode());\r\n }\r\n else {\r\n url = yield this.viewer.exportSceneToRemoteGLBAsync(this.zkScene.get(\"sceneID\"), this.selection.getCompositionHashCode());\r\n }\r\n }\r\n return url;\r\n });\r\n this.getMobileLocalArUrl = (onFlyArUrl) => {\r\n return new Promise(resolve => {\r\n if (this.zkScene && this.viewer) {\r\n const fileId = this.zkScene.getSceneID();\r\n this.viewer.getSceneRootUrl().then((rootUrl) => __awaiter(this, void 0, void 0, function* () {\r\n if (!rootUrl)\r\n return;\r\n if (_helpers__WEBPACK_IMPORTED_MODULE_7__.IS_IOS) {\r\n const url = yield this.viewer.exportSceneToLocalUSDZAsync();\r\n if (!url) {\r\n (0,lodash__WEBPACK_IMPORTED_MODULE_0__.reject)(url);\r\n }\r\n else {\r\n resolve(url);\r\n }\r\n }\r\n else {\r\n if (!onFlyArUrl)\r\n throw new Error(\"no url defined for the ar on fly\");\r\n this.viewer.saveGlbOnDatabaseAsync(fileId).then(() => {\r\n const link = new URL(onFlyArUrl);\r\n let search = \"id=\" + fileId;\r\n search += '&rootUrl=' + encodeURIComponent(rootUrl);\r\n search += '&productId=' + this.product.id;\r\n search += '&environment=' + this.product.environment;\r\n search += '&token=' + this.token;\r\n link.search += search;\r\n const pageUrl = link.toString();\r\n resolve(pageUrl);\r\n });\r\n }\r\n }));\r\n }\r\n });\r\n };\r\n this.openArMobile = (url) => {\r\n if (this.viewer && this.zkScene) {\r\n if (this.isSceneArOnTheFly() && _helpers__WEBPACK_IMPORTED_MODULE_7__.IS_ANDROID)\r\n window.open(url);\r\n else if (_helpers__WEBPACK_IMPORTED_MODULE_7__.IS_IOS) {\r\n if (url && !this.zkScene.getARScale())\r\n url += '#allowsContentScaling=0';\r\n const anchor = document.createElement('a');\r\n anchor.setAttribute('rel', 'ar');\r\n anchor.setAttribute('href', url);\r\n anchor.appendChild(document.createElement('img'));\r\n anchor.click();\r\n }\r\n else if (_helpers__WEBPACK_IMPORTED_MODULE_7__.IS_ANDROID) {\r\n _3D_src__WEBPACK_IMPORTED_MODULE_2__.AndroidAR.openSceneViewer(url, () => {\r\n alert('Device not supported.');\r\n }, this.zkScene.getARScale());\r\n }\r\n }\r\n };\r\n this.registerView = () => __awaiter(this, void 0, void 0, function* () {\r\n if (!this.zkProduct || this.isViewerMode)\r\n return;\r\n try {\r\n yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.post(Zakeke.config.baseApiUrl + 'viewscount/addview', {\r\n productID: this.zkProduct.get('modelID'),\r\n environment: this.zkProduct.get('environment'),\r\n ecommerceID: this.settings.ecommerceID\r\n });\r\n }\r\n catch (ex) {\r\n console.error('Failed registering view', ex);\r\n }\r\n });\r\n // Manipulate scene\r\n this.getMeshIDbyName = (name) => {\r\n var _a, _b;\r\n return (_b = (_a = this.viewer) === null || _a === void 0 ? void 0 : _a.getMeshByName(name)) === null || _b === void 0 ? void 0 : _b.id;\r\n };\r\n /**\r\n * Hide a mesh and its children and save the state\r\n * @param meshId The mesh and childs to hide\r\n */\r\n this.hideMeshAndSaveState = (meshId) => {\r\n if (this.viewer.scene) {\r\n const rootMesh = this.viewer.getMeshByID(meshId);\r\n // Add mesh and all submesh visibility to previousMeshVisibileStates\r\n if (rootMesh) {\r\n const meshes = [rootMesh, ...rootMesh.getChildMeshes()];\r\n for (const mesh of meshes) {\r\n this.previousMeshesVisibleStates[mesh.id] = mesh.isVisible;\r\n mesh.isVisible = false;\r\n }\r\n this.viewer.setRenderingNeeded();\r\n }\r\n }\r\n };\r\n /**\r\n * Restore a mesh visibility state from a previous saved one (see hideMeshAndSaveState)\r\n * @param meshId The mesh and childs to show\r\n */\r\n this.restoreMeshVisibility = (meshId) => {\r\n if (this.viewer.scene) {\r\n const rootMesh = this.viewer.getMeshByID(meshId);\r\n // Add mesh and all submesh visibility to previousMeshVisibileStates\r\n if (rootMesh && this.previousMeshesVisibleStates[rootMesh.id] !== undefined) {\r\n const meshes = [rootMesh, ...rootMesh.getChildMeshes()];\r\n for (const mesh of meshes) {\r\n mesh.isVisible = this.previousMeshesVisibleStates[mesh.id];\r\n delete this.previousMeshesVisibleStates[mesh.id];\r\n }\r\n this.viewer.setRenderingNeeded();\r\n }\r\n }\r\n };\r\n /**\r\n * Change opacity for a specific mesh\r\n * @param meshId The mesh to change the opacity\r\n * @param opacity The opacity to set\r\n */\r\n this.setMeshDesignVisibility = (meshId, visible) => {\r\n if (this.viewer) {\r\n this.viewer.setDesignVisibility(meshId, visible);\r\n this.viewer.setRenderingNeeded();\r\n }\r\n };\r\n // Events\r\n this.addFocusAttributesListener = (listenerFunction) => {\r\n if (this.viewer)\r\n this.viewer.addFocusAttributesListener(listenerFunction);\r\n };\r\n this.clearListeners = () => {\r\n if (this.viewer)\r\n this.viewer.clearListeners();\r\n };\r\n this.setCameraLocked = (isBlocked) => {\r\n return this.viewer.setCameraLocked(isBlocked);\r\n };\r\n this.isSceneTryOnEnabled = () => {\r\n var _a;\r\n if (this.viewer)\r\n if (this.zkScene)\r\n return (_a = this.zkScene.getTryOnEnabled()) !== null && _a !== void 0 ? _a : false;\r\n return false;\r\n };\r\n this.getTryOnUrl = (tryOnUrl) => {\r\n return new Promise(resolve => {\r\n if (this.zkScene && this.viewer) {\r\n const fileId = this.zkScene.getSceneID();\r\n this.viewer.getSceneRootUrl().then((rootUrl) => {\r\n if (!rootUrl)\r\n return;\r\n const attachmentPoint = 'noseBridge';\r\n // Salvo le mesh su IndexedDB\r\n this.viewer.saveVisibleMeshesOnDatabaseAsync(fileId).then(() => {\r\n const url = tryOnUrl !== null && tryOnUrl !== void 0 ? tryOnUrl : \"https://zakekecdn.blob.core.windows.net/cdn/c/tryon/index.html\";\r\n const link = new URL(url);\r\n let search = \"id=\" + fileId;\r\n search += '&rootUrl=' + encodeURIComponent(rootUrl);\r\n search += '&attachmentPoint=' + attachmentPoint;\r\n search += '&productId=' + this.zkProduct.get('modelID');\r\n search += '&environment=' + this.zkProduct.get('environment');\r\n search += '&token=' + this.token;\r\n link.search += search;\r\n const pageUrl = link.toString();\r\n resolve(pageUrl);\r\n });\r\n });\r\n }\r\n });\r\n };\r\n this.getDisableTextColors = () => {\r\n var _a, _b;\r\n try {\r\n let disableTextColors = (_b = (_a = this.zkProduct.get(\"printTypes\").at(0).get(\"printTypeRestrictions\")) === null || _a === void 0 ? void 0 : _a.get(\"disableTextColors\")) !== null && _b !== void 0 ? _b : false;\r\n return disableTextColors;\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n throw \"Failed loading restrictions\";\r\n }\r\n };\r\n this.getTextColors = () => {\r\n var _a, _b;\r\n try {\r\n let textColors = (_b = (_a = this.zkProduct.get(\"printTypes\").at(0).get(\"printTypeRestrictions\")) === null || _a === void 0 ? void 0 : _a.get(\"textColors\")) !== null && _b !== void 0 ? _b : [];\r\n let defaultColor = { colorCode: this.defaultColor, isDefault: true };\r\n if (!textColors.find(color => color.colorCode === defaultColor.colorCode))\r\n textColors.push(defaultColor);\r\n return textColors;\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n throw \"Failed loading restrictions\";\r\n }\r\n };\r\n this.getDefaultColor = () => {\r\n var _a, _b;\r\n try {\r\n let defaultColor = (_b = (_a = this.zkProduct.get(\"printTypes\").at(0).get(\"printTypeRestrictions\")) === null || _a === void 0 ? void 0 : _a.get(\"defaultColor\")) !== null && _b !== void 0 ? _b : '#000000';\r\n return defaultColor;\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n throw \"Failed loading restrictions\";\r\n }\r\n };\r\n this.saveComposition = (customPreviewSize, legacyScreenshot) => __awaiter(this, void 0, void 0, function* () {\r\n var _o, _p, _q;\r\n console.log(\"Saving...\");\r\n const buyScreenshotCamera = (_o = this.zkScene) === null || _o === void 0 ? void 0 : _o.get(\"cameraLocations\").find(x => { var _a; return ((_a = x.get(\"name\")) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === \"buy_screenshot_camera\"; });\r\n if (!buyScreenshotCamera)\r\n this.viewer.restoreCameraState();\r\n yield (0,_helpers__WEBPACK_IMPORTED_MODULE_7__.sleep)(1);\r\n // Save image\r\n const data = yield this.viewer.getSceneContentScreenshotAsync((_p = customPreviewSize === null || customPreviewSize === void 0 ? void 0 : customPreviewSize.customCartPreviewHeight) !== null && _p !== void 0 ? _p : this.previewWidth, (_q = customPreviewSize === null || customPreviewSize === void 0 ? void 0 : customPreviewSize.customCartPreviewWidth) !== null && _q !== void 0 ? _q : this.previewHeight, 0, this.zkCurrentTemplate, legacyScreenshot, buyScreenshotCamera);\r\n this.composition.set(\"previewImageData\", data);\r\n // Save composition\r\n yield this.saveDesignBackbone();\r\n yield this.saveCompositionBackbone();\r\n console.log(\"Composition saved!\");\r\n });\r\n this.bootstrapComposition = (composition) => __awaiter(this, void 0, void 0, function* () {\r\n this.selection = Zakeke.ComposerSelection.CreateComposerSelection(this.zkProduct);\r\n this.composition = composition;\r\n yield this.internalLoadComposition(this.composition.id);\r\n if (!this.currentCompositionInfo)\r\n this.currentCompositionInfo = {\r\n compositionId: \"\",\r\n compositionName: \"\",\r\n compositionTags: []\r\n };\r\n this.currentCompositionInfo.compositionId = this.compositionId;\r\n this.currentCompositionInfo.compositionName = this.composition.get(\"name\");\r\n this.currentCompositionInfo.compositionTags = this.composition.get(\"tags\");\r\n });\r\n this.loadSavedComposition = (docID) => __awaiter(this, void 0, void 0, function* () {\r\n var _r;\r\n const composition = (_r = this.savedCompositions) === null || _r === void 0 ? void 0 : _r.find(x => x.docID == docID);\r\n if (composition)\r\n yield this.bootstrapComposition(new MPlaza.Composition(composition));\r\n });\r\n this.updateSavedCompositions = () => __awaiter(this, void 0, void 0, function* () {\r\n const savedCompositions = (yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi.get(`compositiondocs/product/${this.zkProduct.get(\"modelID\")}`, {\r\n params: {\r\n draft: true\r\n }\r\n })).data;\r\n this.savedCompositions = savedCompositions;\r\n if (savedCompositions) {\r\n const themeCompositions = this.themeCompositionsFromSavedCompositions(savedCompositions);\r\n this.themeCompositions = themeCompositions;\r\n }\r\n this.trigger(\"change\");\r\n });\r\n this.themeCompositionsFromSavedCompositions = (compositions) => {\r\n const themeCompositions = compositions.map(composition => {\r\n return {\r\n name: composition.name,\r\n docID: composition.docID,\r\n previewImageUrl: composition.previewImageUrl,\r\n tags: composition.tags\r\n };\r\n });\r\n return themeCompositions;\r\n };\r\n this.saveDraftsComposition = (name, tags, isCopy) => __awaiter(this, void 0, void 0, function* () {\r\n this.composition.set(\"name\", name);\r\n this.composition.set(\"tags\", tags);\r\n this.composition.set(\"isDraft\", true);\r\n if (isCopy)\r\n yield this.saveCompositionCopy();\r\n else\r\n yield this.saveComposition(undefined);\r\n return this.updateSavedCompositions();\r\n });\r\n this.deleteSavedComposition = (docId) => __awaiter(this, void 0, void 0, function* () {\r\n yield _api__WEBPACK_IMPORTED_MODULE_4__.axiosApi[\"delete\"](`compositiondocs/${docId}/`);\r\n this.updateSavedCompositions();\r\n });\r\n }\r\n get internalProduct() {\r\n return this.zkProduct;\r\n }\r\n get internalScene() {\r\n return this.zkScene;\r\n }\r\n get internalCurrentTemplate() {\r\n return this.zkCurrentTemplate;\r\n }\r\n get isFullscreenMode() {\r\n let doc = document;\r\n return Boolean(doc.fullscreenElement ||\r\n doc.webkitFullscreenElement ||\r\n doc.mozFullScreenElement ||\r\n doc.msFullscreenElement);\r\n }\r\n get isViewerReady() {\r\n return !!this.viewer;\r\n }\r\n addHotjarScript(siteID) {\r\n if (siteID && siteID.length > 0 && this.platform && this.platform.toLowerCase() !== \"preview\") {\r\n var script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.innerHTML =\r\n `(function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n h._hjSettings={hjid:${siteID},hjsv:6};\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');`;\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n }\r\n }\r\n addGoogleTagManagerID(siteID) {\r\n if (siteID && siteID.length > 0 && this.platform && this.platform.toLowerCase() !== \"preview\") {\r\n $('head').append(\"