@babylonjs/gui-editor 5.0.0-beta.3 → 5.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10165,7 +10165,7 @@ __webpack_require__.r(__webpack_exports__);
10165
10165
 
10166
10166
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);
10167
10167
  // Module
10168
- ___CSS_LOADER_EXPORT___.push([module.i, ":root {\n --blackBarHeight: 55px; }\n\n#gui-editor-workbench-root {\n display: grid;\n grid-template-rows: calc(100% - 55px);\n height: 100%;\n width: 100%;\n background: #e2e2e2;\n font: 14px \"acumin-pro-condensed\"; }\n\n.wait-screen {\n display: grid;\n justify-content: center;\n align-content: center;\n height: 100%;\n width: 100%;\n background: #464646;\n opacity: 0.95;\n color: white;\n font: 24px \"acumin-pro-condensed\";\n position: absolute;\n top: 0;\n left: 0; }\n .wait-screen.hidden {\n visibility: hidden; }\n\n#leftGrab {\n grid-row: 1 / span 2;\n grid-column: 2;\n cursor: ew-resize; }\n\n#rightGrab {\n grid-row: 1 / span 2;\n grid-column: 5;\n cursor: ew-resize; }\n\n#toolbarGrab {\n background: #333333;\n grid-row: 1 / span 3;\n grid-column: 3;\n height: 100%; }\n #toolbarGrab .blackLine {\n height: 5px;\n background: black; }\n #toolbarGrab .toolbar-label {\n color: white;\n font-size: 18px;\n display: grid;\n align-items: center;\n cursor: pointer;\n user-select: none;\n grid-template-columns: 1fr 20px;\n grid-template-rows: 100%;\n position: relative; }\n #toolbarGrab .toolbar-label.active {\n font-weight: bold;\n font-size: 20px; }\n #toolbarGrab .toolbar-label:hover {\n background: var(--selectionGrey); }\n #toolbarGrab .toolbar-label:hover .sub-items {\n display: block; }\n #toolbarGrab .toolbar-icon {\n width: 40px;\n height: 40px; }\n\n.diagram-container {\n position: relative;\n display: grid;\n grid-row: 1;\n grid-column: 4;\n background: #5f5b60;\n width: 100%;\n height: 100%; }\n .diagram-container .diagram {\n display: none;\n width: 100%;\n height: 100%; }\n .diagram-container .ge-scalePoint {\n width: 10px;\n height: 10px;\n background: transparent;\n outline: #7d7d7d 2px solid; }\n .diagram-container .ge-pivotPoint {\n width: 30px;\n height: 30px;\n background: transparent; }\n\n.right-panel {\n grid-row: 1 / span 2;\n grid-column: 6;\n display: grid;\n grid-template-rows: 1fr 40px auto 40px;\n grid-template-columns: 100%;\n height: calc(100% - var(--blackBarHeight));\n overflow-y: auto; }\n .right-panel #propertyTab {\n grid-row: 1;\n grid-column: 1; }\n .right-panel .button {\n display: grid;\n justify-content: center;\n align-content: center;\n height: auto;\n width: calc(100% / 7);\n cursor: pointer; }\n .right-panel .button:hover {\n background: #337ab7;\n color: white;\n opacity: 0.8; }\n .right-panel .button.selected {\n background: #337ab7;\n color: white; }\n .right-panel .button.align {\n justify-content: stretch;\n text-align: center; }\n\n.blocker {\n visibility: hidden;\n position: absolute;\n width: calc(100% - 40px);\n height: 100%;\n top: 0;\n left: 0;\n background: rgba(20, 20, 20, 0.95);\n font-family: \"acumin-pro-condensed\";\n color: white;\n font-size: 24px;\n display: grid;\n align-content: center;\n justify-content: center;\n user-select: none;\n padding: 20px;\n text-align: center; }\n\n#log-console {\n grid-row: 2;\n grid-column: 4;\n display: none; }\n\n.dialog-container {\n position: absolute;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: grid;\n font-family: \"acumin-pro-condensed\";\n top: 0; }\n .dialog-container .dialog {\n align-self: center;\n justify-self: center;\n min-height: 140px;\n max-width: 400px;\n border-radius: 10px;\n background: white;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: calc(100% - 50px) 50px; }\n .dialog-container .dialog .dialog-message {\n grid-row: 1;\n grid-column: 1;\n margin-top: 20px;\n padding: 10px;\n font-size: 18px;\n color: black; }\n .dialog-container .dialog .dialog-buttons {\n grid-row: 2;\n grid-column: 1;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%;\n color: white; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok {\n cursor: pointer;\n justify-self: center;\n background: green;\n min-width: 80px;\n justify-content: center;\n display: grid;\n align-content: center;\n align-self: center;\n height: 35px;\n border-radius: 10px; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok:hover {\n opacity: 0.8; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok.error {\n background: red; }\n", "",{"version":3,"sources":["webpack://./main.scss"],"names":[],"mappings":"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","sourcesContent":[":root {\r\n --blackBarHeight: 55px;\r\n}\r\n\r\n#gui-editor-workbench-root {\r\n display: grid;\r\n grid-template-rows: calc(100% - 55px);\r\n height: 100%;\r\n width: 100%;\r\n background: #e2e2e2;\r\n font: 14px \"acumin-pro-condensed\"; \r\n}\r\n\r\n.wait-screen {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: 100%;\r\n width: 100%;\r\n background: #464646;\r\n opacity: 0.95;\r\n color:white;\r\n font: 24px \"acumin-pro-condensed\"; \r\n position: absolute;\r\n top: 0;\r\n left: 0; \r\n\r\n &.hidden {\r\n visibility: hidden;\r\n }\r\n}\r\n\r\n#leftGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 2;\r\n cursor: ew-resize;\r\n}\r\n\r\n#rightGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 5;\r\n cursor: ew-resize;\r\n}\r\n\r\n\r\n#toolbarGrab {\r\n background: #333333;\r\n grid-row: 1 / span 3;\r\n grid-column: 3;\r\n height: 100%;\r\n\r\n .blackLine {\r\n height: 5px;\r\n background: black;\r\n }\r\n .toolbar-label {\r\n color:white;\r\n font-size: 18px;\r\n display: grid;\r\n align-items: center;\r\n cursor: pointer;\r\n user-select: none;\r\n grid-template-columns: 1fr 20px;\r\n grid-template-rows: 100%;\r\n position: relative;\r\n\r\n &.active {\r\n font-weight: bold;\r\n font-size: 20px;\r\n }\r\n\r\n &:hover {\r\n background: var(--selectionGrey);\r\n .sub-items {\r\n display: block;\r\n }\r\n } \r\n }\r\n .toolbar-icon {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n}\r\n\r\n.diagram-container {\r\n position: relative;\r\n display: grid;\r\n grid-row: 1;\r\n grid-column: 4;\r\n background: #5f5b60;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .diagram {\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .ge-scalePoint {\r\n width: 10px;\r\n height: 10px;\r\n background: transparent;\r\n outline: rgb(125, 125, 125) 2px solid;\r\n }\r\n\r\n .ge-pivotPoint {\r\n width: 30px;\r\n height: 30px;\r\n background: transparent;\r\n }\r\n}\r\n\r\n.right-panel {\r\n grid-row: 1 / span 2;\r\n grid-column: 6;\r\n display: grid;\r\n grid-template-rows: 1fr 40px auto 40px;\r\n grid-template-columns: 100%;\r\n height: calc(100% - var(--blackBarHeight));\r\n overflow-y: auto;\r\n\r\n #propertyTab {\r\n grid-row: 1;\r\n grid-column: 1;\r\n } \r\n \r\n .button {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: auto;\r\n width: calc(100% / 7);\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n opacity: 0.8;\r\n }\r\n\r\n &.selected {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n }\r\n \r\n &.align {\r\n justify-content: stretch;\r\n text-align: center;\r\n }\r\n } \r\n}\r\n\r\n.blocker {\r\n visibility: hidden;\r\n position: absolute;\r\n width: calc(100% - 40px);\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n\r\n background: rgba(20, 20, 20, 0.95); \r\n font-family: \"acumin-pro-condensed\";\r\n color: white;\r\n font-size: 24px;\r\n\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n\r\n user-select: none;\r\n\r\n padding: 20px;\r\n text-align: center;\r\n}\r\n\r\n#log-console {\r\n grid-row: 2;\r\n grid-column: 4;\r\n display: none;\r\n}\r\n\r\n.dialog-container {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(0.1, 0.1, 0.1, 0.6);\r\n display: grid;\r\n font-family: \"acumin-pro-condensed\";\r\n top:0;\r\n\r\n .dialog {\r\n align-self: center;\r\n justify-self: center;\r\n min-height: 140px;\r\n max-width: 400px;\r\n border-radius: 10px;\r\n background: white;\r\n\r\n display: grid;\r\n grid-template-columns: 100%;\r\n grid-template-rows: calc(100% - 50px) 50px;\r\n\r\n .dialog-message {\r\n grid-row: 1;\r\n grid-column: 1;\r\n margin-top: 20px;\r\n padding: 10px;\r\n font-size: 18px;\r\n color: black;\r\n }\r\n\r\n .dialog-buttons {\r\n grid-row: 2;\r\n grid-column: 1;\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 100%;\r\n color: white;\r\n\r\n .dialog-button-ok {\r\n cursor: pointer;\r\n justify-self: center;\r\n background:green;\r\n min-width: 80px;\r\n justify-content: center;\r\n display: grid;\r\n align-content: center;\r\n align-self: center;\r\n height: 35px; \r\n border-radius: 10px;\r\n\r\n &:hover {\r\n opacity: 0.8;\r\n }\r\n\r\n &.error {\r\n background: red;\r\n }\r\n }\r\n }\r\n }\r\n}"],"sourceRoot":""}]);
10168
+ ___CSS_LOADER_EXPORT___.push([module.i, ":root {\n --blackBarHeight: 55px; }\n\n#gui-editor-workbench-root {\n display: grid;\n grid-template-rows: calc(100% - 55px);\n height: 100%;\n width: 100%;\n background: #e2e2e2;\n font: 14px \"acumin-pro-condensed\"; }\n\n.wait-screen {\n display: grid;\n justify-content: center;\n align-content: center;\n height: 100%;\n width: 100%;\n background: #464646;\n opacity: 0.95;\n color: white;\n font: 24px \"acumin-pro-condensed\";\n position: absolute;\n top: 0;\n left: 0; }\n .wait-screen.hidden {\n visibility: hidden; }\n\n#leftGrab {\n grid-row: 1 / span 2;\n grid-column: 2;\n cursor: ew-resize; }\n\n#rightGrab {\n grid-row: 1 / span 2;\n grid-column: 5;\n cursor: ew-resize; }\n\n#toolbarGrab {\n background: #333333;\n grid-row: 1 / span 3;\n grid-column: 3;\n height: 100%; }\n #toolbarGrab .blackLine {\n height: 5px;\n background: black; }\n #toolbarGrab .toolbar-label {\n color: white;\n font-size: 18px;\n display: grid;\n align-items: center;\n cursor: pointer;\n user-select: none;\n grid-template-columns: 1fr 20px;\n grid-template-rows: 100%;\n position: relative; }\n #toolbarGrab .toolbar-label.active {\n font-weight: bold;\n font-size: 20px; }\n #toolbarGrab .toolbar-label:hover {\n background: var(--selectionGrey); }\n #toolbarGrab .toolbar-label:hover .sub-items {\n display: block; }\n #toolbarGrab .toolbar-icon {\n width: 40px;\n height: 40px; }\n\n.diagram-container {\n position: relative;\n display: grid;\n grid-row: 1;\n grid-column: 4;\n background: #5f5b60;\n width: 100%;\n height: 100%; }\n .diagram-container .diagram {\n display: none;\n width: 100%;\n height: 100%; }\n\n.right-panel {\n grid-row: 1 / span 2;\n grid-column: 6;\n display: grid;\n grid-template-rows: 1fr 40px auto 40px;\n grid-template-columns: 100%;\n height: calc(100% - var(--blackBarHeight));\n overflow-y: auto; }\n .right-panel #propertyTab {\n grid-row: 1;\n grid-column: 1; }\n .right-panel .button {\n display: grid;\n justify-content: center;\n align-content: center;\n height: auto;\n width: calc(100% / 7);\n cursor: pointer; }\n .right-panel .button:hover {\n background: #337ab7;\n color: white;\n opacity: 0.8; }\n .right-panel .button.selected {\n background: #337ab7;\n color: white; }\n .right-panel .button.align {\n justify-content: stretch;\n text-align: center; }\n\n.blocker {\n visibility: hidden;\n position: absolute;\n width: calc(100% - 40px);\n height: 100%;\n top: 0;\n left: 0;\n background: rgba(20, 20, 20, 0.95);\n font-family: \"acumin-pro-condensed\";\n color: white;\n font-size: 24px;\n display: grid;\n align-content: center;\n justify-content: center;\n user-select: none;\n padding: 20px;\n text-align: center; }\n\n#log-console {\n grid-row: 2;\n grid-column: 4;\n display: none; }\n\n.dialog-container {\n position: absolute;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: grid;\n font-family: \"acumin-pro-condensed\";\n top: 0; }\n .dialog-container .dialog {\n align-self: center;\n justify-self: center;\n min-height: 140px;\n max-width: 400px;\n border-radius: 10px;\n background: white;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: calc(100% - 50px) 50px; }\n .dialog-container .dialog .dialog-message {\n grid-row: 1;\n grid-column: 1;\n margin-top: 20px;\n padding: 10px;\n font-size: 18px;\n color: black; }\n .dialog-container .dialog .dialog-buttons {\n grid-row: 2;\n grid-column: 1;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%;\n color: white; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok {\n cursor: pointer;\n justify-self: center;\n background: green;\n min-width: 80px;\n justify-content: center;\n display: grid;\n align-content: center;\n align-self: center;\n height: 35px;\n border-radius: 10px; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok:hover {\n opacity: 0.8; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok.error {\n background: red; }\n\n.gizmo .bounding-box-line {\n background-color: black;\n position: absolute;\n line-height: 1px;\n height: 1px;\n pointer-events: none; }\n\n.gizmo .scale-point-container {\n position: absolute;\n width: 30px;\n height: 30px; }\n .gizmo .scale-point-container .scale-point {\n top: 10px;\n left: 10px;\n position: absolute;\n width: 10px;\n height: 10px;\n background: transparent;\n outline: #7d7d7d 2px solid; }\n .gizmo .scale-point-container .rotate-click-area {\n width: 20px;\n height: 20px;\n position: absolute; }\n .gizmo .scale-point-container .scale-click-area {\n width: 20px;\n height: 20px;\n position: absolute; }\n\n.gizmo .pivot-point {\n width: 30px;\n height: 30px;\n background: transparent;\n position: absolute; }\n", "",{"version":3,"sources":["webpack://./main.scss"],"names":[],"mappings":"AAAA;EACI,sBAAiB,EAAA;;AAGrB;EACI,aAAa;EACb,qCAAqC;EACrC,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,iCAAiC,EAAA;;AAGrC;EACI,aAAa;EACb,uBAAuB;EACvB,qBAAqB;EACrB,YAAY;EACZ,WAAW;EACX,mBAAmB;EACnB,aAAa;EACb,YAAW;EACX,iCAAiC;EACjC,kBAAkB;EAClB,MAAM;EACN,OAAO,EAAA;EAZX;IAeQ,kBAAkB,EAAA;;AAI1B;EACI,oBAAoB;EACpB,cAAc;EACd,iBAAiB,EAAA;;AAGrB;EACI,oBAAoB;EACpB,cAAc;EACd,iBAAiB,EAAA;;AAIrB;EACI,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,YAAY,EAAA;EAJhB;IAOQ,WAAY;IACZ,iBAAiB,EAAA;EARzB;IAWQ,YAAW;IACX,eAAe;IACf,aAAa;IACb,mBAAmB;IACnB,eAAe;IACf,iBAAiB;IACjB,+BAA+B;IAC/B,wBAAwB;IACxB,kBAAkB,EAAA;IAnB1B;MAsBY,iBAAiB;MACjB,eAAe,EAAA;IAvB3B;MA2BY,gCAAgC,EAAA;MA3B5C;QA6BgB,cAAc,EAAA;EA7B9B;IAkCQ,WAAW;IACX,YAAY,EAAA;;AAIpB;EACI,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,cAAc;EACd,mBAAmB;EACnB,WAAW;EACX,YAAY,EAAA;EAPhB;IAUQ,aAAa;IACb,WAAW;IACX,YAAY,EAAA;;AAIpB;EACI,oBAAoB;EACpB,cAAc;EACd,aAAa;EACb,sCAAsC;EACtC,2BAA2B;EAC3B,0CAA0C;EAC1C,gBAAgB,EAAA;EAPpB;IAUQ,WAAW;IACX,cAAc,EAAA;EAXtB;IAeQ,aAAa;IACb,uBAAuB;IACvB,qBAAqB;IACrB,YAAY;IACZ,qBAAqB;IACrB,eAAe,EAAA;IApBvB;MAuBY,mBAA6B;MAC7B,YAAY;MACZ,YAAY,EAAA;IAzBxB;MA6BY,mBAA6B;MAC7B,YAAY,EAAA;IA9BxB;MAkCY,wBAAwB;MACxB,kBAAkB,EAAA;;AAK9B;EACI,kBAAkB;EAClB,kBAAkB;EAClB,wBAAwB;EACxB,YAAY;EACZ,MAAM;EACN,OAAO;EAEP,kCAAkC;EAClC,mCAAmC;EACnC,YAAY;EACZ,eAAe;EAEf,aAAa;EACb,qBAAqB;EACrB,uBAAuB;EAEvB,iBAAiB;EAEjB,aAAa;EACb,kBAAkB,EAAA;;AAGtB;EACI,WAAW;EACX,cAAc;EACd,aAAa,EAAA;;AAGjB;EACI,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,8BAAoC;EACpC,aAAa;EACb,mCAAmC;EACnC,MAAK,EAAA;EAPT;IAUQ,kBAAkB;IAClB,oBAAoB;IACpB,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,iBAAiB;IAEjB,aAAa;IACb,2BAA2B;IAC3B,0CAA0C,EAAA;IAnBlD;MAsBY,WAAW;MACX,cAAc;MACd,gBAAgB;MAChB,aAAa;MACb,eAAe;MACf,YAAY,EAAA;IA3BxB;MA+BY,WAAW;MACX,cAAc;MACd,aAAa;MACb,wBAAwB;MACxB,2BAA2B;MAC3B,YAAY,EAAA;MApCxB;QAuCgB,eAAe;QACf,oBAAoB;QACpB,iBAAgB;QAChB,eAAe;QACf,uBAAuB;QACvB,aAAa;QACb,qBAAqB;QACrB,kBAAkB;QAClB,YAAY;QACZ,mBAAmB,EAAA;QAhDnC;UAmDoB,YAAY,EAAA;QAnDhC;UAuDoB,eAAe,EAAA;;AAMnC;EAEQ,uBAAuB;EACvB,kBAAkB;EAClB,gBAAgB;EAChB,WAAW;EACX,oBAAoB,EAAA;;AAN5B;EASQ,kBAAkB;EAClB,WAAW;EACX,YAAY,EAAA;EAXpB;IAaY,SAAS;IACT,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,YAAY;IACZ,uBAAuB;IACvB,0BAAqC,EAAA;EAnBjD;IAsBY,WAAW;IACX,YAAY;IACZ,kBAAkB,EAAA;EAxB9B;IA2BY,WAAW;IACX,YAAY;IACZ,kBAAkB,EAAA;;AA7B9B;EAiCQ,WAAW;EACX,YAAY;EACZ,uBAAuB;EACvB,kBAAkB,EAAA","sourcesContent":[":root {\r\n --blackBarHeight: 55px;\r\n}\r\n\r\n#gui-editor-workbench-root {\r\n display: grid;\r\n grid-template-rows: calc(100% - 55px);\r\n height: 100%;\r\n width: 100%;\r\n background: #e2e2e2;\r\n font: 14px \"acumin-pro-condensed\"; \r\n}\r\n\r\n.wait-screen {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: 100%;\r\n width: 100%;\r\n background: #464646;\r\n opacity: 0.95;\r\n color:white;\r\n font: 24px \"acumin-pro-condensed\"; \r\n position: absolute;\r\n top: 0;\r\n left: 0; \r\n\r\n &.hidden {\r\n visibility: hidden;\r\n }\r\n}\r\n\r\n#leftGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 2;\r\n cursor: ew-resize;\r\n}\r\n\r\n#rightGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 5;\r\n cursor: ew-resize;\r\n}\r\n\r\n\r\n#toolbarGrab {\r\n background: #333333;\r\n grid-row: 1 / span 3;\r\n grid-column: 3;\r\n height: 100%;\r\n\r\n .blackLine {\r\n height: 5px;\r\n background: black;\r\n }\r\n .toolbar-label {\r\n color:white;\r\n font-size: 18px;\r\n display: grid;\r\n align-items: center;\r\n cursor: pointer;\r\n user-select: none;\r\n grid-template-columns: 1fr 20px;\r\n grid-template-rows: 100%;\r\n position: relative;\r\n\r\n &.active {\r\n font-weight: bold;\r\n font-size: 20px;\r\n }\r\n\r\n &:hover {\r\n background: var(--selectionGrey);\r\n .sub-items {\r\n display: block;\r\n }\r\n } \r\n }\r\n .toolbar-icon {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n}\r\n\r\n.diagram-container {\r\n position: relative;\r\n display: grid;\r\n grid-row: 1;\r\n grid-column: 4;\r\n background: #5f5b60;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .diagram {\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n\r\n.right-panel {\r\n grid-row: 1 / span 2;\r\n grid-column: 6;\r\n display: grid;\r\n grid-template-rows: 1fr 40px auto 40px;\r\n grid-template-columns: 100%;\r\n height: calc(100% - var(--blackBarHeight));\r\n overflow-y: auto;\r\n\r\n #propertyTab {\r\n grid-row: 1;\r\n grid-column: 1;\r\n } \r\n \r\n .button {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: auto;\r\n width: calc(100% / 7);\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n opacity: 0.8;\r\n }\r\n\r\n &.selected {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n }\r\n \r\n &.align {\r\n justify-content: stretch;\r\n text-align: center;\r\n }\r\n } \r\n}\r\n\r\n.blocker {\r\n visibility: hidden;\r\n position: absolute;\r\n width: calc(100% - 40px);\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n\r\n background: rgba(20, 20, 20, 0.95); \r\n font-family: \"acumin-pro-condensed\";\r\n color: white;\r\n font-size: 24px;\r\n\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n\r\n user-select: none;\r\n\r\n padding: 20px;\r\n text-align: center;\r\n}\r\n\r\n#log-console {\r\n grid-row: 2;\r\n grid-column: 4;\r\n display: none;\r\n}\r\n\r\n.dialog-container {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(0.1, 0.1, 0.1, 0.6);\r\n display: grid;\r\n font-family: \"acumin-pro-condensed\";\r\n top:0;\r\n\r\n .dialog {\r\n align-self: center;\r\n justify-self: center;\r\n min-height: 140px;\r\n max-width: 400px;\r\n border-radius: 10px;\r\n background: white;\r\n\r\n display: grid;\r\n grid-template-columns: 100%;\r\n grid-template-rows: calc(100% - 50px) 50px;\r\n\r\n .dialog-message {\r\n grid-row: 1;\r\n grid-column: 1;\r\n margin-top: 20px;\r\n padding: 10px;\r\n font-size: 18px;\r\n color: black;\r\n }\r\n\r\n .dialog-buttons {\r\n grid-row: 2;\r\n grid-column: 1;\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 100%;\r\n color: white;\r\n\r\n .dialog-button-ok {\r\n cursor: pointer;\r\n justify-self: center;\r\n background:green;\r\n min-width: 80px;\r\n justify-content: center;\r\n display: grid;\r\n align-content: center;\r\n align-self: center;\r\n height: 35px; \r\n border-radius: 10px;\r\n\r\n &:hover {\r\n opacity: 0.8;\r\n }\r\n\r\n &.error {\r\n background: red;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n.gizmo {\r\n .bounding-box-line {\r\n background-color: black;\r\n position: absolute;\r\n line-height: 1px;\r\n height: 1px;\r\n pointer-events: none;\r\n }\r\n .scale-point-container {\r\n position: absolute;\r\n width: 30px;\r\n height: 30px;\r\n .scale-point {\r\n top: 10px;\r\n left: 10px;\r\n position: absolute;\r\n width: 10px;\r\n height: 10px;\r\n background: transparent;\r\n outline: rgb(125, 125, 125) 2px solid;\r\n }\r\n .rotate-click-area {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n }\r\n .scale-click-area {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n }\r\n }\r\n .pivot-point {\r\n width: 30px;\r\n height: 30px;\r\n background: transparent;\r\n position: absolute;\r\n }\r\n}"],"sourceRoot":""}]);
10169
10169
  // Exports
