plotboilerplate 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/README.md +1 -1
  2. package/dist/index.esm.js +244 -63
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.esm.min.js +1 -1
  5. package/dist/index.esm.min.js.map +1 -1
  6. package/dist/plotboilerplate.browser.min.js +1 -1
  7. package/dist/plotboilerplate.browser.min.js.map +1 -1
  8. package/dist/plotboilerplate.js +243 -74
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +1 -1
  11. package/src/cjs/Bounds.d.ts +14 -5
  12. package/src/cjs/Bounds.js +18 -8
  13. package/src/cjs/Bounds.js.map +1 -1
  14. package/src/cjs/CubicBezierCurve.d.ts +20 -3
  15. package/src/cjs/CubicBezierCurve.js +25 -2
  16. package/src/cjs/CubicBezierCurve.js.map +1 -1
  17. package/src/cjs/Line.d.ts +46 -4
  18. package/src/cjs/Line.js +60 -3
  19. package/src/cjs/Line.js.map +1 -1
  20. package/src/cjs/PlotBoilerplate.d.ts +5 -2
  21. package/src/cjs/PlotBoilerplate.js +52 -30
  22. package/src/cjs/PlotBoilerplate.js.map +1 -1
  23. package/src/cjs/Polygon.js +1 -1
  24. package/src/cjs/Polygon.js.map +1 -1
  25. package/src/cjs/VEllipseSector.d.ts +4 -3
  26. package/src/cjs/VEllipseSector.js +15 -8
  27. package/src/cjs/VEllipseSector.js.map +1 -1
  28. package/src/cjs/Vector.d.ts +14 -3
  29. package/src/cjs/Vector.js +21 -2
  30. package/src/cjs/Vector.js.map +1 -1
  31. package/src/cjs/Vertex.d.ts +33 -1
  32. package/src/cjs/Vertex.js +43 -1
  33. package/src/cjs/Vertex.js.map +1 -1
  34. package/src/cjs/drawutilssvg.d.ts +2 -1
  35. package/src/cjs/drawutilssvg.js +7 -19
  36. package/src/cjs/drawutilssvg.js.map +1 -1
  37. package/src/cjs/entry.js +1 -0
  38. package/src/cjs/interfaces/additionals.d.ts +95 -0
  39. package/src/cjs/interfaces/additionals.js +3 -0
  40. package/src/cjs/interfaces/additionals.js.map +1 -0
  41. package/src/cjs/interfaces/core.d.ts +7 -0
  42. package/src/cjs/interfaces/core.js +2 -0
  43. package/src/cjs/interfaces/core.js.map +1 -1
  44. package/src/cjs/interfaces/index.d.ts +1 -0
  45. package/src/cjs/interfaces/index.js +1 -0
  46. package/src/cjs/interfaces/index.js.map +1 -1
  47. package/src/cjs/utils/algorithms/arrayShuffle.d.ts +8 -0
  48. package/src/cjs/utils/algorithms/arrayShuffle.js +15 -0
  49. package/src/cjs/utils/algorithms/arrayShuffle.js.map +1 -0
  50. package/src/cjs/utils/algorithms/detectPaths.d.ts +21 -0
  51. package/src/cjs/utils/algorithms/detectPaths.js +169 -0
  52. package/src/cjs/utils/algorithms/detectPaths.js.map +1 -0
  53. package/src/cjs/utils/creategui.js +7 -0
  54. package/src/cjs/utils/datastructures/Color.d.ts +1 -1
  55. package/src/cjs/utils/datastructures/Color.js +4 -2
  56. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  57. package/src/cjs/utils/datastructures/GenericPath.d.ts +75 -0
  58. package/src/cjs/utils/datastructures/GenericPath.js +105 -0
  59. package/src/cjs/utils/datastructures/GenericPath.js.map +1 -0
  60. package/src/cjs/utils/datastructures/GirihTile.d.ts +1 -1
  61. package/src/cjs/utils/io/FileDrop.d.ts +11 -1
  62. package/src/cjs/utils/io/FileDrop.js +41 -10
  63. package/src/cjs/utils/io/FileDrop.js.map +1 -1
  64. package/src/cjs/utils/parsers/svg/parseSVGPathData.d.ts +26 -0
  65. package/src/cjs/utils/parsers/svg/parseSVGPathData.js +463 -0
  66. package/src/cjs/utils/parsers/svg/parseSVGPathData.js.map +1 -0
  67. package/src/cjs/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
  68. package/src/cjs/utils/parsers/svg/splitSVGPathData.js +49 -0
  69. package/src/cjs/utils/parsers/svg/splitSVGPathData.js.map +1 -0
  70. package/src/cjs/utils/parsers/svg/types.d.ts +43 -0
  71. package/src/cjs/utils/parsers/svg/types.js +16 -0
  72. package/src/cjs/utils/parsers/svg/types.js.map +1 -0
  73. package/src/esm/Bounds.d.ts +14 -5
  74. package/src/esm/Bounds.js +18 -8
  75. package/src/esm/Bounds.js.map +1 -1
  76. package/src/esm/CubicBezierCurve.d.ts +20 -3
  77. package/src/esm/CubicBezierCurve.js +25 -2
  78. package/src/esm/CubicBezierCurve.js.map +1 -1
  79. package/src/esm/Line.d.ts +46 -4
  80. package/src/esm/Line.js +60 -3
  81. package/src/esm/Line.js.map +1 -1
  82. package/src/esm/PlotBoilerplate.d.ts +5 -2
  83. package/src/esm/PlotBoilerplate.js +52 -30
  84. package/src/esm/PlotBoilerplate.js.map +1 -1
  85. package/src/esm/Polygon.js +1 -1
  86. package/src/esm/Polygon.js.map +1 -1
  87. package/src/esm/VEllipseSector.d.ts +4 -3
  88. package/src/esm/VEllipseSector.js +15 -8
  89. package/src/esm/VEllipseSector.js.map +1 -1
  90. package/src/esm/Vector.d.ts +13 -2
  91. package/src/esm/Vector.js +23 -4
  92. package/src/esm/Vector.js.map +1 -1
  93. package/src/esm/Vertex.d.ts +33 -1
  94. package/src/esm/Vertex.js +43 -1
  95. package/src/esm/Vertex.js.map +1 -1
  96. package/src/esm/drawutilssvg.d.ts +2 -1
  97. package/src/esm/drawutilssvg.js +7 -19
  98. package/src/esm/drawutilssvg.js.map +1 -1
  99. package/src/esm/entry.js +1 -0
  100. package/src/esm/interfaces/additionals.d.ts +95 -0
  101. package/src/esm/interfaces/additionals.js +2 -0
  102. package/src/esm/interfaces/additionals.js.map +1 -0
  103. package/src/esm/interfaces/core.d.ts +7 -0
  104. package/src/esm/interfaces/core.js +2 -0
  105. package/src/esm/interfaces/core.js.map +1 -1
  106. package/src/esm/interfaces/index.d.ts +1 -0
  107. package/src/esm/interfaces/index.js +1 -0
  108. package/src/esm/interfaces/index.js.map +1 -1
  109. package/src/esm/utils/algorithms/arrayShuffle.d.ts +8 -0
  110. package/src/esm/utils/algorithms/arrayShuffle.js +11 -0
  111. package/src/esm/utils/algorithms/arrayShuffle.js.map +1 -0
  112. package/src/esm/utils/algorithms/detectPaths.d.ts +21 -0
  113. package/src/esm/utils/algorithms/detectPaths.js +165 -0
  114. package/src/esm/utils/algorithms/detectPaths.js.map +1 -0
  115. package/src/esm/utils/datastructures/Color.d.ts +1 -1
  116. package/src/esm/utils/datastructures/Color.js +4 -2
  117. package/src/esm/utils/datastructures/Color.js.map +1 -1
  118. package/src/esm/utils/datastructures/GenericPath.d.ts +75 -0
  119. package/src/esm/utils/datastructures/GenericPath.js +100 -0
  120. package/src/esm/utils/datastructures/GenericPath.js.map +1 -0
  121. package/src/esm/utils/datastructures/GirihTile.d.ts +1 -1
  122. package/src/esm/utils/io/FileDrop.d.ts +11 -1
  123. package/src/esm/utils/io/FileDrop.js +41 -10
  124. package/src/esm/utils/io/FileDrop.js.map +1 -1
  125. package/src/esm/utils/parsers/svg/parseSVGPathData.d.ts +26 -0
  126. package/src/esm/utils/parsers/svg/parseSVGPathData.js +459 -0
  127. package/src/esm/utils/parsers/svg/parseSVGPathData.js.map +1 -0
  128. package/src/esm/utils/parsers/svg/splitSVGPathData.d.ts +20 -0
  129. package/src/esm/utils/parsers/svg/splitSVGPathData.js +45 -0
  130. package/src/esm/utils/parsers/svg/splitSVGPathData.js.map +1 -0
  131. package/src/esm/utils/parsers/svg/types.d.ts +43 -0
  132. package/src/esm/utils/parsers/svg/types.js +15 -0
  133. package/src/esm/utils/parsers/svg/types.js.map +1 -0
  134. package/src/ts/Bounds.ts +19 -8
  135. package/src/ts/CubicBezierCurve.ts +29 -4
  136. package/src/ts/Line.ts +70 -6
  137. package/src/ts/PlotBoilerplate.ts +57 -35
  138. package/src/ts/Polygon.ts +1 -1
  139. package/src/ts/VEllipseSector.ts +22 -15
  140. package/src/ts/Vector.ts +24 -4
  141. package/src/ts/Vertex.ts +46 -1
  142. package/src/ts/drawutilssvg.ts +8 -19
  143. package/src/ts/interfaces/additionals.ts +105 -0
  144. package/src/ts/interfaces/core.ts +5 -0
  145. package/src/ts/interfaces/index.ts +1 -0
  146. package/src/ts/utils/algorithms/arrayShuffle.ts +11 -0
  147. package/src/ts/utils/algorithms/detectPaths.ts +195 -0
  148. package/src/ts/utils/datastructures/Color.ts +8 -4
  149. package/src/ts/utils/datastructures/GenericPath.ts +113 -0
  150. package/src/ts/utils/datastructures/GirihTile.ts +1 -1
  151. package/src/ts/utils/io/FileDrop.ts +51 -10
  152. package/src/ts/utils/parsers/svg/parseSVGPathData.ts +572 -0
  153. package/src/ts/utils/parsers/svg/splitSVGPathData.ts +50 -0
  154. package/src/ts/utils/parsers/svg/types.ts +70 -0
  155. package/changelog.md +0 -731
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plotboilerplate",
3
- "version": "1.18.0",
3
+ "version": "1.20.0",
4
4
  "description": "A simple javascript plotting boilerplate for 2d stuff.",
