UNPKG

@wcardinal/wcardinal-geditor

Version:

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

43 lines 1.95 kB
import { __extends } from "tslib"; import { EShapeCapability, EShapeLockPart, toPointsBoundary } from "@wcardinal/wcardinal-ui"; import { EToolShapeEditLineBase } from "./e-tool-shape-edit-line-base"; var EToolShapeEditLine = /** @class */ (function (_super) { __extends(EToolShapeEditLine, _super); function EToolShapeEditLine(options) { return _super.call(this, options) || this; } EToolShapeEditLine.prototype.toCapability = function (shape) { return EShapeCapability.LINE_TAIL | EShapeCapability.LINE_HEAD; }; EToolShapeEditLine.prototype.newShape = function (values, segments, style, oldShape) { var boundary = toPointsBoundary(values, [0, 0, 0, 0]); var cx = (boundary[2] + boundary[0]) * 0.5; var cy = (boundary[3] + boundary[1]) * 0.5; var sx = boundary[2] - boundary[0]; var sy = boundary[3] - boundary[1]; var result = oldShape.clone(); var transform = result.transform; var transformPosition = transform.position; var px = transformPosition.x; var py = transformPosition.y; var localTransform = oldShape.transform.localTransform; var dx = localTransform.a * cx + localTransform.c * cy; var dy = localTransform.b * cx + localTransform.d * cy; var newValues = []; for (var i = 0, imax = values.length; i < imax; i += 2) { newValues.push(values[i + 0] - cx, values[i + 1] - cy); } result.lock(EShapeLockPart.UPLOADED); result.transform.position.set(px + dx, py + dy); result.size.set(sx, sy); var points = result.points; if (points) { points.set(newValues, segments, style); } result.unlock(EShapeLockPart.UPLOADED, true); return result; }; return EToolShapeEditLine; }(EToolShapeEditLineBase)); export { EToolShapeEditLine }; //# sourceMappingURL=e-tool-shape-edit-line.js.map