10170
10170
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
10171
10171
 
@@ -42321,6 +42321,46 @@ module.exports = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w
42321
42321
 
42322
42322
  /***/ }),
42323
42323
 
42324
+ /***/ "../public/imgs sync recursive ^\\.\\/cursor_rotate.*\\.svg$":
42325
+ /*!******************************************************!*\
42326
+ !*** ../public/imgs sync ^\.\/cursor_rotate.*\.svg$ ***!
42327
+ \******************************************************/
42328
+ /*! no static exports found */
42329
+ /***/ (function(module, exports, __webpack_require__) {
42330
+
42331
+ var map = {
42332
+ "./cursor_rotate0.svg": "../public/imgs/cursor_rotate0.svg",
42333
+ "./cursor_rotate1.svg": "../public/imgs/cursor_rotate1.svg",
42334
+ "./cursor_rotate2.svg": "../public/imgs/cursor_rotate2.svg",
42335
+ "./cursor_rotate3.svg": "../public/imgs/cursor_rotate3.svg",
42336
+ "./cursor_rotate4.svg": "../public/imgs/cursor_rotate4.svg",
42337
+ "./cursor_rotate5.svg": "../public/imgs/cursor_rotate5.svg",
42338
+ "./cursor_rotate6.svg": "../public/imgs/cursor_rotate6.svg",
42339
+ "./cursor_rotate7.svg": "../public/imgs/cursor_rotate7.svg"
42340
+ };
42341
+
42342
+
42343
+ function webpackContext(req) {
42344
+ var id = webpackContextResolve(req);
42345
+ return __webpack_require__(id);
42346
+ }
42347
+ function webpackContextResolve(req) {
42348
+ if(!__webpack_require__.o(map, req)) {
42349
+ var e = new Error("Cannot find module '" + req + "'");
42350
+ e.code = 'MODULE_NOT_FOUND';
42351
+ throw e;
42352
+ }
42353
+ return map[req];
42354
+ }
42355
+ webpackContext.keys = function webpackContextKeys() {
42356
+ return Object.keys(map);
42357
+ };
42358
+ webpackContext.resolve = webpackContextResolve;
42359
+ module.exports = webpackContext;
42360
+ webpackContext.id = "../public/imgs sync recursive ^\\.\\/cursor_rotate.*\\.svg$";
42361
+
42362
+ /***/ }),
42363
+
42324
42364
  /***/ "../public/imgs/adtIcon.svg":
