plotboilerplate 1.23.3 → 1.25.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 (230) hide show
  1. package/README.md +19 -1
  2. package/dist/index.esm.js +1684 -394
  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 +12450 -11120
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +9 -5
  11. package/src/cjs/BezierPath.d.ts +41 -5
  12. package/src/cjs/BezierPath.js +52 -2
  13. package/src/cjs/BezierPath.js.map +1 -1
  14. package/src/cjs/Bounds.d.ts +67 -3
  15. package/src/cjs/Bounds.js +101 -3
  16. package/src/cjs/Bounds.js.map +1 -1
  17. package/src/cjs/Circle.d.ts +46 -4
  18. package/src/cjs/Circle.js +82 -3
  19. package/src/cjs/Circle.js.map +1 -1
  20. package/src/cjs/CircleSector.d.ts +51 -2
  21. package/src/cjs/CircleSector.js +112 -3
  22. package/src/cjs/CircleSector.js.map +1 -1
  23. package/src/cjs/CubicBezierCurve.d.ts +113 -7
  24. package/src/cjs/CubicBezierCurve.js +281 -33
  25. package/src/cjs/CubicBezierCurve.js.map +1 -1
  26. package/src/cjs/Line.d.ts +38 -3
  27. package/src/cjs/Line.js +64 -1
  28. package/src/cjs/Line.js.map +1 -1
  29. package/src/cjs/PlotBoilerplate.d.ts +37 -6
  30. package/src/cjs/PlotBoilerplate.js +224 -125
  31. package/src/cjs/PlotBoilerplate.js.map +1 -1
  32. package/src/cjs/Polygon.d.ts +68 -5
  33. package/src/cjs/Polygon.js +143 -22
  34. package/src/cjs/Polygon.js.map +1 -1
  35. package/src/cjs/Triangle.d.ts +52 -3
  36. package/src/cjs/Triangle.js +80 -1
  37. package/src/cjs/Triangle.js.map +1 -1
  38. package/src/cjs/VEllipse.d.ts +62 -3
  39. package/src/cjs/VEllipse.js +181 -17
  40. package/src/cjs/VEllipse.js.map +1 -1
  41. package/src/cjs/VEllipseSector.d.ts +86 -2
  42. package/src/cjs/VEllipseSector.js +148 -4
  43. package/src/cjs/VEllipseSector.js.map +1 -1
  44. package/src/cjs/Vector.d.ts +12 -2
  45. package/src/cjs/Vector.js +15 -2
  46. package/src/cjs/Vector.js.map +1 -1
  47. package/src/cjs/VertTuple.d.ts +28 -4
  48. package/src/cjs/VertTuple.js +36 -3
  49. package/src/cjs/VertTuple.js.map +1 -1
  50. package/src/cjs/Vertex.d.ts +31 -4
  51. package/src/cjs/Vertex.js +35 -1
  52. package/src/cjs/Vertex.js.map +1 -1
  53. package/src/cjs/interfaces/core.d.ts +67 -0
  54. package/src/cjs/interfaces/core.js +4 -0
  55. package/src/cjs/interfaces/core.js.map +1 -1
  56. package/src/cjs/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
  57. package/src/cjs/utils/algorithms/convexPolygonIncircle.js +14 -6
  58. package/src/cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  59. package/src/cjs/utils/createRandomizedPolygon.d.ts +14 -0
  60. package/src/cjs/utils/createRandomizedPolygon.js +32 -0
  61. package/src/cjs/utils/createRandomizedPolygon.js.map +1 -0
  62. package/src/cjs/utils/datastructures/Color.d.ts +147 -1
  63. package/src/cjs/utils/datastructures/Color.js +385 -41
  64. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  65. package/src/cjs/utils/datastructures/ColorGradient.d.ts +79 -0
  66. package/src/cjs/utils/datastructures/ColorGradient.js +171 -0
  67. package/src/cjs/utils/datastructures/ColorGradient.js.map +1 -0
  68. package/src/cjs/utils/dom/components/ColorGradientPicker.d.ts +245 -0
  69. package/src/cjs/utils/dom/components/ColorGradientPicker.js +667 -0
  70. package/src/cjs/utils/dom/components/ColorGradientPicker.js.map +1 -0
  71. package/src/cjs/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
  72. package/src/cjs/utils/dom/components/ColorGradientPickerJSX.js +520 -0
  73. package/src/cjs/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
  74. package/src/cjs/utils/dom/components/ColorGradientSelector.d.ts +117 -0
  75. package/src/cjs/utils/dom/components/ColorGradientSelector.js +325 -0
  76. package/src/cjs/utils/dom/components/ColorGradientSelector.js.map +1 -0
  77. package/src/cjs/utils/dom/components/Test.d.ts +7 -0
  78. package/src/cjs/utils/dom/components/Test.js +30 -0
  79. package/src/cjs/utils/dom/components/Test.js.map +1 -0
  80. package/src/cjs/utils/dom/guiSizeToggler.js +1 -1
  81. package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
  82. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +16 -8
  83. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +49 -28
  84. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  85. package/src/cjs/utils/helpers/CircleHelper.d.ts +10 -1
  86. package/src/cjs/utils/helpers/CircleHelper.js +13 -2
  87. package/src/cjs/utils/helpers/CircleHelper.js.map +1 -1
  88. package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +11 -2
  89. package/src/cjs/utils/helpers/CircleSectorHelper.js +20 -20
  90. package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
  91. package/src/cjs/utils/helpers/TriangleHelper.d.ts +57 -0
  92. package/src/cjs/utils/helpers/TriangleHelper.js +83 -0
  93. package/src/cjs/utils/helpers/TriangleHelper.js.map +1 -0
  94. package/src/cjs/utils/helpers/VEllipseHelper.d.ts +32 -0
  95. package/src/cjs/utils/helpers/VEllipseHelper.js +88 -0
  96. package/src/cjs/utils/helpers/VEllipseHelper.js.map +1 -0
  97. package/src/cjs/utils/helpers/VEllipseSectorHelper.d.ts +44 -4
  98. package/src/cjs/utils/helpers/VEllipseSectorHelper.js +108 -25
  99. package/src/cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  100. package/src/cjs/utils/parsers/LinearColorGradientParser.d.ts +78 -0
  101. package/src/cjs/utils/parsers/LinearColorGradientParser.js +224 -0
  102. package/src/cjs/utils/parsers/LinearColorGradientParser.js.map +1 -0
  103. package/src/createDemoDrawables.js +4 -1
  104. package/src/esm/BezierPath.d.ts +41 -5
  105. package/src/esm/BezierPath.js +50 -2
  106. package/src/esm/BezierPath.js.map +1 -1
  107. package/src/esm/Bounds.d.ts +67 -3
  108. package/src/esm/Bounds.js +101 -3
  109. package/src/esm/Bounds.js.map +1 -1
  110. package/src/esm/Circle.d.ts +46 -4
  111. package/src/esm/Circle.js +79 -3
  112. package/src/esm/Circle.js.map +1 -1
  113. package/src/esm/CircleSector.d.ts +51 -2
  114. package/src/esm/CircleSector.js +108 -3
  115. package/src/esm/CircleSector.js.map +1 -1
  116. package/src/esm/CubicBezierCurve.d.ts +113 -7
  117. package/src/esm/CubicBezierCurve.js +277 -33
  118. package/src/esm/CubicBezierCurve.js.map +1 -1
  119. package/src/esm/Line.d.ts +38 -3
  120. package/src/esm/Line.js +62 -1
  121. package/src/esm/Line.js.map +1 -1
  122. package/src/esm/PlotBoilerplate.d.ts +37 -6
  123. package/src/esm/PlotBoilerplate.js +224 -125
  124. package/src/esm/PlotBoilerplate.js.map +1 -1
  125. package/src/esm/Polygon.d.ts +68 -5
  126. package/src/esm/Polygon.js +138 -22
  127. package/src/esm/Polygon.js.map +1 -1
  128. package/src/esm/Triangle.d.ts +52 -3
  129. package/src/esm/Triangle.js +77 -1
  130. package/src/esm/Triangle.js.map +1 -1
  131. package/src/esm/VEllipse.d.ts +62 -3
  132. package/src/esm/VEllipse.js +178 -17
  133. package/src/esm/VEllipse.js.map +1 -1
  134. package/src/esm/VEllipseSector.d.ts +86 -2
  135. package/src/esm/VEllipseSector.js +146 -7
  136. package/src/esm/VEllipseSector.js.map +1 -1
  137. package/src/esm/Vector.d.ts +12 -2
  138. package/src/esm/Vector.js +15 -2
  139. package/src/esm/Vector.js.map +1 -1
  140. package/src/esm/VertTuple.d.ts +28 -4
  141. package/src/esm/VertTuple.js +36 -3
  142. package/src/esm/VertTuple.js.map +1 -1
  143. package/src/esm/Vertex.d.ts +31 -4
  144. package/src/esm/Vertex.js +35 -1
  145. package/src/esm/Vertex.js.map +1 -1
  146. package/src/esm/interfaces/core.d.ts +67 -0
  147. package/src/esm/interfaces/core.js +4 -0
  148. package/src/esm/interfaces/core.js.map +1 -1
  149. package/src/esm/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
  150. package/src/esm/utils/algorithms/convexPolygonIncircle.js +15 -7
  151. package/src/esm/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  152. package/src/esm/utils/algorithms/createRandomizedPolygon.d.ts +14 -0
  153. package/src/esm/utils/algorithms/createRandomizedPolygon.js +28 -0
  154. package/src/esm/utils/algorithms/createRandomizedPolygon.js.map +1 -0
  155. package/src/esm/utils/createRandomizedPolygon.d.ts +14 -0
  156. package/src/esm/utils/createRandomizedPolygon.js +28 -0
  157. package/src/esm/utils/createRandomizedPolygon.js.map +1 -0
  158. package/src/esm/utils/datastructures/Color.d.ts +147 -1
  159. package/src/esm/utils/datastructures/Color.js +386 -42
  160. package/src/esm/utils/datastructures/Color.js.map +1 -1
  161. package/src/esm/utils/datastructures/ColorGradient.d.ts +79 -0
  162. package/src/esm/utils/datastructures/ColorGradient.js +166 -0
  163. package/src/esm/utils/datastructures/ColorGradient.js.map +1 -0
  164. package/src/esm/utils/dom/components/ColorGradientPicker.d.ts +245 -0
  165. package/src/esm/utils/dom/components/ColorGradientPicker.js +732 -0
  166. package/src/esm/utils/dom/components/ColorGradientPicker.js.map +1 -0
  167. package/src/esm/utils/dom/components/ColorGradientPickerJSX.d.ts +129 -0
  168. package/src/esm/utils/dom/components/ColorGradientPickerJSX.js +582 -0
  169. package/src/esm/utils/dom/components/ColorGradientPickerJSX.js.map +1 -0
  170. package/src/esm/utils/dom/components/ColorGradientSelector.d.ts +117 -0
  171. package/src/esm/utils/dom/components/ColorGradientSelector.js +332 -0
  172. package/src/esm/utils/dom/components/ColorGradientSelector.js.map +1 -0
  173. package/src/esm/utils/dom/components/Test.d.ts +7 -0
  174. package/src/esm/utils/dom/components/Test.js +26 -0
  175. package/src/esm/utils/dom/components/Test.js.map +1 -0
  176. package/src/esm/utils/dom/guiSizeToggler.js +1 -1
  177. package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
  178. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +16 -8
  179. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +47 -27
  180. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  181. package/src/esm/utils/helpers/CircleHelper.d.ts +10 -1
  182. package/src/esm/utils/helpers/CircleHelper.js +13 -2
  183. package/src/esm/utils/helpers/CircleHelper.js.map +1 -1
  184. package/src/esm/utils/helpers/CircleSectorHelper.d.ts +11 -2
  185. package/src/esm/utils/helpers/CircleSectorHelper.js +20 -20
  186. package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
  187. package/src/esm/utils/helpers/TriangleHelper.d.ts +57 -0
  188. package/src/esm/utils/helpers/TriangleHelper.js +78 -0
  189. package/src/esm/utils/helpers/TriangleHelper.js.map +1 -0
  190. package/src/esm/utils/helpers/VEllipseHelper.d.ts +32 -0
  191. package/src/esm/utils/helpers/VEllipseHelper.js +83 -0
  192. package/src/esm/utils/helpers/VEllipseHelper.js.map +1 -0
  193. package/src/esm/utils/helpers/VEllipseSectorHelper.d.ts +44 -4
  194. package/src/esm/utils/helpers/VEllipseSectorHelper.js +107 -24
  195. package/src/esm/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  196. package/src/esm/utils/parsers/LinearColorGradientParser.d.ts +78 -0
  197. package/src/esm/utils/parsers/LinearColorGradientParser.js +217 -0
  198. package/src/esm/utils/parsers/LinearColorGradientParser.js.map +1 -0
  199. package/src/external.d.ts +9 -0
  200. package/src/ts/BezierPath.ts +58 -5
  201. package/src/ts/Bounds.ts +110 -6
  202. package/src/ts/Circle.ts +87 -5
  203. package/src/ts/CircleSector.ts +115 -5
  204. package/src/ts/CubicBezierCurve.ts +332 -42
  205. package/src/ts/Line.ts +66 -3
  206. package/src/ts/PlotBoilerplate.ts +236 -114
  207. package/src/ts/Polygon.ts +164 -29
  208. package/src/ts/Triangle.ts +85 -3
  209. package/src/ts/VEllipse.ts +214 -19
  210. package/src/ts/VEllipseSector.ts +154 -8
  211. package/src/ts/Vector.ts +16 -2
  212. package/src/ts/VertTuple.ts +39 -4
  213. package/src/ts/Vertex.ts +40 -4
  214. package/src/ts/interfaces/core.ts +73 -0
  215. package/src/ts/utils/algorithms/convexPolygonIncircle.ts +82 -78
  216. package/src/ts/utils/createRandomizedPolygon.ts +31 -0
  217. package/src/ts/utils/datastructures/Color.ts +423 -44
  218. package/src/ts/utils/datastructures/ColorGradient.ts +196 -0
  219. package/src/ts/utils/dom/components/ColorGradientPicker.tsx +877 -0
  220. package/src/ts/utils/dom/components/ColorGradientSelector.tsx +445 -0
  221. package/src/ts/utils/dom/components/Test.tsx +44 -0
  222. package/src/ts/utils/dom/components/_ColorGradientPicker_raw.ts_ +392 -0
  223. package/src/ts/utils/dom/guiSizeToggler.ts +1 -1
  224. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +61 -35
  225. package/src/ts/utils/helpers/CircleHelper.ts +17 -3
  226. package/src/ts/utils/helpers/CircleSectorHelper.ts +118 -126
  227. package/src/ts/utils/helpers/TriangleHelper.ts +102 -0
  228. package/src/ts/utils/helpers/VEllipseHelper.ts +115 -0
  229. package/src/ts/utils/helpers/VEllipseSectorHelper.ts +144 -26
  230. package/src/ts/utils/parsers/LinearColorGradientParser.ts +297 -0
