@wcardinal/wcardinal-geditor
Version:
WebGL-based graphic editor, tester and viewer for supervisory systems
83 lines • 3.54 kB
JavaScript
/*
* 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