42325
42365
  /*!**********************************!*\
42326
42366
  !*** ../public/imgs/adtIcon.svg ***!
@@ -42442,6 +42482,138 @@ module.exports = "data:image/svg+xml,%3Csvg id='icons' xmlns='http://www.w3.org/
42442
42482
 
42443
42483
  /***/ }),
42444
42484
 
42485
+ /***/ "../public/imgs/cursor_rotate0.svg":
42486
+ /*!*****************************************!*\
42487
+ !*** ../public/imgs/cursor_rotate0.svg ***!
42488
+ \*****************************************/
42489
+ /*! no static exports found */
42490
+ /***/ (function(module, exports) {
42491
+
42492
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M18.91,12.11l-.66-.66a8.14,8.14,0,0,0-11.5,0l-.66.66L4.68,10.7,3.39,15.51l4.82-1.29L6.8,12.81l.65-.65a7.16,7.16,0,0,1,10.1,0l.65.65-1.41,1.41,4.82,1.29L20.32,10.7Z'/%3E%3Cpath class='cls-1' d='M12.5,9.07a8.13,8.13,0,0,1,5.75,2.38l.66.66,1.41-1.41,1.29,4.81-4.82-1.29,1.41-1.41-.65-.65a7.15,7.15,0,0,0-10.1,0l-.65.65,1.41,1.41L3.39,15.51,4.68,10.7l1.41,1.41.66-.66A8.13,8.13,0,0,1,12.5,9.07m0-1a9.08,9.08,0,0,0-6.41,2.62l-.7-.7L4.16,8.77l-.44,1.67L2.43,15.25,2,16.93l1.67-.45,4.82-1.29,1.67-.45L8.91,13.52l-.7-.71a6.16,6.16,0,0,1,8.58,0l-.71.71-1.22,1.22,1.67.45,4.82,1.29,1.67.45-.45-1.68-1.29-4.81-.44-1.67L19.61,10l-.7.7A9.08,9.08,0,0,0,12.5,8.07Z'/%3E%3C/svg%3E"
42493
+
42494
+ /***/ }),
42495
+
42496
+ /***/ "../public/imgs/cursor_rotate1.svg":
42497
+ /*!*****************************************!*\
42498
+ !*** ../public/imgs/cursor_rotate1.svg ***!
42499
+ \*****************************************/
42500
+ /*! no static exports found */
42501
+ /***/ (function(module, exports) {
42502
+
42503
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M18.33,15.74v-.93a8.15,8.15,0,0,0-8.14-8.14H9.26v-2L5,7.17l4.31,2.5v-2h.93a7.14,7.14,0,0,1,7.14,7.14v.93h-2l2.5,4.31,2.49-4.31Z'/%3E%3Cpath class='cls-1' d='M9.26,4.68v2h.93a8.15,8.15,0,0,1,8.14,8.14v.93h2l-2.49,4.31-2.5-4.31h2v-.93a7.14,7.14,0,0,0-7.14-7.14H9.26v2L5,7.17,9.26,4.68m1-1.73-1.5.86L4.45,6.31,3,7.17,4.45,8l4.31,2.49,1.5.87V8.67a6.15,6.15,0,0,1,6.07,6.07H13.6l.87,1.5L17,20.55l.87,1.5.86-1.5,2.5-4.31.86-1.5H19.33a9.16,9.16,0,0,0-9.07-9.07V3Z'/%3E%3C/svg%3E"
42504
+
42505
+ /***/ }),
42506
+
42507
+ /***/ "../public/imgs/cursor_rotate2.svg":
42508
+ /*!*****************************************!*\
42509
+ !*** ../public/imgs/cursor_rotate2.svg ***!
42510
+ \*****************************************/
42511
+ /*! no static exports found */
42512
+ /***/ (function(module, exports) {
42513
+
42514
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M12.89,18.91l.66-.66a8.14,8.14,0,0,0,0-11.5l-.66-.66L14.3,4.68,9.49,3.39l1.29,4.82L12.19,6.8l.65.65a7.16,7.16,0,0,1,0,10.1l-.65.65-1.41-1.41L9.49,21.61l4.81-1.29Z'/%3E%3Cpath class='cls-1' d='M9.49,3.39,14.3,4.68,12.89,6.09l.66.66a8.14,8.14,0,0,1,0,11.5l-.66.66,1.41,1.41L9.49,21.61l1.29-4.82,1.41,1.41.65-.65a7.16,7.16,0,0,0,0-10.1l-.65-.65L10.78,8.21,9.49,3.39M8.07,2l.45,1.67L9.81,8.47l.45,1.67,1.22-1.23.71-.7a6.16,6.16,0,0,1,0,8.58l-.71-.7-1.22-1.23-.45,1.67L8.52,21.35,8.07,23l1.68-.45,4.81-1.29,1.67-.44L15,19.61l-.7-.7a9.15,9.15,0,0,0,0-12.82l.7-.7,1.22-1.23-1.67-.44L9.75,2.43,8.07,2Z'/%3E%3C/svg%3E"
42515
+
42516
+ /***/ }),
42517
+
42518
+ /***/ "../public/imgs/cursor_rotate3.svg":
42519
+ /*!*****************************************!*\
42520
+ !*** ../public/imgs/cursor_rotate3.svg ***!
42521
+ \*****************************************/
42522
+ /*! no static exports found */
42523
+ /***/ (function(module, exports) {
42524
+
42525
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M9.26,18.33h.93a8.15,8.15,0,0,0,8.14-8.14V9.26h2L17.83,5l-2.5,4.31h2v.93a7.14,7.14,0,0,1-7.14,7.14H9.26v-2L5,17.83l4.31,2.49Z'/%3E%3Cpath class='cls-1' d='M17.83,5l2.49,4.31h-2v.93a8.15,8.15,0,0,1-8.14,8.14H9.26v2L5,17.83l4.31-2.5v2h.93a7.14,7.14,0,0,0,7.14-7.14V9.26h-2L17.83,5m0-2L17,4.45,14.47,8.76l-.87,1.5h2.73a6.15,6.15,0,0,1-6.07,6.07V13.6l-1.5.87L4.45,17,3,17.83l1.5.86,4.31,2.5,1.5.86V19.33a9.16,9.16,0,0,0,9.07-9.07h2.72l-.86-1.5-2.5-4.31L17.83,3Z'/%3E%3C/svg%3E"
42526
+
42527
+ /***/ }),
42528
+
42529
+ /***/ "../public/imgs/cursor_rotate4.svg":
42530
+ /*!*****************************************!*\
42531
+ !*** ../public/imgs/cursor_rotate4.svg ***!
42532
+ \*****************************************/
42533
+ /*! no static exports found */
42534
+ /***/ (function(module, exports) {
42535
+
42536
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M6.09,12.89l.66.66a8.14,8.14,0,0,0,11.5,0l.66-.66,1.41,1.41,1.29-4.81-4.82,1.29,1.41,1.41-.65.65a7.16,7.16,0,0,1-10.1,0l-.65-.65,1.41-1.41L3.39,9.49,4.68,14.3Z'/%3E%3Cpath class='cls-1' d='M21.61,9.49,20.32,14.3l-1.41-1.41-.66.66a8.14,8.14,0,0,1-11.5,0l-.66-.66L4.68,14.3,3.39,9.49l4.82,1.29L6.8,12.19l.65.65a7.15,7.15,0,0,0,10.1,0l.65-.65-1.41-1.41,4.82-1.29M23,8.07l-1.67.45L16.53,9.81l-1.67.45,1.23,1.22.7.71a6.16,6.16,0,0,1-8.58,0l.7-.71,1.23-1.22L8.47,9.81,3.65,8.52,2,8.07l.45,1.68,1.29,4.81.44,1.67L5.39,15l.7-.7a9.15,9.15,0,0,0,12.82,0l.7.7,1.23,1.22.44-1.67,1.29-4.81L23,8.07Z'/%3E%3C/svg%3E"
42537
+
42538
+ /***/ }),
42539
+
42540
+ /***/ "../public/imgs/cursor_rotate5.svg":
42541
+ /*!*****************************************!*\
42542
+ !*** ../public/imgs/cursor_rotate5.svg ***!
42543
+ \*****************************************/
42544
+ /*! no static exports found */
42545
+ /***/ (function(module, exports) {
42546
+
42547
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M6.67,9.26v.93a8.15,8.15,0,0,0,8.14,8.14h.93v2l4.31-2.49-4.31-2.5v2h-.93a7.14,7.14,0,0,1-7.14-7.14V9.26h2L7.17,5,4.68,9.26Z'/%3E%3Cpath class='cls-1' d='M7.17,5l2.5,4.31h-2v.93a7.14,7.14,0,0,0,7.14,7.14h.93v-2l4.31,2.5-4.31,2.49v-2h-.93a8.15,8.15,0,0,1-8.14-8.14V9.26h-2L7.17,5m0-2-.86,1.5L3.81,8.76,3,10.26H5.67a9.16,9.16,0,0,0,9.07,9.07v2.72l1.5-.86,4.31-2.5,1.5-.86L20.55,17l-4.31-2.49-1.5-.87v2.73a6.15,6.15,0,0,1-6.07-6.07H11.4l-.87-1.5L8,4.45,7.17,3Z'/%3E%3C/svg%3E"
42548
+
42549
+ /***/ }),
42550
+
42551
+ /***/ "../public/imgs/cursor_rotate6.svg":
42552
+ /*!*****************************************!*\
42553
+ !*** ../public/imgs/cursor_rotate6.svg ***!
42554
+ \*****************************************/
42555
+ /*! no static exports found */
42556
+ /***/ (function(module, exports) {
42557
+
42558
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M12.11,6.09l-.66.66a8.14,8.14,0,0,0,0,11.5l.66.66L10.7,20.32l4.81,1.29-1.29-4.82L12.81,18.2l-.65-.65a7.16,7.16,0,0,1,0-10.1l.65-.65,1.41,1.41,1.29-4.82L10.7,4.68Z'/%3E%3Cpath class='cls-1' d='M15.51,3.39,14.22,8.21,12.81,6.8l-.65.65a7.16,7.16,0,0,0,0,10.1l.65.65,1.41-1.41,1.29,4.82L10.7,20.32l1.41-1.41-.66-.66a8.14,8.14,0,0,1,0-11.5l.66-.66L10.7,4.68l4.81-1.29M16.93,2l-1.68.45L10.44,3.72l-1.67.44L10,5.39l.7.7a9.15,9.15,0,0,0,0,12.82l-.7.7L8.77,20.84l1.67.44,4.81,1.29,1.68.45-.45-1.67-1.29-4.82-.45-1.67-1.22,1.23-.71.7a6.16,6.16,0,0,1,0-8.58l.71.7,1.22,1.23.45-1.67,1.29-4.82L16.93,2Z'/%3E%3C/svg%3E"
42559
+
42560
+ /***/ }),
42561
+
42562
+ /***/ "../public/imgs/cursor_rotate7.svg":
42563
+ /*!*****************************************!*\
42564
+ !*** ../public/imgs/cursor_rotate7.svg ***!
42565
+ \*****************************************/
42566
+ /*! no static exports found */
42567
+ /***/ (function(module, exports) {
42568
+
42569
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpath d='M15.74,6.67h-.93a8.15,8.15,0,0,0-8.14,8.14v.93h-2l2.49,4.31,2.5-4.31h-2v-.93a7.14,7.14,0,0,1,7.14-7.14h.93v2l4.31-2.5L15.74,4.68Z'/%3E%3Cpath class='cls-1' d='M15.74,4.68l4.31,2.49-4.31,2.5v-2h-.93a7.14,7.14,0,0,0-7.14,7.14v.93h2l-2.5,4.31L4.68,15.74h2v-.93a8.15,8.15,0,0,1,8.14-8.14h.93v-2M14.74,3V5.67a9.16,9.16,0,0,0-9.07,9.07H3l.86,1.5,2.5,4.31.86,1.5L8,20.55l2.49-4.31.87-1.5H8.67a6.15,6.15,0,0,1,6.07-6.07V11.4l1.5-.87L20.55,8l1.5-.87-1.5-.86-4.31-2.5L14.74,3Z'/%3E%3C/svg%3E"
42570
+
42571
+ /***/ }),
42572
+
42573
+ /***/ "../public/imgs/cursor_scaleDiagonalLeft.svg":
42574
+ /*!***************************************************!*\
42575
+ !*** ../public/imgs/cursor_scaleDiagonalLeft.svg ***!
42576
+ \***************************************************/
42577
+ /*! no static exports found */
42578
+ /***/ (function(module, exports) {
42579
+
42580
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpolygon points='7.51 11.04 6.22 6.22 11.04 7.51 9.63 8.92 16.08 15.37 17.48 13.96 18.77 18.77 13.96 17.48 15.37 16.08 8.92 9.63 7.51 11.04'/%3E%3Cpath class='cls-1' d='M6.22,6.22,11,7.51,9.63,8.92l6.45,6.45L17.49,14l1.29,4.82L14,17.49l1.41-1.41L8.92,9.63,7.51,11,6.22,6.22M4.81,4.81l.45,1.67L6.55,11.3,7,13l1.22-1.22.7-.7,5,5-.7.7L12,18l1.67.45,4.82,1.29,1.67.45-.45-1.67L18.45,13.7,18,12l-1.22,1.22-.7.7-5-5,.7-.7L13,7,11.3,6.55,6.48,5.26,4.81,4.81Z'/%3E%3C/svg%3E"
42581
+
42582
+ /***/ }),
42583
+
42584
+ /***/ "../public/imgs/cursor_scaleDiagonalRight.svg":
42585
+ /*!****************************************************!*\
42586
+ !*** ../public/imgs/cursor_scaleDiagonalRight.svg ***!
42587
+ \****************************************************/
42588
+ /*! no static exports found */
42589
+ /***/ (function(module, exports) {
42590
+
42591
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpolygon points='17.48 11.04 18.77 6.22 13.96 7.51 15.37 8.92 8.92 15.37 7.51 13.96 6.22 18.77 11.04 17.48 9.63 16.08 16.08 9.63 17.48 11.04'/%3E%3Cpath class='cls-1' d='M18.78,6.22,17.49,11,16.08,9.63,9.63,16.08,11,17.49,6.22,18.78,7.51,14l1.41,1.41,6.45-6.45L14,7.51l4.82-1.29m1.41-1.41-1.67.45L13.7,6.55,12,7l1.22,1.22.7.7-5,5-.7-.7L7,12,6.55,13.7,5.26,18.52l-.45,1.67,1.67-.45,4.82-1.29L13,18l-1.22-1.22-.7-.7,5-5,.7.7L18,13l.45-1.67,1.29-4.82.45-1.67Z'/%3E%3C/svg%3E"
42592
+
42593
+ /***/ }),
42594
+
42595
+ /***/ "../public/imgs/cursor_scaleHorizontal.svg":
42596
+ /*!*************************************************!*\
42597
+ !*** ../public/imgs/cursor_scaleHorizontal.svg ***!
42598
+ \*************************************************/
42599
+ /*! no static exports found */
42600
+ /***/ (function(module, exports) {
42601
+
42602
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpolygon points='7.94 10.01 3.63 12.5 7.94 14.99 7.94 13 17.06 13 17.06 14.99 21.38 12.5 17.06 10.01 17.06 12 7.94 12 7.94 10.01'/%3E%3Cpath class='cls-1' d='M7.94,10v2h9.12V10l4.31,2.49L17.06,15V13H7.94v2L3.63,12.5,7.94,10m1-1.74-1.5.87L3.13,11.63l-1.5.87,1.5.87,4.31,2.49,1.5.87V14h7.12v2.73l1.5-.87,4.31-2.49,1.5-.87-1.5-.87L17.56,9.14l-1.5-.87V11H8.94V8.27Z'/%3E%3C/svg%3E"
42603
+
42604
+ /***/ }),
42605
+
42606
+ /***/ "../public/imgs/cursor_scaleVertical.svg":
42607
+ /*!***********************************************!*\
42608
+ !*** ../public/imgs/cursor_scaleVertical.svg ***!
42609
+ \***********************************************/
42610
+ /*! no static exports found */
42611
+ /***/ (function(module, exports) {
42612
+
42613
+ module.exports = "data:image/svg+xml,%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25 25' width='25' height='25'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fff;%7D%3C/style%3E%3C/defs%3E%3Cpolygon points='14.99 7.94 12.5 3.63 10.01 7.94 12 7.94 12 17.06 10.01 17.06 12.5 21.38 14.99 17.06 13 17.06 13 7.94 14.99 7.94'/%3E%3Cpath class='cls-1' d='M12.5,3.63,15,7.94H13v9.12h2L12.5,21.37,10,17.06h2V7.94H10L12.5,3.63m0-2-.87,1.5L9.14,7.44l-.87,1.5H11v7.12H8.27l.87,1.5,2.49,4.31.87,1.5.87-1.5,2.49-4.31.87-1.5H14V8.94h2.73l-.87-1.5L13.37,3.13l-.87-1.5Z'/%3E%3C/svg%3E"
42614
+
42615
+ /***/ }),
42616
+
42445
42617
  /***/ "../public/imgs/displaygridIcon.svg":