@@ -7,10 +7,18 @@
7
7
  * @date 2021-02-26
8
8
  * @modified 2022-02-02 Added the `destroy` method.
9
9
  * @modified 2022-11-01 Tweaked the `endpointToCenterParameters` function to handle negative values, too, without errors.
10
- * @version 1.1.1
10
+ * @modified 2025-04-01 Adapting a the `toCubicBezier` calculation to match an underlying change in the vertAt and tangentAt calculation of ellipses (was required to hamonize both methods with circles).
11
+ * @modified 2025-04-02 Adding `VEllipseSector.containsAngle` method.
12
+ * @modified 2025-04-02 Adding `VEllipseSector.lineIntersections` and `VEllipseSector.lineIntersectionTangents` and implementing `Intersectable`.
13
+ * @modified 2025-04-07 Adding value wrapping (0 to TWO_PI) to the `VEllipseSector.containsAngle` method.
14
+ * @modified 2025-04-09 Adding the `VEllipseSector.move` method.
15
+ * @modified 2025-04-19 Added the `VEllipseSector.getStartPoint` and `getEndPoint` methods.
16
+ * @modified 2025-04-23 Added the `VEllipseSector.getBounds` method.
17
+ * @version 1.2.0
11
18
  */
12
19
  Object.defineProperty(exports, "__esModule", { value: true });