5
5
  "private": false,
6
6
  "main": "src/cjs/index.js",
@@ -6,7 +6,9 @@
6
6
  * @modified 2021-02-02 Added the `toPolygon` method.
7
7
  * @modified 2021-06-21 (mid-summer) Added `getCenter` method.
8
8
  * @modified 2022-02-01 Added the `toString` function.
9
- * @version 1.4.0
9
+ * @modified 2022-10-09 Added the `fromDimension` function.
10
+ * @modified 2022-11-28 Added the `clone` method.
11
+ * @version 1.6.0
10
12
  **/
11
13
  import { Polygon } from "./Polygon";
12
14
  import { XYCoords, IBounds, XYDimension } from "./interfaces";
@@ -89,14 +91,12 @@ export declare class Bounds implements IBounds, XYDimension {
89
91
  /**
90
92
  * Clone this bounds object (create a deep clone).
91
93
  *
92
- * Note: the returned format might change in the future, so please do not
93
- * rely on the returned string format.
94
- *
95
94
  * @method clone
96
95
  * @instance
97
96
  * @memberof Bounds
98
- * @returns {string} Creates a deep clone of this bounds object. The returned object's `min` and `max` instances are `Vertex` instances.
97
+ * @returns {Bounds} Creates a deep clone of this bounds object.
99
98
  */
99
+ clone(): Bounds;
100
100
  /**
101
101
  * Compute the minimal bounding box for a given set of vertices.
102
102
  *
@@ -109,4 +109,13 @@ export declare class Bounds implements IBounds, XYDimension {
109
109
  * @return The minimal Bounds for the given vertices.
110
110
  **/
111
111
  static computeFromVertices(vertices: Array<Vertex>): Bounds;
112
+ /**
113
+ * Create a new `Bounds` instance just from `width` and `height`, located at (0,0) or the optionally given origin.
114
+ *
115
+ * @param {number} width - The width of the bounds
116
+ * @param {number} height - The height of the bounds
117
+ * @param {XYCoords={x:0,y:0}} origin - [optional] A origin to locate the new Bounds object at.
118
+ * @returns {Bounds} A new `Bounds` instance width given width and height, located at (0,0) or the given origin..
119
+ */
120
+ static fromDimension(width: number, height: number, origin?: XYCoords): Bounds;
112
121
  }