42446
42618
  /*!******************************************!*\
42447
42619
  !*** ../public/imgs/displaygridIcon.svg ***!
@@ -43679,7 +43851,7 @@ var CommonControlPropertyGridComponent = /** @class */ (function (_super) {
43679
43851
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("hr", { className: "ge" }),
43680
43852
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_2__["TextLineComponent"], { tooltip: "", label: "TRANSFORMATION", value: " ", color: "grey" }),
43681
43853
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43682
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { iconLabel: "Trasnsform Center", icon: positionIcon, lockObject: this.props.lockObject, label: "X", target: control, propertyName: "transformCenterX", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
43854
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { iconLabel: "Transform Center", icon: positionIcon, lockObject: this.props.lockObject, label: "X", target: control, propertyName: "transformCenterX", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
43683
43855
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { lockObject: this.props.lockObject, label: "Y", target: control, propertyName: "transformCenterY", onPropertyChangedObservable: this.props.onPropertyChangedObservable })),
43684
43856
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43685
43857
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { iconLabel: "Scale", icon: scaleIcon, lockObject: this.props.lockObject, label: "X", target: control, propertyName: "scaleX", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
@@ -47862,38 +48034,95 @@ __webpack_require__.r(__webpack_exports__);
47862
48034
 
47863
48035
  __webpack_require__(/*! ./workbenchCanvas.scss */ "./diagram/workbenchCanvas.scss");
47864
48036
  var gizmoPivotIcon = __webpack_require__(/*! ../../public/imgs/gizmoPivotIcon.svg */ "../public/imgs/gizmoPivotIcon.svg");
48037
+ // which side of the bounding box are we on?
48038
+ var ScalePointPosition;
48039
+ (function (ScalePointPosition) {
48040
+ ScalePointPosition[ScalePointPosition["Top"] = -1] = "Top";
48041
+ ScalePointPosition[ScalePointPosition["Left"] = -1] = "Left";
48042
+ ScalePointPosition[ScalePointPosition["Center"] = 0] = "Center";
48043
+ ScalePointPosition[ScalePointPosition["Right"] = 1] = "Right";
48044
+ ScalePointPosition[ScalePointPosition["Bottom"] = 1] = "Bottom";
48045
+ })(ScalePointPosition || (ScalePointPosition = {}));
48046
+ var Rect = /** @class */ (function () {
48047
+ function Rect(left, top, right, bottom) {
48048
+ this.left = left;
48049
+ this.top = top;
48050
+ this.right = right;
48051
+ this.bottom = bottom;
48052
+ }
48053
+ Object.defineProperty(Rect.prototype, "center", {
48054
+ get: function () {
48055
+ var topLeft = new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](this.left, this.top);
48056
+ return topLeft.addInPlace(new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](this.right, this.bottom).subtractInPlace(topLeft).multiplyByFloats(0.5, 0.5));
48057
+ },
48058
+ enumerable: false,
48059
+ configurable: true
48060
+ });
48061
+ Object.defineProperty(Rect.prototype, "width", {
48062
+ get: function () {
48063
+ return this.right - this.left;
48064
+ },
48065
+ enumerable: false,
48066
+ configurable: true
48067
+ });
48068
+ Object.defineProperty(Rect.prototype, "height", {
48069
+ get: function () {
48070
+ return this.bottom - this.top;
48071
+ },
48072
+ enumerable: false,
48073
+ configurable: true
48074
+ });
48075
+ return Rect;
48076
+ }());
47865
48077
  var roundFactor = 100;
