import { __extends } from "tslib"; import Path from '../Path.js'; import { subPixelOptimizeLine } from '../helper/subPixelOptimize.js'; var subPixelOptimizeOutputShape = {}; var LineShape = (function () { function LineShape() { this.x1 = 0; this.y1 = 0; this.x2 = 0; this.y2 = 0; this.percent = 1; } return LineShape; }()); export { LineShape }; var Line = (function (_super) { __extends(Line, _super); function Line(opts) { return _super.call(this, opts) || this; } Line.prototype.getDefaultStyle = function () { return { stroke: '#000', fill: null }; }; Line.prototype.getDefaultShape = function () { return new LineShape(); }; Line.prototype.buildPath = function (ctx, shape) { var x1; var y1; var x2; var y2; if (this.subPixelOptimize) { var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style); x1 = optimizedShape.x1; y1 = optimizedShape.y1; x2 = optimizedShape.x2; y2 = optimizedShape.y2; } else { x1 = shape.x1; y1 = shape.y1; x2 = shape.x2; y2 = shape.y2; } var percent = shape.percent; if (percent === 0) { return; } ctx.moveTo(x1, y1); if (percent < 1) { x2 = x1 * (1 - percent) + x2 * percent; y2 = y1 * (1 - percent) + y2 * percent; } ctx.lineTo(x2, y2); }; Line.prototype.pointAt = function (p) { var shape = this.shape; return [ shape.x1 * (1 - p) + shape.x2 * p, shape.y1 * (1 - p) + shape.y2 * p ]; }; return Line; }(Path)); Line.prototype.type = 'line'; export default Line;