package/src/cjs/Bounds.js CHANGED
@@ -7,7 +7,9 @@
7
7
  * @modified 2021-02-02 Added the `toPolygon` method.
8
8
  * @modified 2021-06-21 (mid-summer) Added `getCenter` method.
9
9
  * @modified 2022-02-01 Added the `toString` function.
10
- * @version 1.4.0
10
+ * @modified 2022-10-09 Added the `fromDimension` function.
11
+ * @modified 2022-11-28 Added the `clone` method.
12
+ * @version 1.6.0
11
13
  **/
12
14
  Object.defineProperty(exports, "__esModule", { value: true });
13
15
  exports.Bounds = void 0;
@@ -74,17 +76,14 @@ var Bounds = /** @class */ (function () {
74
76
  /**
75
77
  * Clone this bounds object (create a deep clone).
76
78
  *
77
- * Note: the returned format might change in the future, so please do not
78
- * rely on the returned string format.
79
- *
80
79
  * @method clone
81
80
  * @instance
82
81
  * @memberof Bounds
83
- * @returns {string} Creates a deep clone of this bounds object. The returned object's `min` and `max` instances are `Vertex` instances.
82
+ * @returns {Bounds} Creates a deep clone of this bounds object.
84
83
  */
85
- // clone() {
86
- // return new Bounds(new Vertex(this.min.x, this.min.y), new Vertex(this.max.x, this.max.y));
87
- // }
84
+ Bounds.prototype.clone = function () {
85
+ return new Bounds({ x: this.min.x, y: this.min.y }, { x: this.max.x, y: this.max.y });
86
+ };
88
87
  /**
89
88
  * Compute the minimal bounding box for a given set of vertices.
90
89
  *
@@ -113,6 +112,17 @@ var Bounds = /** @class */ (function () {
113
112
  }
114
113
  return new Bounds(new Vertex_1.Vertex(xMin, yMin), new Vertex_1.Vertex(xMax, yMax));
115
114
  };
115
+ /**
116
+ * Create a new `Bounds` instance just from `width` and `height`, located at (0,0) or the optionally given origin.
117
+ *
118
+ * @param {number} width - The width of the bounds
119
+ * @param {number} height - The height of the bounds
120
+ * @param {XYCoords={x:0,y:0}} origin - [optional] A origin to locate the new Bounds object at.
121
+ * @returns {Bounds} A new `Bounds` instance width given width and height, located at (0,0) or the given origin..
122
+ */
123
+ Bounds.fromDimension = function (width, height, origin) {
124
+ return new Bounds(origin !== null && origin !== void 0 ? origin : { x: 0, y: 0 }, { x: (origin ? origin.x : 0) + width, y: (origin ? origin.y : 0) + height });
125
+ };
116
126
  return Bounds;
117
127
  }()); // END class bounds