47866
48078
  var round = function (value) { return Math.round(value * roundFactor) / roundFactor; };
48079
+ // this defines the lines that link the corners, making up the bounding box
48080
+ var lines = [
48081
+ [0, 2],
48082
+ [0, 6],
48083
+ [2, 8],
48084
+ [6, 8],
48085
+ ];
48086
+ // load in custom cursor icons
48087
+ var cursorScaleDiagonaLeft = "url(\"" + __webpack_require__(/*! ../../public/imgs/cursor_scaleDiagonalLeft.svg */ "../public/imgs/cursor_scaleDiagonalLeft.svg") + "\") 12 12, nwse-resize";
48088
+ var cursorScaleDiagonalRight = "url(\"" + __webpack_require__(/*! ../../public/imgs/cursor_scaleDiagonalRight.svg */ "../public/imgs/cursor_scaleDiagonalRight.svg") + "\") 12 12, nesw-resize";
48089
+ var cursorScaleHorizontal = "url(\"" + __webpack_require__(/*! ../../public/imgs/cursor_scaleHorizontal.svg */ "../public/imgs/cursor_scaleHorizontal.svg") + "\") 12 12, pointer";
48090
+ var cursorScaleVertical = "url(\"" + __webpack_require__(/*! ../../public/imgs/cursor_scaleVertical.svg */ "../public/imgs/cursor_scaleVertical.svg") + "\") 12 12, ns-resize";
48091
+ var scalePointCursors = [cursorScaleVertical, cursorScaleDiagonalRight, cursorScaleHorizontal, cursorScaleDiagonaLeft, cursorScaleVertical, cursorScaleDiagonalRight, cursorScaleHorizontal, cursorScaleDiagonaLeft];
48092
+ var rotateCursors = [];
48093
+ for (var idx = 0; idx < 8; idx++) {
48094
+ rotateCursors.push("url(\"" + __webpack_require__("../public/imgs sync recursive ^\\.\\/cursor_rotate.*\\.svg$")("./cursor_rotate" + idx + ".svg") + "\") 12 12, pointer");
48095
+ }
48096
+ // used to calculate which cursor icon we should display for the scalepoints
48097
+ var defaultScalePointRotations = [
48098
+ 315, 0, 45,
48099
+ 270, 0, 90,
48100
+ 225, 180, 135,
48101
+ ];
47867
48102
  var GuiGizmoComponent = /** @class */ (function (_super) {
47868
48103
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GuiGizmoComponent, _super);
47869
48104
  function GuiGizmoComponent(props) {
47870
48105
  var _this = _super.call(this, props) || this;
47871
- _this.scalePoints = [];
47872
- _this._scalePointIndex = -1;
47873
- _this._plane = _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Plane"].FromPositionAndNormal(_babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(), _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Axis"].Y);
47874
- _this._onUp = function (evt) {
47875
- // cleanup on pointer up
47876
- _this._pointerData.pointerDown = false;
47877
- document.querySelectorAll(".ge-scalePoint").forEach(function (scalePoint) {
47878
- scalePoint.style.pointerEvents = "auto";
47879
- });
47880
- _this._scalePointIndex = -1;
47881
- };
48106
+ // used for scaling computations
47882
48107
  _this._initH = 0;
47883
48108
  _this._initW = 0;
47884
48109
  _this._initX = 0;
47885
48110
  _this._initY = 0;
