UNPKG

@wcardinal/wcardinal-geditor

Version:

WebGL-based graphic editor, tester and viewer for supervisory systems

83 lines 3.54 kB
/* * Copyright (C) 2019 Toshiba Corporation * SPDX-License-Identifier: Apache-2.0 */ import { __extends } from "tslib"; import { EShapeEditor } from "@wcardinal/wcardinal-ui"; import { Point } from "pixi.js"; import { UtilShapeTransforms } from "./util-shape-transforms"; var UtilShapeConnectorTransformData = /** @class */ (function (_super) { __extends(UtilShapeConnectorTransformData, _super); function UtilShapeConnectorTransformData() { var _this = _super.call(this) || this; _this.tailVector = new Point(); _this.headVector = new Point(); return _this; } return UtilShapeConnectorTransformData; }(EShapeEditor)); export { UtilShapeConnectorTransformData }; var UtilShapeConnectorTransforms = /** @class */ (function () { function UtilShapeConnectorTransforms() { } UtilShapeConnectorTransforms.prepare = function (connector) { var editor = null; if (connector.editor instanceof UtilShapeConnectorTransformData) { editor = connector.editor; } else { editor = new UtilShapeConnectorTransformData(); connector.editor = editor; } // Edges var tailVector = editor.tailVector; var headVector = editor.headVector; var edge = connector.edge; edge.tail.local.copyTo(tailVector); edge.head.local.copyTo(headVector); var localTransform = connector.transform.localTransform; localTransform.applyInverse(tailVector, tailVector); localTransform.applyInverse(headVector, headVector); // Other preparations UtilShapeTransforms.prepare(connector); }; UtilShapeConnectorTransforms.finalize = function (connector) { UtilShapeTransforms.finalize(connector); }; UtilShapeConnectorTransforms.apply = function (connector, transform) { var editor = connector.editor; if (editor instanceof UtilShapeConnectorTransformData) { var localTransform = editor.localTransform; editor.internalTransformParentInverse .copyTo(localTransform) .append(transform) .append(editor.internalTransform); var a = localTransform.a; var b = localTransform.b; var c = localTransform.c; var d = localTransform.d; var tx = localTransform.tx; var ty = localTransform.ty; var edge = connector.edge; var tail = edge.tail; var head = edge.head; var editorTailVector = editor.tailVector; var editorTailVectorX = editorTailVector.x; var editorTailVectorY = editorTailVector.y; var newTailLocalX = a * editorTailVectorX + c * editorTailVectorY + tx; var newTailLocalY = b * editorTailVectorX + d * editorTailVectorY + ty; var editorHeadVector = editor.headVector; var editorHeadVectorX = editorHeadVector.x; var editorHeadVectorY = editorHeadVector.y; var newHeadLocalX = a * editorHeadVectorX + c * editorHeadVectorY + tx; var newHeadLocalY = b * editorHeadVectorX + d * editorHeadVectorY + ty; edge.lock(); tail.local.set(newTailLocalX, newTailLocalY); head.local.set(newHeadLocalX, newHeadLocalY); edge.unlock(); } }; return UtilShapeConnectorTransforms; }()); export { UtilShapeConnectorTransforms }; //# sourceMappingURL=util-shape-connector-transforms.js.map