118
128
  exports.Bounds = Bounds;
@@ -1 +1 @@
1
- {"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bounds.js","sourceRoot":"","sources":["../ts/Bounds.ts"],"names":[],"mappings":"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"}
@@ -20,14 +20,15 @@
20
20
  * @modified 2021-01-20 Added UID.
21
21
  * @modified 2022-02-02 Added the `destroy` method.
22
22
  * @modified 2022-02-02 Cleared the `toSVGPathData` function (deprecated). Use `drawutilssvg` instead.
23
- * @version 2.6.0
23
+ * @modified 2022-10-17 The `CubicBezierCurve` class now implements the new `PathSegment` interface.
24
+ * @version 2.7.1
24
25
  *
25
26
  * @file CubicBezierCurve
26
27
  * @public
27
28
  **/
28
29
  import { Bounds } from "./Bounds";
29
30
  import { Vertex } from "./Vertex";
30
- import { XYCoords, UID } from "./interfaces";
31
+ import { XYCoords, UID, PathSegment } from "./interfaces";
31
32
  /**
32
33
  * @classdesc A refactored cubic bezier curve class.
33
34
  *
@@ -38,7 +39,7 @@ import { XYCoords, UID } from "./interfaces";
38
39
  * @requires UID
39
40
  * @requires UIDGenerator
40
41
  */