48111
+ _this._plane = _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Plane"].FromPositionAndNormal(_babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(), _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Axis"].Y);
48112
+ _this._onUp = function (evt) {
48113
+ // cleanup on pointer up
48114
+ _this.setState({ scalePointDragging: -1, isRotating: false });
48115
+ };
47886
48116
  _this._onMove = function () {
47887
- if (_this._pointerData.pointerDown) {
47888
- var scene = _this.props.globalState.workbench._scene;
47889
- var selectedGuiNodes = _this.props.globalState.workbench.selectedGuiNodes;
47890
- if (selectedGuiNodes.length > 0) {
48117
+ var scene = _this.props.globalState.workbench._scene;
48118
+ var selectedGuiNodes = _this.props.globalState.workbench.selectedGuiNodes;
48119
+ if (_this.state.scalePointDragging !== -1) {
48120
+ if (selectedGuiNodes.length === 1) {
47891
48121
  var node = selectedGuiNodes[0];
47892
- // get the mouse position in node space
47893
48122
  var inRTT = _this._mousePointerToRTTSpace(node, scene.pointerX, scene.pointerY);
47894
48123
  var inNodeSpace = _this._rttToLocalNodeSpace(node, inRTT.x, inRTT.y, undefined, true);
47895
- // set the corner
47896
- _this._setNodeCorner(node, inNodeSpace, _this._scalePointIndex);
48124
+ _this._dragLocalBounds(inNodeSpace);
48125
+ _this._updateNodeFromLocalBounds(node, _this.state.scalePointDragging);
47897
48126
  //convert to percentage
47898
48127
  if (_this._responsive) {
47899
48128
  _this.props.globalState.workbench.convertToPercentage(node, false);
@@ -47902,97 +48131,185 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
47902
48131
  _this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();
47903
48132
  }
47904
48133
  }
48134
+ if (_this.state.isRotating) {
48135
+ selectedGuiNodes.forEach(function (node, index) {
48136
+ var nodeRotationData = _this._rotation.nodeRotations[index];
48137
+ var angle = Math.atan2(scene.pointerY - _this._rotation.pivot.y, scene.pointerX - _this._rotation.pivot.x);
48138
+ node.rotation = nodeRotationData + (angle - _this._rotation.initialAngleToPivot);
48139
+ });
48140
+ _this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();
48141
+ }
47905
48142
  };
47906
- _this._setMousePosition = function (index) {
47907
- _this._pointerData.pointerDown = true;
47908
- _this._scalePointIndex = index;
47909
- document.querySelectorAll(".ge-scalePoint").forEach(function (scalePoint) {
47910
- scalePoint.style.pointerEvents = "none";
47911
- });
48143
+ _this._beginDraggingScalePoint = function (scalePointIndex) {
47912
48144
  var selectedGuiNodes = _this.props.globalState.workbench.selectedGuiNodes;
48145
+ _this.setState({ scalePointDragging: scalePointIndex });
47913
48146
  if (selectedGuiNodes.length > 0) {
47914
48147
  var node = selectedGuiNodes[0];
47915
- _this._nodeToCorners(node);
48148
+ _this._localBounds = _this._computeLocalBounds(node);
47916
48149
  _this._initW = node.widthInPixels;
47917
48150
  _this._initH = node.heightInPixels;
47918
48151
  _this._initY = node.topInPixels;
47919
48152
  _this._initX = node.leftInPixels;
47920
48153
  }
47921
48154
  };
48155
+ _this._beginRotate = function () {
48156
+ var scene = _this.props.globalState.workbench._scene;
48157
+ var selectedGuiNodes = _this.props.globalState.workbench.selectedGuiNodes;
48158
+ var pivot;
48159
+ if (selectedGuiNodes.length === 1) {
48160
+ var node = selectedGuiNodes[0];
48161
+ var nodeSpace = new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](node.transformCenterX, node.transformCenterY);
48162
+ var rtt = _this._nodeToRTTSpace(node, nodeSpace.x, nodeSpace.y, undefined, false);
48163
+ var canvas = _this._rttToCanvasSpace(rtt.x, rtt.y);
48164
+ pivot = new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](canvas.x, canvas.y);
48165
+ }
48166
+ else {
48167
+ pivot = _this.state.canvasBounds.center;
48168
+ }
48169
+ var initialAngleToPivot = Math.atan2(scene.pointerY - pivot.y, scene.pointerX - pivot.x);
48170
+ var nodeRotations = [];
48171
+ selectedGuiNodes.forEach(function (node) {
48172
+ nodeRotations.push(node.rotation);
48173
+ });
48174
+ _this._rotation = {
48175
+ pivot: pivot,
48176
+ initialAngleToPivot: initialAngleToPivot,
48177
+ nodeRotations: nodeRotations
48178
+ };
48179
+ _this.setState({ isRotating: true });
48180
+ };
47922
48181
  _this.props.globalState.guiGizmo = _this;
47923
48182
  _this._responsive = _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["DataStorage"].ReadBoolean("Responsive", true);
47924
- _this._pointerData = { corners: [new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"]()], pointerDown: false };
47925
- _this._htmlPoints = [new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"]()];
47926
48183
  _this._matrixCache = [_babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Matrix2D"].Identity(), _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Matrix2D"].Identity(), _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Matrix2D"].Identity(), _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Matrix2D"].Identity()];
47927
- // Set visibility
47928
- props.globalState.onSelectionChangedObservable.add(function (selection) {
47929
- if (selection) {
47930
- _this.scalePoints.forEach(function (scalePoint) {
47931
- scalePoint.style.display = "flex";
47932
- });
47933
- }
47934
- else {
47935
- _this.scalePoints.forEach(function (scalePoint) {
47936
- scalePoint.style.display = "none";
47937
- });
48184
+ var scalePoints = [];
48185
+ for (var vertical = ScalePointPosition.Top; vertical <= ScalePointPosition.Bottom; vertical++) {
48186
+ for (var horizontal = ScalePointPosition.Left; horizontal <= ScalePointPosition.Right; horizontal++) {
48187
+ var isPivot = horizontal === ScalePointPosition.Center && vertical === ScalePointPosition.Center;
48188
+ scalePoints.push({ position: new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](), horizontalPosition: horizontal, verticalPosition: vertical, rotation: 0, isPivot: isPivot });
47938
48189
  }
48190
+ }
48191
+ _this._localBounds = new Rect(0, 0, 0, 0);
48192
+ _this.state = {
48193
+ canvasBounds: new Rect(0, 0, 0, 0),
48194
+ scalePoints: scalePoints,
48195
+ scalePointDragging: -1,
48196
+ isRotating: false
48197
+ };
48198
+ props.globalState.onSelectionChangedObservable.add(function (selection) {
47939
48199
  _this.updateGizmo(true);
47940
48200
  });
47941
48201
  _this.props.globalState.onResponsiveChangeObservable.add(function (value) {
47942
48202
  _this._responsive = value;
47943
48203
  });
47944
48204
  _this.props.globalState.onGizmoUpdateRequireObservable.add(function () {
47945
- // TODO - no need to update on each frame.
47946
48205
  _this.updateGizmo(true);
47947
48206
  });
48207
+ _this.updateGizmo(true);
47948
48208
  return _this;
47949
48209
  }
47950
48210
  GuiGizmoComponent.prototype.componentDidMount = function () { };
47951
48211
  /**
47952
- * Update the gizmo's corners positions
48212
+ * Update the gizmo's positions
47953
48213
  * @param force should the update be forced. otherwise it will be updated only when the pointer is down
47954
48214
  */
47955
48215
  GuiGizmoComponent.prototype.updateGizmo = function (force) {
47956
48216
  var _this = this;
47957
48217
  var selectedGuiNodes = this.props.globalState.workbench.selectedGuiNodes;
47958
- if (selectedGuiNodes.length > 0 && (force || this._pointerData.pointerDown)) {
47959
- var node_1 = selectedGuiNodes[0];
48218
+ if (selectedGuiNodes.length > 0 && (force || this.state.scalePointDragging !== -1)) {
47960
48219
  // Calculating the offsets for each scale point.
47961
- var half = 1 / 2;
47962
- this._htmlPoints[0].x = -node_1.widthInPixels * half;
47963
- this._htmlPoints[0].y = node_1.heightInPixels * half;
47964
- this._htmlPoints[1].x = -node_1.widthInPixels * half;
47965
- this._htmlPoints[1].y = -node_1.heightInPixels * half;
47966
- this._htmlPoints[2].x = node_1.widthInPixels * half;
47967
- this._htmlPoints[2].y = -node_1.heightInPixels * half;
47968
- this._htmlPoints[3].x = node_1.widthInPixels * half;
47969
- this._htmlPoints[3].y = node_1.heightInPixels * half;
47970
- this._htmlPoints[4].x = -node_1.widthInPixels * half;
47971
- this._htmlPoints[5].y = -node_1.heightInPixels * half;
47972
- this._htmlPoints[6].x = node_1.widthInPixels * half;
47973
- this._htmlPoints[7].y = node_1.heightInPixels * half;
47974
- // Calculate the pivot point
47975
- var pivotX = (node_1.transformCenterX - 0.5) * 2;
47976
- var pivotY = (node_1.transformCenterY - 0.5) * 2;
47977
- this._htmlPoints[8].x = node_1.widthInPixels * half * pivotX;
47978
- this._htmlPoints[8].y = node_1.heightInPixels * half * pivotY;
47979
- this.scalePoints.forEach(function (scalePoint, index) {
47980
- // TODO optimize this - unify?
47981
- var result = _this._nodeToRTTSpace(node_1, _this._htmlPoints[index].x, _this._htmlPoints[index].y, undefined, false);
47982
- var finalResult = _this._rttToCanvasSpace(node_1, result.x, result.y);
47983
- var scene = _this.props.globalState.workbench._scene;
47984
- var engine = scene.getEngine();
47985
- // If the scale point is outside the viewport, do not render
47986
- scalePoint.style.display =
47987
- finalResult.x < 0 || finalResult.x < 0 || finalResult.x > engine.getRenderWidth() || finalResult.y > engine.getRenderHeight() ? "none" : "flex";
47988
- if (scalePoint.style.display === "flex") {
47989
- scalePoint.style.left = finalResult.x + "px";
47990
- scalePoint.style.top = finalResult.y + "px";
47991
- var rotate = _this.getRotation(node_1) * (180 / Math.PI);
47992
- scalePoint.style.transform = "translate(-50%, -50%) rotate(" + rotate + "deg)";
47993
- }
48220
+ var half_1 = 1 / 2;
48221
+ var canvasBounds_1 = new Rect(Number.MAX_VALUE, Number.MAX_VALUE, 0, 0);
48222
+ selectedGuiNodes.forEach(function (node) {
48223
+ var localBounds = _this._computeLocalBounds(node);
48224
+ _this.state.scalePoints.forEach(function (scalePoint) {
48225
+ var nodeSpace = new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"]();
48226
+ switch (scalePoint.horizontalPosition) {
48227
+ case ScalePointPosition.Left:
48228
+ nodeSpace.x = localBounds.left;
48229
+ break;
48230
+ case ScalePointPosition.Center:
48231
+ nodeSpace.x = localBounds.center.x;
48232
+ break;
48233
+ case ScalePointPosition.Right:
48234
+ nodeSpace.x = localBounds.right;
48235
+ break;
48236
+ }
48237
+ switch (scalePoint.verticalPosition) {
48238
+ case ScalePointPosition.Top:
48239
+ nodeSpace.y = localBounds.top;
48240
+ break;
48241
+ case ScalePointPosition.Center:
48242
+ nodeSpace.y = localBounds.center.y;
48243
+ break;
48244
+ case ScalePointPosition.Bottom:
48245
+ nodeSpace.y = localBounds.bottom;
48246
+ break;
48247
+ }
48248
+ if (scalePoint.isPivot) {
48249
+ // Calculate the pivot point
48250
+ var pivotX = (node.transformCenterX - 0.5) * 2;
48251
+ var pivotY = (node.transformCenterY - 0.5) * 2;
48252
+ nodeSpace.x = node.widthInPixels * half_1 * pivotX;
48253
+ nodeSpace.y = node.heightInPixels * half_1 * pivotY;
48254
+ }
48255
+ var rtt = _this._nodeToRTTSpace(node, nodeSpace.x, nodeSpace.y, undefined, false);
48256
+ var canvas = _this._rttToCanvasSpace(rtt.x, rtt.y);
48257
+ if (canvas.x < canvasBounds_1.left) {
48258
+ canvasBounds_1.left = canvas.x;
48259
+ }
48260
+ if (canvas.x > canvasBounds_1.right) {
48261
+ canvasBounds_1.right = canvas.x;
48262
+ }
48263
+ if (canvas.y < canvasBounds_1.top) {
48264
+ canvasBounds_1.top = canvas.y;
48265
+ }
48266
+ if (canvas.y > canvasBounds_1.bottom) {
48267
+ canvasBounds_1.bottom = canvas.y;
48268
+ }
48269
+ // if we have a single control selected, put scale points at its edges, and rotate based on the rotation of the control
48270
+ if (selectedGuiNodes.length === 1) {
48271
+ scalePoint.position.x = canvas.x;
48272
+ scalePoint.position.y = canvas.y;
48273
+ scalePoint.rotation = _this.getRotation(node) * (180 / Math.PI);
48274
+ }
48275
+ });
48276
+ });
48277
+ // if we are in multiselect mode, use the bounds to determine the scale point locations, and set rotation = 0
48278
+ if (selectedGuiNodes.length > 1) {
48279
+ this.state.scalePoints.forEach(function (scalePoint) {
48280
+ switch (scalePoint.verticalPosition) {
48281
+ case ScalePointPosition.Top:
48282
+ scalePoint.position.y = canvasBounds_1.top;
48283
+ break;
48284
+ case ScalePointPosition.Center:
48285
+ scalePoint.position.y = canvasBounds_1.center.y;
48286
+ break;
48287
+ case ScalePointPosition.Bottom:
48288
+ scalePoint.position.y = canvasBounds_1.bottom;
48289
+ break;
48290
+ }
48291
+ switch (scalePoint.horizontalPosition) {
48292
+ case ScalePointPosition.Left:
48293
+ scalePoint.position.x = canvasBounds_1.left;
48294
+ break;
48295
+ case ScalePointPosition.Center:
48296
+ scalePoint.position.x = canvasBounds_1.center.x;
48297
+ break;
48298
+ case ScalePointPosition.Right:
48299
+ scalePoint.position.x = canvasBounds_1.right;
48300
+ break;
48301
+ }
48302
+ scalePoint.rotation = 0;
48303
+ });
48304
+ }
48305
+ this.setState({
48306
+ canvasBounds: canvasBounds_1,
48307
+ scalePoints: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spreadArray"])([], this.state.scalePoints, true),
47994
48308
  });
47995
48309
  }
48310
+ else {
48311
+ this.forceUpdate();
48312
+ }
47996
48313
  };
47997
48314
  GuiGizmoComponent.prototype._resetMatrixArray = function () {
47998
48315
  this._matrixCache.forEach(function (matrix) {
@@ -48087,7 +48404,7 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
48087
48404
  parent = parent.parent;
48088
48405
  }
48089
48406
  this._resetMatrixArray();
48090
- var matrices = listOfNodes.map(function (node, index) { return _this._getNodeMatrix(node, index === 0 && _this._pointerData.pointerDown && useStoredValuesIfPossible); });
48407
+ var matrices = listOfNodes.map(function (node, index) { return _this._getNodeMatrix(node, index === 0 && _this.state.scalePointDragging !== -1 && useStoredValuesIfPossible); });
48091
48408
  return matrices.reduce(function (acc, cur) {
48092
48409
  acc.multiplyToRef(cur, acc);
48093
48410
  return acc;
@@ -48113,8 +48430,7 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
48113
48430
  reference.y = round(reference.y);
48114
48431
  return reference;
48115
48432
  };
48116
- GuiGizmoComponent.prototype._rttToCanvasSpace = function (node, x, y, reference) {
48117
- if (reference === void 0) { reference = new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](); }
48433
+ GuiGizmoComponent.prototype._rttToCanvasSpace = function (x, y) {
48118
48434
  var tmpVec = new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector3"](x, 0, -y);
48119
48435
  // Get the final projection in view space
48120
48436
  var camera = this.props.globalState.workbench._camera;
@@ -48167,95 +48483,46 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
48167
48483
  }
48168
48484
  return rotation;
48169
48485
  };
48170
- GuiGizmoComponent.prototype.createBaseGizmo = function () {
48171
- var _this = this;
48172
- var _a, _b;
48173
- // Get the canvas element from the DOM.
48174
- var canvas = this.props.globalState.hostDocument.getElementById("workbench-canvas");
48175
- var scalePointCursors = [
48176
- "nesw-resize",
48177
- "nwse-resize",
48178
- "nesw-resize",
48179
- "nwse-resize",
48180
- "ew-resize",
48181
- "ns-resize",
48182
- "ew-resize",
48183
- "ns-resize"
48184
- ];
48185
- var _loop_1 = function (i) {
48186
- var scalePoint = canvas.ownerDocument.createElement("div");
48187
- scalePoint.className = "ge-scalePoint";
48188
- (_a = canvas.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(scalePoint);
48189
- scalePoint.style.position = "absolute";
48190
- scalePoint.style.display = "none";
48191
- scalePoint.style.left = i * 100 + "px";
48192
- scalePoint.style.top = i * 100 + "px";
48193
- scalePoint.style.transform = "translate(-50%, -50%)";
48194
- scalePoint.style.cursor = scalePointCursors[i];
48195
- scalePoint.addEventListener("pointerdown", function () {
48196
- _this._setMousePosition(i);
48197
- });
48198
- scalePoint.ondragstart = function (evt) {
48199
- evt.preventDefault();
48200
- };
48201
- scalePoint.draggable = true;
48202
- scalePoint.addEventListener("pointerup", this_1._onUp);
48203
- this_1.scalePoints.push(scalePoint);
48204
- };
48205
- var this_1 = this;
48206
- for (var i = 0; i < 8; ++i) {
48207
- _loop_1(i);
48208
- }
48209
- // Create the pivot point which is special
48210
- var pivotPoint = canvas.ownerDocument.createElement("img");
48211
- pivotPoint.src = gizmoPivotIcon;
48212
- pivotPoint.className = "ge-pivotPoint";
48213
- (_b = canvas.parentElement) === null || _b === void 0 ? void 0 : _b.appendChild(pivotPoint);
48214
- pivotPoint.style.position = "absolute";
48215
- pivotPoint.style.display = "none";
48216
- this.scalePoints.push(pivotPoint);
48217
- pivotPoint.ondragstart = function (evt) {
48218
- evt.preventDefault();
48219
- };
48220
- pivotPoint.draggable = true;
48221
- this.updateGizmo();
48222
- };
48223
48486
  GuiGizmoComponent.prototype.onUp = function (evt) {
48224
48487
  this._onUp(evt);
48225
48488
  };
48226
48489
  GuiGizmoComponent.prototype.onMove = function (evt) {
48227
48490
  this._onMove();
48228
48491
  };
48229
- /**
48230
- * Calculate the 4 corners in node space
48231
- * @param node The node to use
48232
- */
48233
- GuiGizmoComponent.prototype._nodeToCorners = function (node) {
48234
- var half = 0.5;
48235
- this._pointerData.corners[0].x = -node.widthInPixels * half;
48236
- this._pointerData.corners[0].y = node.heightInPixels * half;
48237
- this._pointerData.corners[1].x = -node.widthInPixels * half;
48238
- this._pointerData.corners[1].y = -node.heightInPixels * half;
48239
- this._pointerData.corners[2].x = node.widthInPixels * half;
48240
- this._pointerData.corners[2].y = -node.heightInPixels * half;
48241
- this._pointerData.corners[3].x = node.widthInPixels * half;
48242
- this._pointerData.corners[3].y = node.heightInPixels * half;
48492
+ GuiGizmoComponent.prototype._rotate = function (x, y, centerX, centerY, angle) {
48493
+ return {
48494
+ x: (x - centerX) * Math.cos(angle) - (y - centerY) * Math.sin(angle) + centerX,
48495
+ y: (x - centerX) * Math.sin(angle) + (y - centerY) * Math.cos(angle) + centerY,
48496
+ };
48243
48497
  };
48244
- /**
48245
- * Computer the node's width, height, top and left, using the 4 corners
48246
- * @param node the node we use
48247
- */
48248
- GuiGizmoComponent.prototype._updateNodeFromCorners = function (node) {
48249
- var upperLeft = this._pointerData.corners[1];
48250
- var lowerRight = this._pointerData.corners[3];
48251
- var width = lowerRight.x - upperLeft.x;
48252
- var height = lowerRight.y - upperLeft.y;
48253
- var left = this._scalePointIndex === 0 || this._scalePointIndex === 1;
48254
- var top = this._scalePointIndex === 1 || this._scalePointIndex === 2;
48498
+ GuiGizmoComponent.prototype._computeLocalBounds = function (node) {
48499
+ return new Rect(-node.widthInPixels * 0.5, -node.heightInPixels * 0.5, node.widthInPixels * 0.5, node.heightInPixels * 0.5);
48500
+ };
48501
+ GuiGizmoComponent.prototype._dragLocalBounds = function (toPosition) {
48502
+ var scalePoint = this.state.scalePoints[this.state.scalePointDragging];
48503
+ if (scalePoint.horizontalPosition === ScalePointPosition.Left) {
48504
+ this._localBounds.left = toPosition.x;
48505
+ }
48506
+ if (scalePoint.horizontalPosition === ScalePointPosition.Right) {
48507
+ this._localBounds.right = toPosition.x;
48508
+ }
48509
+ if (scalePoint.verticalPosition === ScalePointPosition.Left) {
48510
+ this._localBounds.top = toPosition.y;
48511
+ }
48512
+ if (scalePoint.verticalPosition === ScalePointPosition.Bottom) {
48513
+ this._localBounds.bottom = toPosition.y;
48514
+ }
48515
+ };
48516
+ GuiGizmoComponent.prototype._updateNodeFromLocalBounds = function (node, scalePointIndex) {
48517
+ var width = this._localBounds.right - this._localBounds.left;
48518
+ var height = this._localBounds.bottom - this._localBounds.top;
48519
+ var scalePoint = this.state.scalePoints[scalePointIndex];
48520
+ var left = scalePoint.horizontalPosition === ScalePointPosition.Left && scalePoint.verticalPosition !== ScalePointPosition.Center;
48521
+ var top = scalePoint.verticalPosition === ScalePointPosition.Top && scalePoint.horizontalPosition !== ScalePointPosition.Center;
48255
48522
  // calculate the center point
48256
48523
  var localRotation = this.getRotation(node, true);
48257
48524
  var localScaling = this.getScale(node, true);
48258
- var absoluteCenter = new _babylonjs_core_Maths_math_axis__WEBPACK_IMPORTED_MODULE_2__["Vector2"](upperLeft.x + width * 0.5, upperLeft.y + height * 0.5);
48525
+ var absoluteCenter = this._localBounds.center;
48259
48526
  var center = absoluteCenter.clone();
48260
48527
  // move to pivot
48261
48528
  center.multiplyInPlace(localScaling);
@@ -48303,46 +48570,71 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
48303
48570
  this.props.globalState.workbench.convertToPercentage(node, true);
48304
48571
  }
48305
48572
  };
48306
- GuiGizmoComponent.prototype._rotate = function (x, y, centerX, centerY, angle) {
48307
- return {
48308
- x: (x - centerX) * Math.cos(angle) - (y - centerY) * Math.sin(angle) + centerX,
48309
- y: (x - centerX) * Math.sin(angle) + (y - centerY) * Math.cos(angle) + centerY,
48310
- };
48311
- };
48312
- GuiGizmoComponent.prototype._setNodeCorner = function (node, corner, cornerIndex) {
48313
- // are we in a fixed-axis situation
48314
- var fixedAxis = cornerIndex > 3;
48315
- // the actual corner to update. This relies on the fact that the corners are in a specific order
48316
- var toUpdate = cornerIndex % 4;
48317
- if (fixedAxis) {
48318
- // check which axis is fixed
48319
- if (cornerIndex === 4 || cornerIndex === 6) {
48320
- // set the corner's y axis correctly
48321
- corner.y = this._pointerData.corners[toUpdate].y;
48322
- }
48323
- else {
48324
- // set the corner's x axis correctly
48325
- corner.x = this._pointerData.corners[toUpdate].x;
48326
- }
48327
- }
48328
- this._pointerData.corners[toUpdate].copyFrom(corner);
48329
- // also update the other corners
48330
- var next = (cornerIndex + 1) % 4;
48331
- var prev = (cornerIndex + 3) % 4;
48332
- // Update the next and the previous points
48333
- if (toUpdate % 2 === 0) {
48334
- this._pointerData.corners[next].x = this._pointerData.corners[toUpdate].x;
48335
- this._pointerData.corners[prev].y = this._pointerData.corners[toUpdate].y;
48336
- }
48337
- else {
48338
- this._pointerData.corners[next].y = this._pointerData.corners[toUpdate].y;
48339
- this._pointerData.corners[prev].x = this._pointerData.corners[toUpdate].x;
48340
- }
48341
- // update the transformation accordingly
48342
- this._updateNodeFromCorners(node);
48343
- };
48344
48573
  GuiGizmoComponent.prototype.render = function () {
48345
- return null;
48574
+ var _this = this;
48575
+ // don't render if we don't have anything selected, or if we're currently dragging
48576
+ if (this.props.globalState.workbench.selectedGuiNodes.length === 0 || this.state.scalePointDragging !== -1)
48577
+ return null;
48578
+ return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "gizmo" },
48579
+ lines.map(function (line, index) {
48580
+ var start = _this.state.scalePoints[line[0]];
48581
+ var end = _this.state.scalePoints[line[1]];
48582
+ // the vector between start and end
48583
+ var delta = end.position.subtract(start.position);
48584
+ var angle = Math.atan2(delta.y, delta.x);
48585
+ var length = delta.length();
48586
+ return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "bounding-box-line", key: index, style: {
48587
+ left: start.position.x + delta.x / 2 + "px",
48588
+ top: start.position.y + delta.y / 2 + "px",
48589
+ width: length + "px",
48590
+ transform: "translate(-50%, -50%) rotate(" + angle + "rad)",
48591
+ } }));
48592
+ }),
48593
+ this.state.scalePoints.map(function (scalePoint, index) {
48594
+ var style = {
48595
+ left: scalePoint.position.x + "px",
48596
+ top: scalePoint.position.y + "px",
48597
+ transform: "translate(-50%, -50%) rotate(" + scalePoint.rotation + "deg)",
48598
+ pointerEvents: _this.state.scalePointDragging === -1 && !scalePoint.isPivot && !_this.state.isRotating ? "auto" : "none",
48599
+ };
48600
+ if (scalePoint.isPivot) {
48601
+ if (_this.props.globalState.workbench.selectedGuiNodes.length > 1) {
48602
+ return null;
48603
+ }
48604
+ return react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("img", { className: "pivot-point", src: gizmoPivotIcon, style: style, key: index });
48605
+ }
48606
+ // compute which cursor icon to use on hover
48607
+ var angleOfCursor = (defaultScalePointRotations[index] + scalePoint.rotation);
48608
+ var angleAdjusted = angleOfCursor % (360);
48609
+ if (angleAdjusted < 0)
48610
+ angleAdjusted += 360;
48611
+ var increment = 45;
48612
+ var cursorIndex = Math.round(angleAdjusted / increment) % 8;
48613
+ var cursor = scalePointCursors[cursorIndex];
48614
+ var scalePointContainerSize = 30; // .scale-point-container width/height in px
48615
+ var rotateClickAreaSize = 20; // .rotate-click-area width/height
48616
+ var rotateClickAreaOffset = 7; // how much to offset the invisible rotate click area from the center
48617
+ var rotateClickAreaStyle = {
48618
+ top: (scalePointContainerSize - rotateClickAreaSize) / 2 + rotateClickAreaOffset * scalePoint.verticalPosition,
48619
+ left: (scalePointContainerSize - rotateClickAreaSize) / 2 + rotateClickAreaOffset * scalePoint.horizontalPosition,
48620
+ cursor: rotateCursors[cursorIndex]
48621
+ };
48622
+ var scaleClickAreaSize = 20; // .scale-click-area width/height
48623
+ var scaleClickAreaOffset = 5; // how much to offset the invisible scale click area from the center
48624
+ var scaleClickAreaStyle = {
48625
+ top: (scalePointContainerSize - scaleClickAreaSize) / 2 - scaleClickAreaOffset * scalePoint.verticalPosition,
48626
+ left: (scalePointContainerSize - scaleClickAreaSize) / 2 - scaleClickAreaOffset * scalePoint.horizontalPosition,
48627
+ cursor: cursor
48628
+ };
48629
+ return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { key: index, style: style, className: "scale-point-container" },
48630
+ react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "rotate-click-area", onPointerDown: function () { return _this._beginRotate(); }, style: rotateClickAreaStyle }),
48631
+ react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "scale-click-area", draggable: true, onDragStart: function (evt) { return evt.preventDefault(); }, onPointerDown: function () {
48632
+ _this._beginDraggingScalePoint(index);
48633
+ }, onPointerUp: _this._onUp, style: scaleClickAreaStyle }),
48634
+ react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "scale-point", draggable: true, onDragStart: function (evt) { return evt.preventDefault(); }, onPointerDown: function () {
48635
+ _this._beginDraggingScalePoint(index);
48636
+ }, onPointerUp: _this._onUp, style: { cursor: cursor } })));
48637
+ })));
48346
48638
  };
