plotboilerplate 1.23.2 → 1.24.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 (218) hide show
  1. package/README.md +6 -0
  2. package/dist/index.esm.js +8351 -6928
  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 +1590 -123
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +4 -2
  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 +4 -2
  30. package/src/cjs/PlotBoilerplate.js +9 -12
  31. package/src/cjs/PlotBoilerplate.js.map +1 -1
  32. package/src/cjs/Polygon.d.ts +153 -6
  33. package/src/cjs/Polygon.js +304 -23
  34. package/src/cjs/Polygon.js.map +1 -1
  35. package/src/cjs/Triangle.d.ts +73 -4
  36. package/src/cjs/Triangle.js +94 -2
  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 +39 -10
  48. package/src/cjs/VertTuple.js +49 -11
  49. package/src/cjs/VertTuple.js.map +1 -1
  50. package/src/cjs/Vertex.d.ts +18 -2
  51. package/src/cjs/Vertex.js +22 -2
  52. package/src/cjs/Vertex.js.map +1 -1
  53. package/src/cjs/draw.d.ts +1 -0
  54. package/src/cjs/draw.js +2 -1
  55. package/src/cjs/draw.js.map +1 -1
  56. package/src/cjs/drawutilssvg.js +24 -0
  57. package/src/cjs/drawutilssvg.js.map +1 -1
  58. package/src/cjs/geomutils.d.ts +32 -1
  59. package/src/cjs/geomutils.js +47 -1
  60. package/src/cjs/geomutils.js.map +1 -1
  61. package/src/cjs/interfaces/core.d.ts +39 -0
  62. package/src/cjs/interfaces/core.js +2 -0
  63. package/src/cjs/interfaces/core.js.map +1 -1
  64. package/src/cjs/utils/algorithms/PolygonInset.d.ts +184 -0
  65. package/src/cjs/utils/algorithms/PolygonInset.js +431 -0
  66. package/src/cjs/utils/algorithms/PolygonInset.js.map +1 -0
  67. package/src/cjs/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  68. package/src/cjs/utils/algorithms/clearDuplicateVertices.js +6 -3
  69. package/src/cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  70. package/src/cjs/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
  71. package/src/cjs/utils/algorithms/convexPolygonIncircle.js +14 -6
  72. package/src/cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  73. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  74. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  75. package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  76. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  77. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  78. package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  79. package/src/cjs/utils/createRandomizedPolygon.d.ts +14 -0
  80. package/src/cjs/utils/createRandomizedPolygon.js +32 -0
  81. package/src/cjs/utils/createRandomizedPolygon.js.map +1 -0
  82. package/src/cjs/utils/detectDarkMode.js.map +1 -1
  83. package/src/cjs/utils/dom/guiSizeToggler.d.ts +2 -1
  84. package/src/cjs/utils/dom/guiSizeToggler.js +5 -3
  85. package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
  86. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
  87. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +37 -23
  88. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  89. package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +10 -1
  90. package/src/cjs/utils/helpers/CircleSectorHelper.js +19 -20
  91. package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
  92. package/src/cjs/utils/helpers/VEllipseHelper.d.ts +30 -0
  93. package/src/cjs/utils/helpers/VEllipseHelper.js +86 -0
  94. package/src/cjs/utils/helpers/VEllipseHelper.js.map +1 -0
  95. package/src/cjs/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
  96. package/src/cjs/utils/helpers/VEllipseSectorHelper.js +107 -25
  97. package/src/cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  98. package/src/createDemoDrawables.js +3 -1
  99. package/src/esm/BezierPath.d.ts +41 -5
  100. package/src/esm/BezierPath.js +50 -2
  101. package/src/esm/BezierPath.js.map +1 -1
  102. package/src/esm/Bounds.d.ts +67 -3
  103. package/src/esm/Bounds.js +101 -3
  104. package/src/esm/Bounds.js.map +1 -1
  105. package/src/esm/Circle.d.ts +46 -4
  106. package/src/esm/Circle.js +79 -3
  107. package/src/esm/Circle.js.map +1 -1
  108. package/src/esm/CircleSector.d.ts +51 -2
  109. package/src/esm/CircleSector.js +108 -3
  110. package/src/esm/CircleSector.js.map +1 -1
  111. package/src/esm/CubicBezierCurve.d.ts +113 -7
  112. package/src/esm/CubicBezierCurve.js +277 -33
  113. package/src/esm/CubicBezierCurve.js.map +1 -1
  114. package/src/esm/Line.d.ts +38 -3
  115. package/src/esm/Line.js +62 -1
  116. package/src/esm/Line.js.map +1 -1
  117. package/src/esm/PlotBoilerplate.d.ts +4 -2
  118. package/src/esm/PlotBoilerplate.js +9 -12
  119. package/src/esm/PlotBoilerplate.js.map +1 -1
  120. package/src/esm/Polygon.d.ts +153 -6
  121. package/src/esm/Polygon.js +301 -23
  122. package/src/esm/Polygon.js.map +1 -1
  123. package/src/esm/Triangle.d.ts +73 -4
  124. package/src/esm/Triangle.js +91 -2
  125. package/src/esm/Triangle.js.map +1 -1
  126. package/src/esm/VEllipse.d.ts +62 -3
  127. package/src/esm/VEllipse.js +178 -17
  128. package/src/esm/VEllipse.js.map +1 -1
  129. package/src/esm/VEllipseSector.d.ts +86 -2
  130. package/src/esm/VEllipseSector.js +146 -7
  131. package/src/esm/VEllipseSector.js.map +1 -1
  132. package/src/esm/Vector.d.ts +12 -2
  133. package/src/esm/Vector.js +15 -2
  134. package/src/esm/Vector.js.map +1 -1
  135. package/src/esm/VertTuple.d.ts +39 -10
  136. package/src/esm/VertTuple.js +49 -11
  137. package/src/esm/VertTuple.js.map +1 -1
  138. package/src/esm/Vertex.d.ts +18 -2
  139. package/src/esm/Vertex.js +22 -2
  140. package/src/esm/Vertex.js.map +1 -1
  141. package/src/esm/draw.d.ts +1 -0
  142. package/src/esm/draw.js +2 -1
  143. package/src/esm/draw.js.map +1 -1
  144. package/src/esm/drawutilssvg.js +24 -0
  145. package/src/esm/drawutilssvg.js.map +1 -1
  146. package/src/esm/geomutils.d.ts +32 -1
  147. package/src/esm/geomutils.js +47 -1
  148. package/src/esm/geomutils.js.map +1 -1
  149. package/src/esm/interfaces/core.d.ts +39 -0
  150. package/src/esm/interfaces/core.js +2 -0
  151. package/src/esm/interfaces/core.js.map +1 -1
  152. package/src/esm/utils/algorithms/PolygonInset.d.ts +184 -0
  153. package/src/esm/utils/algorithms/PolygonInset.js +424 -0
  154. package/src/esm/utils/algorithms/PolygonInset.js.map +1 -0
  155. package/src/esm/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
  156. package/src/esm/utils/algorithms/clearDuplicateVertices.js +6 -3
  157. package/src/esm/utils/algorithms/clearDuplicateVertices.js.map +1 -1
  158. package/src/esm/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
  159. package/src/esm/utils/algorithms/convexPolygonIncircle.js +15 -7
  160. package/src/esm/utils/algorithms/convexPolygonIncircle.js.map +1 -1
  161. package/src/esm/utils/algorithms/createRandomizedPolygon.d.ts +14 -0
  162. package/src/esm/utils/algorithms/createRandomizedPolygon.js +28 -0
  163. package/src/esm/utils/algorithms/createRandomizedPolygon.js.map +1 -0
  164. package/src/esm/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
  165. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js +3 -3
  166. package/src/esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
  167. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
  168. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
  169. package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
  170. package/src/esm/utils/createRandomizedPolygon.d.ts +14 -0
  171. package/src/esm/utils/createRandomizedPolygon.js +28 -0
  172. package/src/esm/utils/createRandomizedPolygon.js.map +1 -0
  173. package/src/esm/utils/detectDarkMode.js.map +1 -1
  174. package/src/esm/utils/dom/guiSizeToggler.d.ts +2 -1
  175. package/src/esm/utils/dom/guiSizeToggler.js +4 -2
  176. package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
  177. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
  178. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +35 -22
  179. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  180. package/src/esm/utils/helpers/CircleSectorHelper.d.ts +10 -1
  181. package/src/esm/utils/helpers/CircleSectorHelper.js +19 -20
  182. package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
  183. package/src/esm/utils/helpers/VEllipseHelper.d.ts +30 -0
  184. package/src/esm/utils/helpers/VEllipseHelper.js +81 -0
  185. package/src/esm/utils/helpers/VEllipseHelper.js.map +1 -0
  186. package/src/esm/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
  187. package/src/esm/utils/helpers/VEllipseSectorHelper.js +106 -24
  188. package/src/esm/utils/helpers/VEllipseSectorHelper.js.map +1 -1
  189. package/src/ts/BezierPath.ts +58 -5
  190. package/src/ts/Bounds.ts +110 -6
  191. package/src/ts/Circle.ts +87 -5
  192. package/src/ts/CircleSector.ts +115 -5
  193. package/src/ts/CubicBezierCurve.ts +332 -42
  194. package/src/ts/Line.ts +66 -3
  195. package/src/ts/PlotBoilerplate.ts +10 -12
  196. package/src/ts/Polygon.ts +329 -27
  197. package/src/ts/Triangle.ts +101 -5
  198. package/src/ts/VEllipse.ts +214 -19
  199. package/src/ts/VEllipseSector.ts +154 -8
  200. package/src/ts/Vector.ts +16 -2
  201. package/src/ts/VertTuple.ts +53 -13
  202. package/src/ts/Vertex.ts +24 -3
  203. package/src/ts/draw.ts +2 -1
  204. package/src/ts/drawutilssvg.ts +29 -0
  205. package/src/ts/geomutils.ts +49 -1
  206. package/src/ts/interfaces/core.ts +42 -0
  207. package/src/ts/utils/algorithms/PolygonInset.ts +529 -0
  208. package/src/ts/utils/algorithms/clearDuplicateVertices.ts +11 -8
  209. package/src/ts/utils/algorithms/convexPolygonIncircle.ts +82 -78
  210. package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts +25 -26
  211. package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts +92 -99
  212. package/src/ts/utils/createRandomizedPolygon.ts +31 -0
  213. package/src/ts/utils/detectDarkMode.ts +1 -3
  214. package/src/ts/utils/dom/guiSizeToggler.ts +4 -2
  215. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +45 -29
  216. package/src/ts/utils/helpers/CircleSectorHelper.ts +115 -125
  217. package/src/ts/utils/helpers/VEllipseHelper.ts +113 -0
  218. package/src/ts/utils/helpers/VEllipseSectorHelper.ts +142 -25