13
20
  exports.VEllipseSector = void 0;
21
+ var Bounds_1 = require("./Bounds");
14
22
  var CubicBezierCurve_1 = require("./CubicBezierCurve");
15
23
  var geomutils_1 = require("./geomutils");
16
24
  var Line_1 = require("./Line");
@@ -51,6 +59,142 @@ var VEllipseSector = /** @class */ (function () {
51
59
  this.startAngle = geomutils_1.geomutils.wrapMinMax(startAngle, 0, Math.PI * 2);
52
60
  this.endAngle = geomutils_1.geomutils.wrapMinMax(endAngle, 0, Math.PI * 2);
53
61
  }
62
+ /**
63
+ * Move the ellipse sector by the given amount.
64
+ *
65
+ * @method move
66
+ * @param {XYCoords} amount - The amount to move.
67
+ * @instance
68
+ * @memberof VEllipseSector
69
+ * @return {VEllipseSector} this for chaining
70
+ **/
71
+ VEllipseSector.prototype.move = function (amount) {
72
+ this.ellipse.move(amount);
73
+ return this;
74
+ };
75
+ /**
76
+ * Checks wether the given angle (must be inside 0 and PI*2) is contained inside this sector.
77
+ *
78
+ * @param {number} angle - The numeric angle to check.
79
+ * @method containsAngle
80
+ * @instance
81
+ * @memberof VEllipseSectpr
82
+ * @return {boolean} True if (and only if) this sector contains the given angle.
83
+ */
84
+ VEllipseSector.prototype.containsAngle = function (angle) {
85
+ angle = geomutils_1.geomutils.mapAngleTo2PI(angle); // wrapMinMax(angle, 0, Math.PI * 2);
86
+ var sAngle = geomutils_1.geomutils.mapAngleTo2PI(this.startAngle);
87
+ var eAngle = geomutils_1.geomutils.mapAngleTo2PI(this.endAngle);
88
+ // TODO: cleanup
89
+ // if (this.startAngle <= this.endAngle) {
90
+ // return angle >= this.startAngle && angle < this.endAngle;
91
+ // } else {
92
+ // // startAngle > endAngle
93
+ // return angle >= this.startAngle || angle < this.endAngle;
94
+ // }
95
+ if (sAngle <= eAngle) {
96
+ return angle >= sAngle && angle < eAngle;
97
+ }
98
+ else {
99
+ // startAngle > endAngle
100
+ return angle >= sAngle || angle < eAngle;
101
+ }
102
+ };
103
+ /**
104
+ * Get the sectors starting point (on the underlying ellipse, located at the start angle).
105
+ *
106
+ * @method getStartPoint
107
+ * @instance
108
+ * @memberof VEllipseSector
109
+ * @return {Vertex} The sector's stating point.
110
+ */
111
+ VEllipseSector.prototype.getStartPoint = function () {
112
+ return this.ellipse.vertAt(this.startAngle);
113
+ };
114
+ /**
115
+ * Get the sectors ending point (on the underlying ellipse, located at the end angle).
116
+ *
117
+ * @method getEndPoint
118
+ * @instance
119
+ * @memberof VEllipseSector
120
+ * @return {Vertex} The sector's ending point.
121
+ */
122
+ VEllipseSector.prototype.getEndPoint = function () {
123
+ return this.ellipse.vertAt(this.endAngle);
124
+ };
125
+ //--- BEGIN --- Implement interface `IBounded`
126
+ /**
127
+ * Get the bounds of this elliptic sector.
128
+ *
129
+ * The bounds are approximated by the underlying segment buffer; the more segment there are,
130
+ * the more accurate will be the returned bounds.
131
+ *
132
+ * @method getBounds
133
+ * @instance
134
+ * @memberof VEllipse
135
+ * @return {Bounds} The bounds of this elliptic sector.
136
+ **/
137
+ VEllipseSector.prototype.getBounds = function () {
138
+ var _this = this;
139
+ // Calculage angles from east, west, north and south box points and check if they are inside
140
+ var extremes = this.ellipse.getExtremePoints();
141
+ var candidates = extremes.filter(function (point) {
142
+ var angle = new Line_1.Line(_this.ellipse.center, point).angle() - _this.ellipse.rotation;
143
+ return _this.containsAngle(angle);
144
+ });
145
+ return Bounds_1.Bounds.computeFromVertices([this.getStartPoint(), this.getEndPoint()].concat(candidates));
146
+ };
147
+ //--- BEGIN --- Implement interface `Intersectable`
148
+ /**
149
+ * Get the line intersections as vectors with this ellipse.
150
+ *
151
+ * @method lineIntersections
152
+ * @instance
153
+ * @memberof VEllipseSectpr
154
+ * @param {VertTuple<Vector>} ray - The line/ray to intersect this ellipse with.
155
+ * @param {boolean} inVectorBoundsOnly - (default=false) Set to true if only intersections within the vector bounds are of interest.
156
+ * @returns
157
+ */
158
+ VEllipseSector.prototype.lineIntersections = function (ray, inVectorBoundsOnly) {
159
+ var _this = this;
160
+ if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
161
+ // First get all line intersections from underlying ellipse.
162
+ var ellipseIntersections = this.ellipse.lineIntersections(ray, inVectorBoundsOnly);
163
+ // Drop all intersection points that are not contained in the circle sectors bounds.
164
+ var tmpLine = new Line_1.Line(this.ellipse.center, new Vertex_1.Vertex());
165
+ return ellipseIntersections.filter(function (intersectionPoint) {
166
+ tmpLine.b.set(intersectionPoint);
167
+ var lineAngle = tmpLine.angle();
168
+ return _this.containsAngle(lineAngle - _this.ellipse.rotation);
169
+ });
170
+ };
171
+ /**
172
+ * Get all line intersections of this polygon and their tangents along the shape.
173
+ *
174
+ * This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
175
+ *
176
+ * @method lineIntersections
177
+ * @memberof VEllipseSectpr
178
+ * @param line
179
+ * @param lineIntersectionTangents
180
+ * @returns
181
+ */
182
+ VEllipseSector.prototype.lineIntersectionTangents = function (line, inVectorBoundsOnly) {
183
+ var _this = this;
184
+ if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
185
+ // Find the intersections of all lines plus their tangents inside the circle bounds
186
+ var interSectionPoints = this.lineIntersections(line, inVectorBoundsOnly);
187
+ return interSectionPoints.map(function (vert) {
188
+ // Calculate angle
189
+ var lineFromCenter = new Line_1.Line(_this.ellipse.center, vert);
190
+ var angle = lineFromCenter.angle();
191
+ // console.log("angle", (angle / Math.PI) * 180.0);
192
+ // const angle = Math.random() * Math.PI * 2; // TODO
193
+ // Calculate tangent at angle
194
+ return _this.ellipse.tangentAt(angle);
195
+ });
196
+ };
197
+ //--- END --- Implement interface `Intersectable`
54
198
  /**
55
199
  * Convert this elliptic sector into cubic Bézier curves.
56
200
  *
@@ -78,8 +222,8 @@ var VEllipseSector = /** @class */ (function () {
78
222
  for (var i = 0; i + 1 < angles.length; i++) {
79
223
  var nextAngle = angles[(i + 1) % angles.length];
80
224
  var endPoint = this.ellipse.vertAt(nextAngle);
81
- var startTangent = this.ellipse.tangentAt(curAngle);
82
- var endTangent = this.ellipse.tangentAt(nextAngle);
225
+ var startTangent = this.ellipse.tangentAt(curAngle + this.ellipse.rotation);
226
+ var endTangent = this.ellipse.tangentAt(nextAngle + this.ellipse.rotation);
83
227
  // Distorted ellipses can only be approximated by linear Bézier segments
84
228
  if (Math.abs(radiusV) < 0.0001 || Math.abs(radiusH) < 0.0001) {
85
229
  var diff = startPoint.difference(endPoint);
@@ -189,7 +333,7 @@ var VEllipseSector = /** @class */ (function () {
189
333
  return angle >= startAngle || (angle <= endAngle && angle >= 0);
190
334
  };
191
335
  // Drop all angles outside the sector
192
- var ellipseAngles = ellipseAngles.filter(angleIsInRange);
336
+ ellipseAngles = ellipseAngles.filter(angleIsInRange);
193
337
  // Now we need to sort the angles to the first one in the array is the closest to startAngle.
194
338
  // --> find the angle that is closest to the start angle
195
339
  var startIndex = VEllipseSector.ellipseSectorUtils.findClosestToStartAngle(startAngle, endAngle, ellipseAngles);
@@ -1 +1 @@
1
- {"version":3,"file":"VEllipseSector.js","sourceRoot":"","sources":["../ts/VEllipseSector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VEllipseSector.js","sourceRoot":"","sources":["../ts/VEllipseSector.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@
12
12
  * @modified 2022-02-02 Added the `destroy` method.
13
13
  * @modified 2022-02-02 Cleared the `Vector.toSVGString` function (deprecated). Use `drawutilssvg` instead.
14
14
  * @modified 2022-10-25 Added the `getOrthogonal` method.
15
- * @version 1.5.0
15
+ * @modified 2025-04-14 Added the `Vector.rotate(number)` method.
16
+ * @version 1.6.0
16
17
  *
17
18
  * @file Vector
18
19
  * @public
@@ -47,7 +48,6 @@ export declare class Vector extends VertTuple<Vector> implements SVGSerializable
47
48
  /**
48
49
  * Get the perpendicular of this vector which is located at a.
49
50
  *
50
- * @param {Number} t The position on the vector.
51
51
  * @return {Vector} A new vector being the perpendicular of this vector sitting on a.
52
52
  **/
53
53
  perp(): Vector;
@@ -85,6 +85,16 @@ export declare class Vector extends VertTuple<Vector> implements SVGSerializable
85
85
  * @memberof Vector
86
86
  **/
87
87
  getOrthogonal(): Vector;
88
+ /**
89
+ * Rotate this vector by the given angle around the first point `a`.
90
+ *
91
+ * @name rotate
92
+ * @method rotate
93
+ * @return {Vector} this - for chaining.
94
+ * @instance
95
+ * @memberof Vector
96
+ */
97
+ rotate(angle: number): Vector;
88
98
  static utils: {
89
99
  /**
90
100
  * Generate a four-point arrow head, starting at the vector end minus the
package/src/cjs/Vector.js CHANGED
@@ -13,7 +13,8 @@
13
13
  * @modified 2022-02-02 Added the `destroy` method.
14
14
  * @modified 2022-02-02 Cleared the `Vector.toSVGString` function (deprecated). Use `drawutilssvg` instead.
15
15
  * @modified 2022-10-25 Added the `getOrthogonal` method.
16
- * @version 1.5.0
16
+ * @modified 2025-04-14 Added the `Vector.rotate(number)` method.
17
+ * @version 1.6.0
17
18
  *
18
19
  * @file Vector
19
20
  * @public
@@ -68,7 +69,6 @@ var Vector = /** @class */ (function (_super) {
68
69
  /**
69
70
  * Get the perpendicular of this vector which is located at a.
70
71
  *
71
- * @param {Number} t The position on the vector.
72
72
  * @return {Vector} A new vector being the perpendicular of this vector sitting on a.
73
73
  **/
74
74
  Vector.prototype.perp = function () {
@@ -144,6 +144,19 @@ var Vector = /** @class */ (function (_super) {
144
144
  startPoint.y = tmp;
145
145
  return new Vector(linePoint, startPoint.add(this.a));
146
146
  };
147
+ /**
148
+ * Rotate this vector by the given angle around the first point `a`.
149
+ *
150
+ * @name rotate
151
+ * @method rotate
152
+ * @return {Vector} this - for chaining.
153
+ * @instance
154
+ * @memberof Vector
155
+ */
156
+ Vector.prototype.rotate = function (angle) {
157
+ this.b.rotate(angle, this.a);
158
+ return this;
159
+ };
147
160
  Vector.utils = {
148
161
  /**
149
162
  * Generate a four-point arrow head, starting at the vector end minus the
@@ -1 +1 @@
1
- {"version":3,"file":"Vector.js","sourceRoot":"","sources":["../ts/Vector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vector.js","sourceRoot":"","sources":["../ts/Vector.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,10 @@
13
13
  * @modified 2024-09-10 Chaging the first param of `pointDistance` from `Vertex` to less strict type `XYCoords`. This should not break anything.
14
14
  * @modified 2024-09-10 Adding the optional `epsilon` param to the `hasPoint` method.
15
15
  * @modified 2024-12-02 Added the `epsilon` param to the `colinear` method. Default is 1.0e-6.
16
- * @version 1.3.0
16
+ * @modified 2025-03-31 Added the `VertTuple.revert` method.
17
+ * @modified 2025-04-15 Changed param of `VertTuple.moveTo` method from `Vertex` to `XYCoords`.
18
+ * @modified 2025-04-15 Added method `VertTuple.move` method.
19
+ * @version 1.4.0
17
20
  */
18
21
  import { Vertex } from "./Vertex";
19
22
  import { XYCoords, UID } from "./interfaces";
@@ -99,11 +102,22 @@ export declare class VertTuple<T extends VertTuple<T>> {
99
102
  *
100
103
  * @method add
101
104
  * @param {XYCoords} amount The amount (x,y) to add.
102
- * @return {Line} this
103
105
  * @instance
104
106
  * @memberof VertTuple
107
+ * @return {VertTuple<T>} this
105
108
  **/
106
109
  add(amount: XYCoords): VertTuple<T>;
110
+ /**
111
+ * Reverse this vertex tuple: a becomes b, and b becomes a.
112
+ * This operation is in-place.
113
+ *
114
+ * @method add
115
+ * @param {XYCoords} amount The amount (x,y) to add.
116
+ * @instance
117
+ * @memberof VertTuple
118
+ * @return {VertTuple<T>} this
119
+ */
120
+ revert(): VertTuple<T>;
107
121
  /**
108
122
  * Normalize this line (set to length 1).
109
123
  *
@@ -127,12 +141,22 @@ export declare class VertTuple<T extends VertTuple<T>> {
127
141
  * Move this line to a new location.
128
142
  *
129
143
  * @method moveTo
130
- * @param {Vertex} newA - The new desired location of 'a'. Vertex 'b' will be moved, too.
144
+ * @param {XYCoords} newA - The new desired location of 'a'. Vertex 'b' will be moved, too.
145
+ * @return {VertTuple} this
146
+ * @instance
147
+ * @memberof VertTuple
148
+ **/
149
+ moveTo(newA: XYCoords): VertTuple<T>;
150
+ /**
151
+ * Move this line by the given amount
152
+ *
153
+ * @method move
154
+ * @param {XYCoords} amount - The amount to move both point of this tuple.
131
155
  * @return {VertTuple} this
132
156
  * @instance
133
157
  * @memberof VertTuple
134
158
  **/
135
- moveTo(newA: Vertex): VertTuple<T>;
159
+ move(amount: XYCoords): VertTuple<T>;
136
160
  /**
137
161
  * Get the angle between this and the passed line (in radians).
138
162
  *
@@ -14,7 +14,10 @@
14
14
  * @modified 2024-09-10 Chaging the first param of `pointDistance` from `Vertex` to less strict type `XYCoords`. This should not break anything.
15
15
  * @modified 2024-09-10 Adding the optional `epsilon` param to the `hasPoint` method.
16
16
  * @modified 2024-12-02 Added the `epsilon` param to the `colinear` method. Default is 1.0e-6.
17
- * @version 1.3.0
17
+ * @modified 2025-03-31 Added the `VertTuple.revert` method.
18
+ * @modified 2025-04-15 Changed param of `VertTuple.moveTo` method from `Vertex` to `XYCoords`.
19
+ * @modified 2025-04-15 Added method `VertTuple.move` method.
20
+ * @version 1.4.0
18
21
  */
19
22
  Object.defineProperty(exports, "__esModule", { value: true });
20
23
  exports.VertTuple = void 0;
@@ -83,15 +86,31 @@ var VertTuple = /** @class */ (function () {
83
86
  *
84
87
  * @method add
85
88
  * @param {XYCoords} amount The amount (x,y) to add.
86
- * @return {Line} this
87
89
  * @instance
88
90
  * @memberof VertTuple
91
+ * @return {VertTuple<T>} this
89
92
  **/
90
93
  VertTuple.prototype.add = function (amount) {
91
94
  this.a.add(amount);
92
95
  this.b.add(amount);
93
96
  return this;
94
97
  };
98
+ /**
99
+ * Reverse this vertex tuple: a becomes b, and b becomes a.
100
+ * This operation is in-place.
101
+ *
102
+ * @method add
103
+ * @param {XYCoords} amount The amount (x,y) to add.
104
+ * @instance
105
+ * @memberof VertTuple
106
+ * @return {VertTuple<T>} this
107
+ */
108
+ VertTuple.prototype.revert = function () {
109
+ var tmp = this.a;
110
+ this.a = this.b;
111
+ this.b = tmp;
112
+ return this;
113
+ };
95
114
  /**
96
115
  * Normalize this line (set to length 1).
97
116
  *
@@ -121,7 +140,7 @@ var VertTuple = /** @class */ (function () {
121
140
  * Move this line to a new location.
122
141
  *
123
142
  * @method moveTo
124
- * @param {Vertex} newA - The new desired location of 'a'. Vertex 'b' will be moved, too.
143
+ * @param {XYCoords} newA - The new desired location of 'a'. Vertex 'b' will be moved, too.
125
144
  * @return {VertTuple} this
126
145
  * @instance
127
146
  * @memberof VertTuple
@@ -132,6 +151,20 @@ var VertTuple = /** @class */ (function () {
132
151
  this.b.add(diff);
133
152
  return this;
134
153
  };
154
+ /**
155
+ * Move this line by the given amount
156
+ *
157
+ * @method move
158
+ * @param {XYCoords} amount - The amount to move both point of this tuple.
159
+ * @return {VertTuple} this
160
+ * @instance
161
+ * @memberof VertTuple
162
+ **/
163
+ VertTuple.prototype.move = function (amount) {
164
+ this.a.add(amount);
165
+ this.b.add(amount);
166
+ return this;
167
+ };
135
168
  /**
136
169
  * Get the angle between this and the passed line (in radians).
137
170
  *
@@ -1 +1 @@
1
- {"version":3,"file":"VertTuple.js","sourceRoot":"","sources":["../ts/VertTuple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VertTuple.js","sourceRoot":"","sources":["../ts/VertTuple.ts"],"names":[],"mappings":"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"}
@@ -33,14 +33,18 @@
33
33
  * @modified 2023-09-29 Added the `Vertex.abs()` method as it seems useful.
34
34
  * @modified 2024-03-08 Added the optional `precision` param to the `toString` method.
35
35
  * @modified 2024-12-17 Outsourced the euclidean distance calculation of `Vertex.distance` to `geomutils.dist4`.
36
- * @version 2.9.1
36
+ * @modified 2025-03-24 Making the second parameter `center` of the `Vertex.rotate` method optional.
37
+ * @modified 2025-04-13 Adding the `Vertex.move(amount: XYCoords)` method (does the same as `add`, added by naming convention).
38
+ * @modified 2025-05-07 Class `Vertex` is now implementing interface `IBounded` (to meet convention).
39
+ * @version 2.11.0
37
40
  *
38
41
  * @file Vertex
39
42
  * @public
40
43
  **/
41
44
  import { IVertexAttr } from "./VertexAttr";
42
45
  import { VertexListeners } from "./VertexListeners";
43
- import { XYCoords, SVGSerializable, UID } from "./interfaces";
46
+ import { XYCoords, SVGSerializable, UID, IBounded } from "./interfaces";
47
+ import { Bounds } from "./Bounds";
44
48
  /**
45
49
  * @classdesc A vertex is a pair of two numbers.<br>
46
50
  * <br>
@@ -55,7 +59,7 @@ import { XYCoords, SVGSerializable, UID } from "./interfaces";
55
59
  * @requires XYCoords
56
60
  *
57
61
  */
58
- export declare class Vertex implements XYCoords, SVGSerializable {
62
+ export declare class Vertex implements IBounded, XYCoords, SVGSerializable {
59
63
  private static readonly ZERO;
60
64
  /**
61
65
  * Required to generate proper CSS classes and other class related IDs.
@@ -180,6 +184,19 @@ export declare class Vertex implements XYCoords, SVGSerializable {
180
184
  * @memberof Vertex
181
185
  **/
182
186
  add(x: number | XYCoords, y?: number): Vertex;
187
+ /**
188
+ * Move this point by the given amount.
189
+ *
190
+ * This method just calls `add(amount).
191
+ *
192
+ *
193
+ * @method move
194
+ * @param {Vertex} amount - The amount to move this vertex.
195
+ * @return {Vertex} this - For chaining.
196
+ * @instance
197
+ * @memberof Vertex
198
+ */
199
+ move(amount: XYCoords): Vertex;
183
200
  /**
184
201
  * Add the passed amounts to the x- and y- components of this vertex.
185
202
  *
@@ -367,7 +384,7 @@ export declare class Vertex implements XYCoords, SVGSerializable {
367
384
  * @instance
368
385
  * @memberof Vertex
369
386
  **/
370
- rotate(angle: number, center: XYCoords | undefined): Vertex;
387
+ rotate(angle: number, center?: XYCoords | undefined): Vertex;
371
388
  /**
372
389
  * Multiply both components of this vertex with the given scalar.<br>
373
390
  * <br>
@@ -408,6 +425,16 @@ export declare class Vertex implements XYCoords, SVGSerializable {
408
425
  * @memberof Vertex
409
426
  */
410
427
  abs(): Vertex;
428
+ /**
429
+ * Get the bounding box (bounds) of this Vertex.
430
+ * This is just by convention – any vertex is just a position without any useful with or height (0).
431
+ *
432
+ * @method getBounds
433
+ * @instance
434
+ * @memberof Vertex
435
+ * @return {Bounds} The rectangular bounds of this Vertex (width and height are zero).
436
+ **/
437
+ getBounds(): Bounds;
411
438
  /**
412
439
  * Get a string representation of this vertex.
413
440
  *
package/src/cjs/Vertex.js CHANGED
@@ -34,7 +34,10 @@
34
34
  * @modified 2023-09-29 Added the `Vertex.abs()` method as it seems useful.
35
35
  * @modified 2024-03-08 Added the optional `precision` param to the `toString` method.
36
36
  * @modified 2024-12-17 Outsourced the euclidean distance calculation of `Vertex.distance` to `geomutils.dist4`.
37
- * @version 2.9.1
37
+ * @modified 2025-03-24 Making the second parameter `center` of the `Vertex.rotate` method optional.
38
+ * @modified 2025-04-13 Adding the `Vertex.move(amount: XYCoords)` method (does the same as `add`, added by naming convention).
39
+ * @modified 2025-05-07 Class `Vertex` is now implementing interface `IBounded` (to meet convention).
40
+ * @version 2.11.0
38
41
  *
39
42
  * @file Vertex
40
43
  * @public
@@ -45,6 +48,7 @@ var VertexAttr_1 = require("./VertexAttr");
45
48
  var UIDGenerator_1 = require("./UIDGenerator");
46
49
  var VertexListeners_1 = require("./VertexListeners");
47
50
  var geomutils_1 = require("./geomutils");
51
+ var Bounds_1 = require("./Bounds");
48
52
  /**
49
53
  * @classdesc A vertex is a pair of two numbers.<br>
50
54
  * <br>
@@ -231,6 +235,21 @@ var Vertex = /** @class */ (function () {
231
235
  }
232
236
  return this;
233
237
  };
238
+ /**
239
+ * Move this point by the given amount.
240
+ *
241
+ * This method just calls `add(amount).
242
+ *
243
+ *
244
+ * @method move
245
+ * @param {Vertex} amount - The amount to move this vertex.
246
+ * @return {Vertex} this - For chaining.
247
+ * @instance
248
+ * @memberof Vertex
249
+ */
250
+ Vertex.prototype.move = function (amount) {
251
+ return this.add(amount);
252
+ };
234
253
  /**
235
254
  * Add the passed amounts to the x- and y- components of this vertex.
236
255
  *
@@ -570,6 +589,21 @@ var Vertex = /** @class */ (function () {
570
589
  this.y = Math.abs(this.y);
571
590
  return this;
572
591
  };
592
+ //--- BEGIN --- Implement interface `IBounded`
593
+ /**
594
+ * Get the bounding box (bounds) of this Vertex.
595
+ * This is just by convention – any vertex is just a position without any useful with or height (0).
596
+ *
597
+ * @method getBounds
598
+ * @instance
599
+ * @memberof Vertex
600
+ * @return {Bounds} The rectangular bounds of this Vertex (width and height are zero).
601
+ **/
602
+ Vertex.prototype.getBounds = function () {
603
+ // return Bounds.computeFromVertices([this.a, this.b, this.c]);
604
+ return Bounds_1.Bounds.computeFromVertices([this]);
605
+ };
606
+ //--- END --- Implement interface `IBounded`
573
607
  /**
574
608
  * Get a string representation of this vertex.
575
609
  *