48347
48639
  return GuiGizmoComponent;
48348
48640
  }(react__WEBPACK_IMPORTED_MODULE_3__["Component"]));
@@ -48574,7 +48866,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48574
48866
  _this.props.globalState.hostDocument.addEventListener("keydown", _this.keyEvent, false);
48575
48867
  _this.props.globalState.hostDocument.defaultView.addEventListener("blur", _this.blurEvent, false);
48576
48868
  props.globalState.onWindowResizeObservable.add(function () {
48577
- //this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers();
48869
+ _this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers();
48578
48870
  _this._engine.resize();
48579
48871
  });
48580
48872
  _this.props.globalState.workbench = _this;
@@ -49149,6 +49441,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
49149
49441
  this.globalState.guiTexture = _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["AdvancedDynamicTexture"].CreateForMesh(this._textureMesh, textureSize, textureSize, true);
49150
49442
  this.globalState.guiTexture.rootContainer.clipChildren = false;
49151
49443
  this.globalState.guiTexture.useInvalidateRectOptimization = false;
49444
+ this.globalState.guiTexture.onEndRenderObservable.add(function () { return _this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers(); });
49152
49445
  this._textureMesh.showBoundingBox = true;
49153
49446
  this.artBoardBackground = new _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["Rectangle"]("Art-Board-Background");