@@ -1,60 +1,177 @@
1
1
  /**
2
2
  * A helper for VEllipseSectors.
3
3
  *
4
- * @author Ikaros Kappler
5
- * @date 2021-03-24
6
- * @version 1.0.0
4
+ * @author Ikaros Kappler
5
+ * @date 2021-03-24
6
+ * @modified 2025-04-02 Adding `VEllipseSectorHelper.drawHandleLines`.
7
+ * @modified 2025-04-07 Modifying the calculation of `startAngle` and `endAngle` from the rotation control point: wrapping result into [0,TWO_PI).
8
+ * @modified 2025-04-09 Adding the `VEllipseSectorHelper.destroy` method.
9
+ * @version 1.1.0
7
10
  */
8
11
 
9
12
  import { Line } from "../../Line";
10
13
  import { VEllipseSector } from "../../VEllipseSector";
11
14
  import { Vertex } from "../../Vertex";
12
- import { VertEvent } from "../../VertexListeners";
15
+ import { VertEvent, VertListener } from "../../VertexListeners";
16
+ import { geomutils } from "../../geomutils";
17
+ import { DrawLib } from "../../interfaces";
13
18
 
14
19
  export class VEllipseSectorHelper {
20
+ private sector: VEllipseSector;
21
+ private startAngleControlPoint: Vertex;
22
+ private endAngleControlPoint: Vertex;
23
+ private rotationControlPoint: Vertex;
24
+
25
+ private _rotationControlLine: Line;
26
+ private _startAngleControlLine: Line;
27
+ private _endAngleControlLine: Line;
28
+
29
+ private _centerHandler: VertListener;
30
+ private _rotationHandler: VertListener;
31
+ private _startAngleHandler: VertListener;
32
+ private _endAngleHandler: VertListener;
33
+
15
34
  constructor(
16
35
  sector: VEllipseSector,
17
36
  startAngleControlPoint: Vertex,
18
37
  endAngleControlPoint: Vertex,
19
38
  rotationControlPoint: Vertex
20
39
  ) {
21
- const rotationControlLine: Line = new Line(sector.ellipse.center, rotationControlPoint);
22
- const startAngleControlLine: Line = new Line(sector.ellipse.center, startAngleControlPoint);
23
- const endAngleControlLine: Line = new Line(sector.ellipse.center, endAngleControlPoint);
40
+ this.sector = sector;
41
+ this.startAngleControlPoint = startAngleControlPoint;
42
+ this.endAngleControlPoint = endAngleControlPoint;
43
+ this.rotationControlPoint = rotationControlPoint;
44
+
45
+ // const rotationControlLine: Line = new Line(sector.ellipse.center, rotationControlPoint);
46
+ this._rotationControlLine = new Line(sector.ellipse.center, rotationControlPoint);
47
+ // const startAngleControlLine: Line = new Line(sector.ellipse.center, startAngleControlPoint);
48
+ this._startAngleControlLine = new Line(sector.ellipse.center, startAngleControlPoint);
49
+ // const endAngleControlLine: Line = new Line(sector.ellipse.center, endAngleControlPoint);
50
+ this._endAngleControlLine = new Line(sector.ellipse.center, endAngleControlPoint);
24
51
 
25
52
  // +---------------------------------------------------------------------
26
53
  // | Listen for the center to be moved.
27
54
  // +-------------------------------------------
28
- sector.ellipse.center.listeners.addDragListener((event: VertEvent) => {
29
- startAngleControlPoint.add(event.params.dragAmount);
30
- endAngleControlPoint.add(event.params.dragAmount);
31
- rotationControlPoint.add(event.params.dragAmount);
32
- });
55
+ sector.ellipse.center.listeners.addDragListener((this._centerHandler = this._handleDragCenterPoint()));
33
56
 
34
57
  // +---------------------------------------------------------------------
35
58
  // | Listen for rotation changes.
36
59
  // +-------------------------------------------
37
- rotationControlPoint.listeners.addDragListener((event: VertEvent) => {
38
- var newRotation = rotationControlLine.angle();
39
- var rDiff = newRotation - sector.ellipse.rotation;
40
- sector.ellipse.rotation = newRotation;
41
- sector.ellipse.axis.rotate(rDiff, sector.ellipse.center);
42
- startAngleControlPoint.rotate(rDiff, sector.ellipse.center);
43
- endAngleControlPoint.rotate(rDiff, sector.ellipse.center);
44
- });
60
+ rotationControlPoint.listeners.addDragListener((this._rotationHandler = this._handleDragRotationControlPoint()));
45
61
 
46
62
  // +---------------------------------------------------------------------
47
63
  // | Listen for start angle changes.
48
64
  // +-------------------------------------------
49
- startAngleControlPoint.listeners.addDragListener((event: VertEvent) => {
50
- sector.startAngle = startAngleControlLine.angle() - sector.ellipse.rotation;
51
- });
65
+ startAngleControlPoint.listeners.addDragListener((this._startAngleHandler = this._handleDragStartAngleControlPoint()));
52
66
 
53
67
  // +---------------------------------------------------------------------
54
68
  // | Listen for end angle changes.
55
69
  // +-------------------------------------------
56
- endAngleControlPoint.listeners.addDragListener((event: VertEvent) => {
57
- sector.endAngle = endAngleControlLine.angle() - sector.ellipse.rotation;
70
+ endAngleControlPoint.listeners.addDragListener((this._endAngleHandler = this._handleDragEndAngleControlPoint()));
71
+ }
72
+
73
+ /**
74
+ * Creates a new drag handler for the circle sector's start control point.
75
+ *
76
+ * @private
77
+ * @method _handleDragStartControlPoint
78
+ * @instance
79
+ * @memberof CircleSectorHelper
80
+ * @returns A new event handler.
81
+ */
82
+ private _handleDragCenterPoint(): VertListener {
83
+ const _self = this;
84
+ return (event: VertEvent) => {
85
+ _self.startAngleControlPoint.add(event.params.dragAmount);
86
+ _self.endAngleControlPoint.add(event.params.dragAmount);
87
+ _self.rotationControlPoint.add(event.params.dragAmount);
88
+ };
89
+ }
90
+
91
+ private _handleDragRotationControlPoint(): VertListener {
92
+ const _self = this;
93
+ return (event: VertEvent) => {
94
+ const newRotation: number = _self._rotationControlLine.angle();
95
+ const rDiff: number = newRotation - _self.sector.ellipse.rotation;
96
+ _self.sector.ellipse.rotation = newRotation;
97
+ _self.sector.ellipse.axis.rotate(rDiff, _self.sector.ellipse.center);
98
+ _self.startAngleControlPoint.rotate(rDiff, _self.sector.ellipse.center);
99
+ _self.endAngleControlPoint.rotate(rDiff, _self.sector.ellipse.center);
100
+ };
101
+ }
102
+
103
+ private _handleDragStartAngleControlPoint(): VertListener {
104
+ const _self = this;
105
+ return (_event: VertEvent) => {
106
+ // sector.startAngle = startAngleControlLine.angle() - sector.ellipse.rotation;
107
+ _self.sector.startAngle = geomutils.mapAngleTo2PI(_self._startAngleControlLine.angle() - _self.sector.ellipse.rotation);
108
+ };
109
+ }
110
+
111
+ private _handleDragEndAngleControlPoint(): VertListener {
112
+ const _self = this;
113
+
114
+ return (event: VertEvent) => {
115
+ _self.sector.endAngle = geomutils.mapAngleTo2PI(_self._endAngleControlLine.angle() - _self.sector.ellipse.rotation);
116
+ };
117
+ }
118
+
119
+ /**
120
+ * Draw grey handle lines.
121
+ *
122
+ * @param {DrawLib<any>} draw - The draw library instance to use.
123
+ * @param {DrawLib<any>} fill - The fill library instance to use.
124
+ */
125
+ drawHandleLines(draw: DrawLib<any>, fill: DrawLib<any>) {
126
+ draw.line(this.sector.ellipse.center, this.startAngleControlPoint, "rgba(64,192,128,0.333)", 1.0, {
127
+ dashOffset: 0.0,
128
+ dashArray: [4, 2]
129
+ });
130
+ draw.line(this.sector.ellipse.center, this.endAngleControlPoint, "rgba(64,192,128,0.333)", 1.0, {
131
+ dashOffset: 0.0,
132
+ dashArray: [4, 2]
58
133
  });
134
+ // Draw rotation handle line
135
+ draw.line(this.sector.ellipse.center, this.rotationControlPoint, "rgba(192,64,128,0.333)", 1.0, {
136
+ dashOffset: 0.0,
137
+ dashArray: [4, 2]
138
+ });
139
+ // Draw helper box
140
+ draw.line(
141
+ this.sector.ellipse.center
142
+ .clone()
143
+ .add(0, this.sector.ellipse.signedRadiusV())
144
+ .rotate(this.sector.ellipse.rotation, this.sector.ellipse.center),
145
+ this.sector.ellipse.axis,
146
+ "rgba(64,128,192,0.333)",
147
+ 1.0,
148
+ {
149
+ dashOffset: 0.0,
150
+ dashArray: [4, 2]
151
+ }
152
+ );
153
+ draw.line(
154
+ this.sector.ellipse.center
155
+ .clone()
156
+ .add(this.sector.ellipse.signedRadiusH(), 0)
157
+ .rotate(this.sector.ellipse.rotation, this.sector.ellipse.center),
158
+ this.sector.ellipse.axis,
159
+ "rgba(64,128,192,0.333)",
160
+ 1.0,
161
+ {
162
+ dashOffset: 0.0,
163
+ dashArray: [4, 2]
164
+ }
165
+ );
166
+ } // END drawHandleLines
167
+
168
+ /**
169
+ * Destroy this VEllipseHandler which means: all listeners are being removed.
170
+ */
171
+ destroy(): void {
172
+ this.sector.ellipse.center.listeners.removeDragListener(this._centerHandler);
173
+ this.rotationControlPoint.listeners.removeDragListener(this._rotationHandler);
174
+ this.startAngleControlPoint.listeners.removeDragListener(this._startAngleHandler);
175
+ this.endAngleControlPoint.listeners.removeDragListener(this._endAngleHandler);
59
176
  }
60
177
  }