41
- export declare class CubicBezierCurve {
42
+ export declare class CubicBezierCurve implements PathSegment {
42
43
  /** @constant {number} */
43
44
  static readonly START_POINT: number;
44
45
  /** @constant {number} */
@@ -388,6 +389,22 @@ export declare class CubicBezierCurve {
388
389
  * @return {CubicBezierCurve}
389
390
  **/
390
391
  clone(): CubicBezierCurve;
392
+ /**
393
+ * Get the tangent's end point at the start point of this segment.
394
+ *
395
+ * @method getStartTangent
396
+ * @memberof PathSegment
397
+ * @return {Vertex} The end point of the starting point's tangent.
398
+ */
399
+ getStartTangent(): Vertex;
400
+ /**
401
+ * Get the tangent's end point at the end point of this segment.
402
+ *
403
+ * @method getEndTangent
404
+ * @memberof PathSegment
405
+ * @return {Vertex} The end point of the ending point's tangent.
406
+ */
407
+ getEndTangent(): Vertex;
391
408
  /**
392
409
  * Check if this and the specified curve are equal.<br>
393
410
  * <br>
@@ -21,7 +21,8 @@
21
21
  * @modified 2021-01-20 Added UID.
22
22
  * @modified 2022-02-02 Added the `destroy` method.
23
23
  * @modified 2022-02-02 Cleared the `toSVGPathData` function (deprecated). Use `drawutilssvg` instead.
24
- * @version 2.6.0
24
+ * @modified 2022-10-17 The `CubicBezierCurve` class now implements the new `PathSegment` interface.
25
+ * @version 2.7.1
25
26
  *
26
27
  * @file CubicBezierCurve
27
28
  * @public
@@ -73,7 +74,7 @@ var CubicBezierCurve = /** @class */ (function () {
73
74
  // An array of floats
74
75
  this.segmentLengths = [];
75
76
  // float
76
- this.arcLength = null;
77
+ // this.arcLength = null;
77
78
  this.updateArcLengths();
78
79
  }
79
80
  /**
@@ -505,6 +506,28 @@ var CubicBezierCurve = /** @class */ (function () {
505
506
  CubicBezierCurve.prototype.clone = function () {
506
507
  return new CubicBezierCurve(this.getStartPoint().clone(), this.getEndPoint().clone(), this.getStartControlPoint().clone(), this.getEndControlPoint().clone());
507
508
  };
509
+ //---BEGIN PathSegment-------------------------
510
+ /**
511
+ * Get the tangent's end point at the start point of this segment.
512
+ *
513
+ * @method getStartTangent
514
+ * @memberof PathSegment
515
+ * @return {Vertex} The end point of the starting point's tangent.
516
+ */
517
+ CubicBezierCurve.prototype.getStartTangent = function () {
518
+ return this.startControlPoint;
519
+ };
520
+ /**
521
+ * Get the tangent's end point at the end point of this segment.
522
+ *
523
+ * @method getEndTangent
524
+ * @memberof PathSegment
525
+ * @return {Vertex} The end point of the ending point's tangent.
526
+ */
527
+ CubicBezierCurve.prototype.getEndTangent = function () {
528
+ return this.endControlPoint;
529
+ };
530
+ //---END PathSegment-------------------------
508
531
  /**
509
532
  * Check if this and the specified curve are equal.<br>
510
533
  * <br>
@@ -1 +1 @@
1
- {"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CubicBezierCurve.js","sourceRoot":"","sources":["../ts/CubicBezierCurve.ts"],"names":[],"mappings":"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"}
package/src/cjs/Line.d.ts CHANGED
@@ -13,14 +13,16 @@
13
13
  * @modified 2020-03-23 Ported to Typescript from JS.
14
14
  * @modified 2020-12-04 The `intersection` function returns undefined if both lines are parallel.
15
15
  * @modified 2022-02-02 Added the `destroy` method.
16
- * @version 2.2.0
16
+ * @modified 2022-10-09 Changed the actual return value of the `intersection` function to null (was undefined before).
17
+ * @modified 2022-10-17 Adding these methods from the `PathSegment` interface: getStartPoint, getEndPoint, revert.
18
+ * @version 2.3.0
17
19
  *
18
20
  * @file Line
19
21
  * @public
20
22
  **/
21
23
  import { VertTuple } from "./VertTuple";
22
24
  import { Vertex } from "./Vertex";
23
- import { SVGSerializable } from "./interfaces";
25
+ import { PathSegment, SVGSerializable } from "./interfaces";
24
26
  /**
25
27
  * @classdesc A line consists of two vertices a and b.<br>
26
28
  * <br>
@@ -29,7 +31,7 @@ import { SVGSerializable } from "./interfaces";
29
31
  *
30
32
  * @requires Vertex
31
33
  */
32
- export declare class Line extends VertTuple<Line> implements SVGSerializable {
34
+ export declare class Line extends VertTuple<Line> implements SVGSerializable, PathSegment {
33
35
  /**
34
36
  * Required to generate proper CSS classes and other class related IDs.
35
37
  **/
@@ -52,5 +54,45 @@ export declare class Line extends VertTuple<Line> implements SVGSerializable {
52
54
  * @instance
53
55
  * @memberof Line
54
56
  **/
55
- intersection(line: Line): Vertex | undefined;
57
+ intersection(line: Line): Vertex | null;
58
+ /**
59
+ * Get the start point of this path segment.
60
+ *
61
+ * @method getStartPoint
62
+ * @memberof PathSegment
63
+ * @return {Vertex} The start point of this path segment.
64
+ */
65
+ getStartPoint(): Vertex;
66
+ /**
67
+ * Get the end point of this path segment.
68
+ *
69
+ * @method getEndPoint
70
+ * @memberof PathSegment
71
+ * @return {Vertex} The end point of this path segment.
72
+ */
73
+ getEndPoint(): Vertex;
74
+ /**
75
+ * Get the tangent's end point at the start point of this segment.
76
+ *
77
+ * @method getStartTangent
78
+ * @memberof PathSegment
79
+ * @return {Vertex} The end point of the starting point's tangent.
80
+ */
81
+ getStartTangent(): Vertex;
82
+ /**
83
+ * Get the tangent's end point at the end point of this segment.
84
+ *
85
+ * @method getEndTangent
86
+ * @memberof PathSegment
87
+ * @return {Vertex} The end point of the ending point's tangent.
88
+ */
89
+ getEndTangent(): Vertex;
90
+ /**
91
+ * Inverse this path segment (in-place) and return this same instance (useful for chaining).
92
+ *
93
+ * @method reverse
94
+ * @memberof PathSegment
95
+ * @return {PathSegment} This path segment instance (for chaining).
96
+ */
97
+ reverse(): Line;
56
98
  }
package/src/cjs/Line.js CHANGED
@@ -14,7 +14,9 @@
14
14
  * @modified 2020-03-23 Ported to Typescript from JS.
15
15
  * @modified 2020-12-04 The `intersection` function returns undefined if both lines are parallel.
16
16
  * @modified 2022-02-02 Added the `destroy` method.
17
- * @version 2.2.0
17
+ * @modified 2022-10-09 Changed the actual return value of the `intersection` function to null (was undefined before).
18
+ * @modified 2022-10-17 Adding these methods from the `PathSegment` interface: getStartPoint, getEndPoint, revert.
19
+ * @version 2.3.0
18
20
  *
19
21
  * @file Line
20
22
  * @public
@@ -74,8 +76,9 @@ var Line = /** @class */ (function (_super) {
74
76
  // !!! DO NOT MOVE TO VertTuple
75
77
  Line.prototype.intersection = function (line) {
76
78
  var denominator = this.denominator(line);
77
- if (denominator == 0)
79
+ if (denominator == 0) {
78
80
  return null;
81
+ }
79
82
  var a = this.a.y - line.a.y;
80
83
  var b = this.a.x - line.a.x;
81
84
  var numerator1 = (line.b.x - line.a.x) * a - (line.b.y - line.a.y) * b;
@@ -86,11 +89,65 @@ var Line = /** @class */ (function (_super) {
86
89
  var x = this.a.x + a * (this.b.x - this.a.x);
87
90
  var y = this.a.y + a * (this.b.y - this.a.y);
88
91
  if (isNaN(a) || isNaN(x) || isNaN(y)) {
89
- return undefined;
92
+ return null;
90
93
  }
91
94
  // if we cast these lines infinitely in both directions, they intersect here:
92
95
  return new Vertex_1.Vertex(x, y);
93
96
  };
97
+ //--- Implement PathSegment ---
98
+ /**
99
+ * Get the start point of this path segment.
100
+ *
101
+ * @method getStartPoint
102
+ * @memberof PathSegment
103
+ * @return {Vertex} The start point of this path segment.
104
+ */
105
+ Line.prototype.getStartPoint = function () {
106
+ return this.a;
107
+ };
108
+ /**
109
+ * Get the end point of this path segment.
110
+ *
111
+ * @method getEndPoint
112
+ * @memberof PathSegment
113
+ * @return {Vertex} The end point of this path segment.
114
+ */
115
+ Line.prototype.getEndPoint = function () {
116
+ return this.b;
117
+ };
118
+ /**
119
+ * Get the tangent's end point at the start point of this segment.
120
+ *
121
+ * @method getStartTangent
122
+ * @memberof PathSegment
123
+ * @return {Vertex} The end point of the starting point's tangent.
124
+ */
125
+ Line.prototype.getStartTangent = function () {
126
+ return this.b;
127
+ };
128
+ /**
129
+ * Get the tangent's end point at the end point of this segment.
130
+ *
131
+ * @method getEndTangent
132
+ * @memberof PathSegment
133
+ * @return {Vertex} The end point of the ending point's tangent.
134
+ */
135
+ Line.prototype.getEndTangent = function () {
136
+ return this.a;
137
+ };
138
+ /**
139
+ * Inverse this path segment (in-place) and return this same instance (useful for chaining).
140
+ *
141
+ * @method reverse
142
+ * @memberof PathSegment
143
+ * @return {PathSegment} This path segment instance (for chaining).
144
+ */
145
+ Line.prototype.reverse = function () {
146
+ var tmp = this.a;
147
+ this.a = this.b;
148
+ this.b = tmp;
149
+ return this;
150
+ };
94
151
  return Line;
95
152
  }(VertTuple_1.VertTuple));
96
153
  exports.Line = Line;
@@ -1 +1 @@
1
- {"version":3,"file":"Line.js","sourceRoot":"","sources":["../ts/Line.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;IAmBI;;;;;;;;;;;;;;;;AAEJ,yCAAwC;AACxC,mCAAkC;AAGlC;;;;;;;GAOG;AACH;IAA0B,wBAAe;IAMvC;;;;;;;QAOI;IACJ,cAAY,CAAS,EAAE,CAAS;QAAhC,YACE,kBAAM,CAAC,EAAE,CAAC,EAAE,UAAC,CAAS,EAAE,CAAS,IAAK,OAAA,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAd,CAAc,CAAC,SACtD;QAfD;;YAEI;QACK,eAAS,GAAW,MAAM,CAAC;;IAYpC,CAAC;IAED;;;;;;;;QAQI;IACJ,+BAA+B;IAC/B,2BAAY,GAAZ,UAAa,IAAU;QACrB,IAAM,WAAW,GAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,WAAW,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAElC,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAM,UAAU,GAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,IAAM,UAAU,GAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC,wBAAwB;QACtD,CAAC,GAAG,UAAU,GAAG,WAAW,CAAC;QAE7B,aAAa;QACb,IAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,IAAM,CAAC,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO,SAAS,CAAC;SAClB;QAED,6EAA6E;QAC7E,OAAO,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IACH,WAAC;AAAD,CAAC,AAlDD,CAA0B,qBAAS,GAkDlC;AAlDY,oBAAI"}
1
+ {"version":3,"file":"Line.js","sourceRoot":"","sources":["../ts/Line.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,10 @@
75
75
  * @modified 2021-04-25 Extending `remove` to accept arrays of drawables.
76
76
  * @modified 2021-11-16 Adding the `PBText` drawable.
77
77
  * @modified 2022-08-01 Added `title` to the params.
78
- * @version 1.15.1
78
+ * @modified 2022-10-25 Added the `origin` to the default draw config.
79
+ * @modified 2022-11-06 Adding an XML declaration to the SVG export routine.
80
+ * @modified 2022-11-23 Added the `drawRaster` (default=true) option to the config/drawconfig.
81
+ * @version 1.17.0
79
82
  *
80
83
  * @file PlotBoilerplate
81
84
  * @fileoverview The main class.
@@ -214,7 +217,7 @@ export declare class PlotBoilerplate {
214
217
  * @memberof PlotBoilerplate
215
218
  * @instance
216
219
  */
217
- selectPolygon: Polygon;
220
+ selectPolygon: Polygon | null;
218
221
  /**
219
222
  * @member {Array<IDraggable>}
220
223
  * @memberof PlotBoilerplate