UNPKG

1.89 kBJavaScriptView Raw
1import { __extends } from "tslib";
2import Path from '../Path.js';
3import { subPixelOptimizeLine } from '../helper/subPixelOptimize.js';
4var subPixelOptimizeOutputShape = {};
5var LineShape = (function () {
6 function LineShape() {
7 this.x1 = 0;
8 this.y1 = 0;
9 this.x2 = 0;
10 this.y2 = 0;
11 this.percent = 1;
12 }
13 return LineShape;
14}());
15export { LineShape };
16var Line = (function (_super) {
17 __extends(Line, _super);
18 function Line(opts) {
19 return _super.call(this, opts) || this;
20 }
21 Line.prototype.getDefaultStyle = function () {
22 return {
23 stroke: '#000',
24 fill: null
25 };
26 };
27 Line.prototype.getDefaultShape = function () {
28 return new LineShape();
29 };
30 Line.prototype.buildPath = function (ctx, shape) {
31 var x1;
32 var y1;
33 var x2;
34 var y2;
35 if (this.subPixelOptimize) {
36 var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);
37 x1 = optimizedShape.x1;
38 y1 = optimizedShape.y1;
39 x2 = optimizedShape.x2;
40 y2 = optimizedShape.y2;
41 }
42 else {
43 x1 = shape.x1;
44 y1 = shape.y1;
45 x2 = shape.x2;
46 y2 = shape.y2;
47 }
48 var percent = shape.percent;
49 if (percent === 0) {
50 return;
51 }
52 ctx.moveTo(x1, y1);
53 if (percent < 1) {
54 x2 = x1 * (1 - percent) + x2 * percent;
55 y2 = y1 * (1 - percent) + y2 * percent;
56 }
57 ctx.lineTo(x2, y2);
58 };
59 Line.prototype.pointAt = function (p) {
60 var shape = this.shape;
61 return [
62 shape.x1 * (1 - p) + shape.x2 * p,
63 shape.y1 * (1 - p) + shape.y2 * p
64 ];
65 };
66 return Line;
67}(Path));
68Line.prototype.type = 'line';
69export default Line;