49154
49447
  this.artBoardBackground.width = "100%";
@@ -49229,13 +49522,13 @@ var WorkbenchComponent = /** @class */ (function (_super) {
49229
49522
  var panningFn = function () {
49230
49523
  var pos = _this.getPosition(scene, camera, plane);
49231
49524
  _this.panning(pos, initialPos, camera.inertia, inertialPanning);
49232
- //this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers();
49233
49525
  };
49234
49526
  var inertialPanningFn = function () {
49235
49527
  if (inertialPanning.x !== 0 || inertialPanning.y !== 0 || inertialPanning.z !== 0) {
49236
49528
  camera.target.addInPlace(inertialPanning);
49237
49529
  inertialPanning.scaleInPlace(camera.inertia);
49238
49530
  _this.zeroIfClose(inertialPanning);
49531
+ _this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers();
49239
49532
  }
49240
49533
  };
49241
49534
  var wheelPrecisionFn = function () {
@@ -49302,7 +49595,8 @@ var WorkbenchComponent = /** @class */ (function (_super) {
49302
49595
  break;
49303
49596
  }
49304
49597
  }, _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_4__["KeyboardEventTypes"].KEYDOWN);
49305
- scene.onAfterRenderObservable.add(function () { _this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers(); });
49598
+ scene.onAfterRenderObservable.add(function () { if (_this._camera.inertialRadiusOffset != 0)
49599
+ _this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers(); });
49306
49600
  scene.onPointerObservable.add(zoomFnScrollWheel, _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_4__["PointerEventTypes"].POINTERWHEEL);
49307
49601
  scene.onBeforeRenderObservable.add(inertialPanningFn);
49308
49602
  scene.onBeforeRenderObservable.add(wheelPrecisionFn);
@@ -49372,7 +49666,6 @@ var WorkbenchComponent = /** @class */ (function (_super) {
49372
49666
  offset.scaleInPlace(inertiaComp);
49373
49667
  ref.addInPlace(offset);
49374
49668
  camera.inertialRadiusOffset += delta;
49375
- //this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers();
49376
49669
  };
49377
49670
  //Sets x y or z of passed in vector to zero if less than Epsilon
49378
49671
  WorkbenchComponent.prototype.zeroIfClose = function (vec) {
@@ -49585,7 +49878,6 @@ var GUIEditor = /** @class */ (function () {
49585
49878
  react_dom__WEBPACK_IMPORTED_MODULE_2__["render"](graphEditor, hostElement);
49586
49879
  if (!!globalState.guiTexture) return [3 /*break*/, 4];
49587
49880
  globalState.workbench.createGUICanvas();
49588
- globalState.guiGizmo.createBaseGizmo();
49589
49881
  if (!options.currentSnippetToken) return [3 /*break*/, 4];
49590
49882
  _a.label = 1;
49591
49883
  case 1: