plotboilerplate 1.15.0 → 1.17.1

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 (237) hide show
  1. package/README.md +1 -0
  2. package/changelog.md +65 -0
  3. package/dist/index.esm.js +760 -667
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.esm.min.js +1 -1
  6. package/dist/index.esm.min.js.map +1 -1
  7. package/dist/plotboilerplate.browser.min.js +1 -1
  8. package/dist/plotboilerplate.browser.min.js.map +1 -1
  9. package/dist/plotboilerplate.js +765 -571
  10. package/dist/plotboilerplate.min.js +1 -1
  11. package/package.json +1 -1
  12. package/src/cjs/BezierPath.d.ts +32 -14
  13. package/src/cjs/BezierPath.js +65 -24
  14. package/src/cjs/BezierPath.js.map +1 -1
  15. package/src/cjs/Bounds.d.ts +33 -1
  16. package/src/cjs/Bounds.js +38 -1
  17. package/src/cjs/Bounds.js.map +1 -1
  18. package/src/cjs/Circle.d.ts +15 -13
  19. package/src/cjs/Circle.js +16 -34
  20. package/src/cjs/Circle.js.map +1 -1
  21. package/src/cjs/CircleSector.d.ts +17 -16
  22. package/src/cjs/CircleSector.js +12 -24
  23. package/src/cjs/CircleSector.js.map +1 -1
  24. package/src/cjs/CubicBezierCurve.d.ts +16 -15
  25. package/src/cjs/CubicBezierCurve.js +57 -94
  26. package/src/cjs/CubicBezierCurve.js.map +1 -1
  27. package/src/cjs/KeyHandler.d.ts +10 -3
  28. package/src/cjs/KeyHandler.js +28 -23
  29. package/src/cjs/KeyHandler.js.map +1 -1
  30. package/src/cjs/Line.d.ts +2 -15
  31. package/src/cjs/Line.js +6 -31
  32. package/src/cjs/Line.js.map +1 -1
  33. package/src/cjs/MouseHandler.js +43 -53
  34. package/src/cjs/MouseHandler.js.map +1 -1
  35. package/src/cjs/PBImage.d.ts +15 -13
  36. package/src/cjs/PBImage.js +11 -15
  37. package/src/cjs/PBImage.js.map +1 -1
  38. package/src/cjs/PBText.d.ts +13 -12
  39. package/src/cjs/PBText.js +8 -12
  40. package/src/cjs/PBText.js.map +1 -1
  41. package/src/cjs/PlotBoilerplate.d.ts +3 -1
  42. package/src/cjs/PlotBoilerplate.js +9 -2
  43. package/src/cjs/PlotBoilerplate.js.map +1 -1
  44. package/src/cjs/Polygon.d.ts +23 -14
  45. package/src/cjs/Polygon.js +22 -35
  46. package/src/cjs/Polygon.js.map +1 -1
  47. package/src/cjs/Triangle.d.ts +15 -13
  48. package/src/cjs/Triangle.js +23 -64
  49. package/src/cjs/Triangle.js.map +1 -1
  50. package/src/cjs/VEllipse.d.ts +14 -9
  51. package/src/cjs/VEllipse.js +10 -18
  52. package/src/cjs/VEllipse.js.map +1 -1
  53. package/src/cjs/VEllipseSector.d.ts +15 -1
  54. package/src/cjs/VEllipseSector.js +11 -1
  55. package/src/cjs/VEllipseSector.js.map +1 -1
  56. package/src/cjs/Vector.d.ts +3 -15
  57. package/src/cjs/Vector.js +9 -49
  58. package/src/cjs/Vector.js.map +1 -1
  59. package/src/cjs/VertTuple.d.ts +15 -1
  60. package/src/cjs/VertTuple.js +14 -19
  61. package/src/cjs/VertTuple.js.map +1 -1
  62. package/src/cjs/Vertex.d.ts +23 -13
  63. package/src/cjs/Vertex.js +24 -22
  64. package/src/cjs/Vertex.js.map +1 -1
  65. package/src/cjs/VertexListeners.d.ts +12 -8
  66. package/src/cjs/VertexListeners.js +18 -25
  67. package/src/cjs/VertexListeners.js.map +1 -1
  68. package/src/cjs/draw.d.ts +45 -3
  69. package/src/cjs/draw.js +149 -6
  70. package/src/cjs/draw.js.map +1 -1
  71. package/src/cjs/drawgl.d.ts +41 -3
  72. package/src/cjs/drawgl.js +45 -3
  73. package/src/cjs/drawgl.js.map +1 -1
  74. package/src/cjs/drawutilssvg.d.ts +69 -4
  75. package/src/cjs/drawutilssvg.js +147 -16
  76. package/src/cjs/drawutilssvg.js.map +1 -1
  77. package/src/cjs/index.d.ts +0 -1
  78. package/src/cjs/index.js +0 -1
  79. package/src/cjs/index.js.map +1 -1
  80. package/src/cjs/interfaces/DrawLib.d.ts +64 -27
  81. package/src/cjs/interfaces/DrawLib.js +3 -0
  82. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  83. package/src/cjs/interfaces/core.d.ts +2 -12
  84. package/src/cjs/interfaces/core.js +1 -0
  85. package/src/cjs/interfaces/core.js.map +1 -1
  86. package/src/cjs/module.d.ts +1 -3
  87. package/src/cjs/module.js +2 -5
  88. package/src/cjs/module.js.map +1 -1
  89. package/src/cjs/utils/creategui.js +16 -2
  90. package/src/cjs/utils/datastructures/Color.d.ts +3 -1
  91. package/src/cjs/utils/datastructures/Color.js +17 -6
  92. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  93. package/src/cjs/utils/datastructures/Girih.d.ts +5 -0
  94. package/src/cjs/utils/datastructures/Girih.js +18 -14
  95. package/src/cjs/utils/datastructures/Girih.js.map +1 -1
  96. package/src/cjs/utils/datastructures/GirihPenroseRhombus.js +42 -25
  97. package/src/cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
  98. package/src/cjs/utils/datastructures/GirihTile.js +2 -13
  99. package/src/cjs/utils/datastructures/GirihTile.js.map +1 -1
  100. package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
  101. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +50 -32
  102. package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  103. package/src/cjs/utils/io/DndFileHandler.d.ts +63 -0
  104. package/src/cjs/utils/io/DndFileHandler.js +112 -0
  105. package/src/cjs/utils/io/DndFileHandler.js.map +1 -0
  106. package/src/cjs/utils/io/FileDrop.d.ts +98 -0
  107. package/src/cjs/utils/io/FileDrop.js +142 -0
  108. package/src/cjs/utils/io/FileDrop.js.map +1 -0
  109. package/src/esm/BezierPath.d.ts +32 -14
  110. package/src/esm/BezierPath.js +65 -24
  111. package/src/esm/BezierPath.js.map +1 -1
  112. package/src/esm/Bounds.d.ts +33 -1
  113. package/src/esm/Bounds.js +38 -1
  114. package/src/esm/Bounds.js.map +1 -1
  115. package/src/esm/Circle.d.ts +15 -13
  116. package/src/esm/Circle.js +16 -34
  117. package/src/esm/Circle.js.map +1 -1
  118. package/src/esm/CircleSector.d.ts +17 -16
  119. package/src/esm/CircleSector.js +12 -24
  120. package/src/esm/CircleSector.js.map +1 -1
  121. package/src/esm/CubicBezierCurve.d.ts +16 -15
  122. package/src/esm/CubicBezierCurve.js +57 -94
  123. package/src/esm/CubicBezierCurve.js.map +1 -1
  124. package/src/esm/KeyHandler.d.ts +10 -3
  125. package/src/esm/KeyHandler.js +28 -23
  126. package/src/esm/KeyHandler.js.map +1 -1
  127. package/src/esm/Line.d.ts +2 -15
  128. package/src/esm/Line.js +6 -31
  129. package/src/esm/Line.js.map +1 -1
  130. package/src/esm/MouseHandler.js +43 -53
  131. package/src/esm/MouseHandler.js.map +1 -1
  132. package/src/esm/PBImage.d.ts +15 -13
  133. package/src/esm/PBImage.js +11 -15
  134. package/src/esm/PBImage.js.map +1 -1
  135. package/src/esm/PBText.d.ts +13 -12
  136. package/src/esm/PBText.js +8 -12
  137. package/src/esm/PBText.js.map +1 -1
  138. package/src/esm/PlotBoilerplate.d.ts +3 -1
  139. package/src/esm/PlotBoilerplate.js +9 -2
  140. package/src/esm/PlotBoilerplate.js.map +1 -1
  141. package/src/esm/Polygon.d.ts +23 -14
  142. package/src/esm/Polygon.js +22 -35
  143. package/src/esm/Polygon.js.map +1 -1
  144. package/src/esm/Triangle.d.ts +15 -13
  145. package/src/esm/Triangle.js +23 -64
  146. package/src/esm/Triangle.js.map +1 -1
  147. package/src/esm/VEllipse.d.ts +14 -9
  148. package/src/esm/VEllipse.js +10 -18
  149. package/src/esm/VEllipse.js.map +1 -1
  150. package/src/esm/VEllipseSector.d.ts +15 -1
  151. package/src/esm/VEllipseSector.js +11 -1
  152. package/src/esm/VEllipseSector.js.map +1 -1
  153. package/src/esm/Vector.d.ts +3 -15
  154. package/src/esm/Vector.js +9 -49
  155. package/src/esm/Vector.js.map +1 -1
  156. package/src/esm/VertTuple.d.ts +15 -1
  157. package/src/esm/VertTuple.js +14 -19
  158. package/src/esm/VertTuple.js.map +1 -1
  159. package/src/esm/Vertex.d.ts +23 -13
  160. package/src/esm/Vertex.js +24 -22
  161. package/src/esm/Vertex.js.map +1 -1
  162. package/src/esm/VertexListeners.d.ts +12 -8
  163. package/src/esm/VertexListeners.js +18 -25
  164. package/src/esm/VertexListeners.js.map +1 -1
  165. package/src/esm/draw.d.ts +45 -3
  166. package/src/esm/draw.js +147 -6
  167. package/src/esm/draw.js.map +1 -1
  168. package/src/esm/drawgl.d.ts +41 -3
  169. package/src/esm/drawgl.js +44 -3
  170. package/src/esm/drawgl.js.map +1 -1
  171. package/src/esm/drawutilssvg.d.ts +69 -4
  172. package/src/esm/drawutilssvg.js +146 -16
  173. package/src/esm/drawutilssvg.js.map +1 -1
  174. package/src/esm/index.d.ts +0 -1
  175. package/src/esm/index.js +0 -1
  176. package/src/esm/index.js.map +1 -1
  177. package/src/esm/interfaces/DrawLib.d.ts +64 -27
  178. package/src/esm/interfaces/DrawLib.js +3 -0
  179. package/src/esm/interfaces/DrawLib.js.map +1 -1
  180. package/src/esm/interfaces/core.d.ts +2 -12
  181. package/src/esm/interfaces/core.js +1 -0
  182. package/src/esm/interfaces/core.js.map +1 -1
  183. package/src/esm/module.d.ts +1 -3
  184. package/src/esm/module.js +5 -4
  185. package/src/esm/module.js.map +1 -1
  186. package/src/esm/utils/datastructures/Color.d.ts +3 -1
  187. package/src/esm/utils/datastructures/Color.js +17 -6
  188. package/src/esm/utils/datastructures/Color.js.map +1 -1
  189. package/src/esm/utils/datastructures/Girih.d.ts +5 -0
  190. package/src/esm/utils/datastructures/Girih.js +18 -14
  191. package/src/esm/utils/datastructures/Girih.js.map +1 -1
  192. package/src/esm/utils/datastructures/GirihPenroseRhombus.js +42 -25
  193. package/src/esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
  194. package/src/esm/utils/datastructures/GirihTile.js +2 -13
  195. package/src/esm/utils/datastructures/GirihTile.js.map +1 -1
  196. package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
  197. package/src/esm/utils/helpers/BezierPathInteractionHelper.js +49 -32
  198. package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
  199. package/src/esm/utils/io/DndFileHandler.d.ts +63 -0
  200. package/src/esm/utils/io/DndFileHandler.js +106 -0
  201. package/src/esm/utils/io/DndFileHandler.js.map +1 -0
  202. package/src/esm/utils/io/FileDrop.d.ts +98 -0
  203. package/src/esm/utils/io/FileDrop.js +136 -0
  204. package/src/esm/utils/io/FileDrop.js.map +1 -0
  205. package/src/ts/BezierPath.ts +78 -22
  206. package/src/ts/Bounds.ts +40 -1
  207. package/src/ts/Circle.ts +187 -200
  208. package/src/ts/CircleSector.ts +141 -141
  209. package/src/ts/CubicBezierCurve.ts +738 -810
  210. package/src/ts/KeyHandler.ts +221 -212
  211. package/src/ts/Line.ts +48 -80
  212. package/src/ts/MouseHandler.ts +356 -368
  213. package/src/ts/PBImage.ts +67 -69
  214. package/src/ts/PBText.ts +16 -14
  215. package/src/ts/PlotBoilerplate.ts +9 -2
  216. package/src/ts/Polygon.ts +34 -34
  217. package/src/ts/Triangle.ts +444 -489
  218. package/src/ts/VEllipse.ts +18 -17
  219. package/src/ts/VEllipseSector.ts +20 -1
  220. package/src/ts/Vector.ts +124 -160
  221. package/src/ts/VertTuple.ts +333 -338
  222. package/src/ts/Vertex.ts +35 -21
  223. package/src/ts/VertexListeners.ts +248 -266
  224. package/src/ts/draw.ts +201 -6
  225. package/src/ts/drawgl.ts +47 -3
  226. package/src/ts/drawutilssvg.ts +187 -16
  227. package/src/ts/index.ts +0 -1
  228. package/src/ts/interfaces/DrawLib.ts +72 -27
  229. package/src/ts/interfaces/core.ts +3 -13
  230. package/src/ts/module.ts +2 -4
  231. package/src/ts/utils/datastructures/Color.ts +17 -6
  232. package/src/ts/utils/datastructures/Girih.ts +204 -209
  233. package/src/ts/utils/datastructures/GirihPenroseRhombus.ts +170 -152
  234. package/src/ts/utils/datastructures/GirihTile.ts +394 -419
  235. package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +56 -34
  236. package/src/ts/utils/io/FileDrop.ts +178 -0
  237. package/src/ts/SVGBuilder.ts +0 -109
@@ -6,11 +6,16 @@
6
6
  * @modified 2020-10-15 Re-added the text() function.
7
7
  * @modified 2021-01-24 Added the `setCurrentId` function.
8
8
  * @modified 2021-05-31 Added the `setConfiguration` function from `DrawLib`.
9
- * @version 0.0.5
9
+ * @modified 2022-02-03 Added the `lineWidth` param to the `crosshair` function.
10
+ * @modified 2022-02-03 Added the `cross(...)` function.
11
+ * @modified 2022-03-27 Added the `texturedPoly` function.
12
+ * @modified 2022-07-26 Adding `alpha` to the `image(...)` function.
13
+ * @version 0.0.8
10
14
  **/
11
15
  import { Polygon } from "./Polygon";
12
16
  import { Vertex } from "./Vertex";
13
17
  import { DrawLib, XYCoords, SVGPathParams, UID, DrawLibConfiguration, FontStyle, FontWeight } from "./interfaces";
18
+ import { Bounds } from "./Bounds";
14
19
  /**
15
20
  * @classdesc A wrapper class for basic drawing operations. This is the WebGL
16
21
  * implementation whih sould work with shaders.
@@ -127,11 +132,28 @@ export declare class drawutilsgl implements DrawLib<void> {
127
132
  * @param {Image} image - The image object to draw.
128
133
  * @param {Vertex} position - The position to draw the the upper left corner at.
129
134
  * @param {Vertex} size - The x/y-size to draw the image with.
135
+ * @param {number=0.0} alpha - (optional, default=0.0) The transparency (0.0=opaque, 1.0=transparent).
130
136
  * @return {void}
131
137
  * @instance
132
138
  * @memberof drawutils
133
139
  **/
134
- image(image: HTMLImageElement, position: Vertex, size: Vertex): void;
140
+ image(image: HTMLImageElement, position: Vertex, size: Vertex, alpha?: number): void;
141
+ /**
142
+ * Draw an image at the given position with the given size.<br>
143
+ * <br>
144
+ * Note: SVG images may have resizing issues at the moment.Draw a line and an arrow at the end (zB) of the given line with the specified (CSS-) color.
145
+ *
146
+ * @method texturedPoly
147
+ * @param {Image} textureImage - The image object to draw.
148
+ * @param {Bounds} textureSize - The texture size to use; these are the original bounds to map the polygon vertices to.
149
+ * @param {Polygon} polygon - The polygon to use as clip path.
150
+ * @param {Vertex} polygonPosition - The polygon's position (relative), measured at the bounding box's center.
151
+ * @param {number} rotation - The rotation to use for the polygon (and for the texture).
152
+ * @return {void}
153
+ * @instance
154
+ * @memberof drawutilsgl
155
+ **/
156
+ texturedPoly(textureImage: HTMLImageElement, textureSize: Bounds, polygon: Polygon, polygonPosition: Vertex, rotation: number): void;
135
157
  _fillOrDraw(color: string): void;
136
158
  /**
137
159
  * Draw the given (cubic) bézier curve.
@@ -368,11 +390,27 @@ export declare class drawutilsgl implements DrawLib<void> {
368
390
  * @param {XYCoords} center - The center of the crosshair.
369
391
  * @param {number} radius - The radius of the crosshair.
370
392
  * @param {string} color - The CSS color to draw the crosshair with.
393
+ * @param {number=0.5} lineWidth - (optional, default=0.5) The line width to use.
394
+ * @return {void}
395
+ * @instance
396
+ * @memberof drawutils
397
+ */
398
+ crosshair(center: XYCoords, radius: number, color: string, lineWidth?: number): void;
399
+ /**
400
+ * Draw a cross with diagonal axes with given radius, color and lineWidth at the given position.<br>
401
+ * <br>
402
+ * Note that the x's radius will not be affected by scaling.
403
+ *
404
+ * @method crosshair
405
+ * @param {XYCoords} center - The center of the crosshair.
406
+ * @param {number} radius - The radius of the crosshair.
407
+ * @param {string} color - The CSS color to draw the crosshair with.
408
+ * @param {number=1} lineWidth - (optional, default=1.0) The line width to use.
371
409
  * @return {void}
372
410
  * @instance
373
411
  * @memberof drawutils
374
412
  */
375
- crosshair(center: XYCoords, radius: number, color: string): void;
413
+ cross(center: XYCoords, radius: number, color: string, lineWidth?: number): void;
376
414
  /**
377
415
  * Draw a polygon.
378
416
  *
package/src/esm/drawgl.js CHANGED
@@ -6,7 +6,11 @@
6
6
  * @modified 2020-10-15 Re-added the text() function.
7
7
  * @modified 2021-01-24 Added the `setCurrentId` function.
8
8
  * @modified 2021-05-31 Added the `setConfiguration` function from `DrawLib`.
9
- * @version 0.0.5
9
+ * @modified 2022-02-03 Added the `lineWidth` param to the `crosshair` function.
10
+ * @modified 2022-02-03 Added the `cross(...)` function.
11
+ * @modified 2022-03-27 Added the `texturedPoly` function.
12
+ * @modified 2022-07-26 Adding `alpha` to the `image(...)` function.
13
+ * @version 0.0.8
10
14
  **/
11
15
  import { Vertex } from "./Vertex";
12
16
  /**
@@ -197,11 +201,30 @@ export class drawutilsgl {
197
201
  * @param {Image} image - The image object to draw.
198
202
  * @param {Vertex} position - The position to draw the the upper left corner at.
199
203
  * @param {Vertex} size - The x/y-size to draw the image with.
204
+ * @param {number=0.0} alpha - (optional, default=0.0) The transparency (0.0=opaque, 1.0=transparent).
200
205
  * @return {void}
201
206
  * @instance
202
207
  * @memberof drawutils
203
208
  **/
204
- image(image, position, size) {
209
+ image(image, position, size, alpha = 0.0) {
210
+ // NOT YET IMPLEMENTED
211
+ }
212
+ /**
213
+ * Draw an image at the given position with the given size.<br>
214
+ * <br>
215
+ * Note: SVG images may have resizing issues at the moment.Draw a line and an arrow at the end (zB) of the given line with the specified (CSS-) color.
216
+ *
217
+ * @method texturedPoly
218
+ * @param {Image} textureImage - The image object to draw.
219
+ * @param {Bounds} textureSize - The texture size to use; these are the original bounds to map the polygon vertices to.
220
+ * @param {Polygon} polygon - The polygon to use as clip path.
221
+ * @param {Vertex} polygonPosition - The polygon's position (relative), measured at the bounding box's center.
222
+ * @param {number} rotation - The rotation to use for the polygon (and for the texture).
223
+ * @return {void}
224
+ * @instance
225
+ * @memberof drawutilsgl
226
+ **/
227
+ texturedPoly(textureImage, textureSize, polygon, polygonPosition, rotation) {
205
228
  // NOT YET IMPLEMENTED
206
229
  }
207
230
  // +---------------------------------------------------------------------------------
@@ -485,11 +508,29 @@ export class drawutilsgl {
485
508
  * @param {XYCoords} center - The center of the crosshair.
486
509
  * @param {number} radius - The radius of the crosshair.
487
510
  * @param {string} color - The CSS color to draw the crosshair with.
511
+ * @param {number=0.5} lineWidth - (optional, default=0.5) The line width to use.
512
+ * @return {void}
513
+ * @instance
514
+ * @memberof drawutils
515
+ */
516
+ crosshair(center, radius, color, lineWidth) {
517
+ // NOT YET IMPLEMENTED
518
+ }
519
+ /**
520
+ * Draw a cross with diagonal axes with given radius, color and lineWidth at the given position.<br>
521
+ * <br>
522
+ * Note that the x's radius will not be affected by scaling.
523
+ *
524
+ * @method crosshair
525
+ * @param {XYCoords} center - The center of the crosshair.
526
+ * @param {number} radius - The radius of the crosshair.
527
+ * @param {string} color - The CSS color to draw the crosshair with.
528
+ * @param {number=1} lineWidth - (optional, default=1.0) The line width to use.
488
529
  * @return {void}
489
530
  * @instance
490
531
  * @memberof drawutils
491
532
  */
492
- crosshair(center, radius, color) {
533
+ cross(center, radius, color, lineWidth) {
493
534
  // NOT YET IMPLEMENTED
494
535
  }
495
536
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"drawgl.js","sourceRoot":"","sources":["../ts/drawgl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drawgl.js","sourceRoot":"","sources":["../ts/drawgl.ts"],"names":[],"mappings":"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"}
@@ -29,11 +29,17 @@
29
29
  * @modified 2021-11-15 Adding more parameters tot the `text()` function: fontSize, textAlign, fontFamily, lineHeight.
30
30
  * @modified 2021-11-19 Fixing the `label(text,x,y)` position.
31
31
  * @modified 2021-11-19 Added the `color` param to the `label(...)` function.
32
- * @version 1.4.0
32
+ * @modified 2022-02-03 Added the `lineWidth` param to the `crosshair` function.
33
+ * @modified 2022-02-03 Added the `cross(...)` function.
34
+ * @modified 2022-03-26 Added the private `nodeDefs` and `bufferedNodeDefs` attributes.
35
+ * @modified 2022-03-26 Added the `texturedPoly` function to draw textures polygons.
36
+ * @modified 2022-07-26 Adding `alpha` to the `image(...)` function.
37
+ * @version 1.6.1
33
38
  **/
34
39
  import { Polygon } from "./Polygon";
35
40
  import { Vertex } from "./Vertex";
36
41
  import { DrawConfig, DrawLib, XYCoords, XYDimension, SVGPathParams, UID, DrawLibConfiguration, FontStyle, FontWeight } from "./interfaces";
42
+ import { Bounds } from "./Bounds";
37
43
  /**
38
44
  * @classdesc A helper class for basic SVG drawing operations. This class should
39
45
  * be compatible to the default 'draw' class.
@@ -71,6 +77,22 @@ export declare class drawutilssvg implements DrawLib<void | SVGElement> {
71
77
  * @private
72
78
  */
73
79
  private nodeStyle;
80
+ /**
81
+ * A style node of type `<defs>`.
82
+ * @member {SVGGelement}
83
+ * @memberof drawutilssvg
84
+ * @instance
85
+ * @private
86
+ */
87
+ private nodeDefs;
88
+ /**
89
+ * The buffered nodeDefs.
90
+ * @member {SVGGelement}
91
+ * @memberof drawutilssvg
92
+ * @instance
93
+ * @private
94
+ */
95
+ private bufferedNodeDefs;
74
96
  /**
75
97
  * @member {Vertex}
76
98
  * @memberof drawutilssvg
@@ -136,8 +158,18 @@ export declare class drawutilssvg implements DrawLib<void | SVGElement> {
136
158
  * @param {boolean=} isSecondary - (optional) Indicates if this is the primary or secondary instance. Only primary instances manage child nodes.
137
159
  * @param {SVGGElement=} gNode - (optional) Primary and seconday instances share the same &lt;g> node.
138
160
  **/
139
- constructor(svgNode: SVGElement, offset: XYCoords, scale: XYCoords, canvasSize: XYDimension, fillShapes: boolean, drawConfig: DrawConfig, isSecondary?: boolean, gNode?: SVGGElement, bufferGNode?: SVGGElement);
161
+ constructor(svgNode: SVGElement, offset: XYCoords, scale: XYCoords, canvasSize: XYDimension, fillShapes: boolean, drawConfig: DrawConfig, isSecondary?: boolean, gNode?: SVGGElement, bufferGNode?: SVGGElement, nodeDefs?: SVGDefsElement, bufferNodeDefs?: SVGDefsElement);
162
+ /**
163
+ * Adds a default style defintion based on the passed DrawConfig.
164
+ * Twaek the draw config to change default colors or line thicknesses.
165
+ *
166
+ * @param {DrawConfig} drawConfig
167
+ */
140
168
  private addStyleDefs;
169
+ /**
170
+ * Adds the internal <defs> node.
171
+ */
172
+ private addDefsNode;
141
173
  /**
142
174
  * This is a simple way to include custom CSS class mappings to the style defs of the generated SVG.
143
175
  *
@@ -310,11 +342,28 @@ export declare class drawutilssvg implements DrawLib<void | SVGElement> {
310
342
  * @param {Image} image - The image object to draw.
311
343
  * @param {Vertex} position - The position to draw the the upper left corner at.
312
344
  * @param {Vertex} size - The x/y-size to draw the image with.
345
+ * @param {number=0.0} alpha - (optional, default=0.0) The transparency (1.0=opaque, 0.0=transparent).
313
346
  * @return {void}
314
347
  * @instance
315
348
  * @memberof drawutilssvg
316
349
  **/
317
- image(image: HTMLImageElement, position: Vertex, size: Vertex): SVGElement;
350
+ image(image: HTMLImageElement, position: Vertex, size: Vertex, alpha?: number): SVGElement;
351
+ /**
352
+ * Draw an image at the given position with the given size.<br>
353
+ * <br>
354
+ * Note: SVG images may have resizing issues at the moment.Draw a line and an arrow at the end (zB) of the given line with the specified (CSS-) color.
355
+ *
356
+ * @method texturedPoly
357
+ * @param {Image} textureImage - The image object to draw.
358
+ * @param {Bounds} textureSize - The texture size to use; these are the original bounds to map the polygon vertices to.
359
+ * @param {Polygon} polygon - The polygon to use as clip path.
360
+ * @param {Vertex} polygonPosition - The polygon's position (relative), measured at the bounding box's center.
361
+ * @param {number} rotation - The rotation to use for the polygon (and for the texture).
362
+ * @return {void}
363
+ * @instance
364
+ * @memberof drawutilssvg
365
+ **/
366
+ texturedPoly(textureImage: HTMLImageElement, textureSize: Bounds, polygon: Polygon, polygonPosition: Vertex, rotation: number): SVGElement;
318
367
  /**
319
368
  * Draw the given (cubic) bézier curve.
320
369
  *
@@ -550,11 +599,27 @@ export declare class drawutilssvg implements DrawLib<void | SVGElement> {
550
599
  * @param {XYCoords} center - The center of the crosshair.
551
600
  * @param {number} radius - The radius of the crosshair.
552
601
  * @param {string} color - The CSS color to draw the crosshair with.
602
+ * @param {number=0.5} lineWidth - (optional, default=0.5) The line width to use.
553
603
  * @return {void}
554
604
  * @instance
555
605
  * @memberof drawutilssvg
556
606
  */
557
- crosshair(center: XYCoords, radius: number, color: string): SVGElement;
607
+ crosshair(center: XYCoords, radius: number, color: string, lineWidth?: number): SVGElement;
608
+ /**
609
+ * Draw a cross with diagonal axes with given radius, color and lineWidth at the given position.<br>
610
+ * <br>
611
+ * Note that the x's radius will not be affected by scaling.
612
+ *
613
+ * @method crosshair
614
+ * @param {XYCoords} center - The center of the crosshair.
615
+ * @param {number} radius - The radius of the crosshair.
616
+ * @param {string} color - The CSS color to draw the crosshair with.
617
+ * @param {number=1} lineWidth - (optional, default=1.0) The line width to use.
618
+ * @return {void}
619
+ * @instance
620
+ * @memberof drawutils
621
+ */
622
+ cross(center: XYCoords, radius: number, color: string, lineWidth?: number): SVGElement;
558
623
  /**
559
624
  * Draw a polygon.
560
625
  *
@@ -29,11 +29,17 @@
29
29
  * @modified 2021-11-15 Adding more parameters tot the `text()` function: fontSize, textAlign, fontFamily, lineHeight.
30
30
  * @modified 2021-11-19 Fixing the `label(text,x,y)` position.
31
31
  * @modified 2021-11-19 Added the `color` param to the `label(...)` function.
32
- * @version 1.4.0
32
+ * @modified 2022-02-03 Added the `lineWidth` param to the `crosshair` function.
33
+ * @modified 2022-02-03 Added the `cross(...)` function.
34
+ * @modified 2022-03-26 Added the private `nodeDefs` and `bufferedNodeDefs` attributes.
35
+ * @modified 2022-03-26 Added the `texturedPoly` function to draw textures polygons.
36
+ * @modified 2022-07-26 Adding `alpha` to the `image(...)` function.
37
+ * @version 1.6.1
33
38
  **/
34
39
  import { CircleSector } from "./CircleSector";
35
40
  import { CubicBezierCurve } from "./CubicBezierCurve";
36
41
  import { Vertex } from "./Vertex";
42
+ import { UIDGenerator } from "./UIDGenerator";
37
43
  const RAD_TO_DEG = 180 / Math.PI;
38
44
  /**
39
45
  * @classdesc A helper class for basic SVG drawing operations. This class should
@@ -59,7 +65,7 @@ export class drawutilssvg {
59
65
  * @param {boolean=} isSecondary - (optional) Indicates if this is the primary or secondary instance. Only primary instances manage child nodes.
60
66
  * @param {SVGGElement=} gNode - (optional) Primary and seconday instances share the same &lt;g> node.
61
67
  **/
62
- constructor(svgNode, offset, scale, canvasSize, fillShapes, drawConfig, isSecondary, gNode, bufferGNode) {
68
+ constructor(svgNode, offset, scale, canvasSize, fillShapes, drawConfig, isSecondary, gNode, bufferGNode, nodeDefs, bufferNodeDefs) {
63
69
  this.svgNode = svgNode;
64
70
  this.offset = new Vertex(0, 0).set(offset);
65
71
  this.scale = new Vertex(1, 1).set(scale);
@@ -71,14 +77,23 @@ export class drawutilssvg {
71
77
  if (isSecondary) {
72
78
  this.gNode = gNode;
73
79
  this.bufferGNode = bufferGNode;
80
+ this.nodeDefs = nodeDefs;
81
+ this.bufferedNodeDefs = bufferNodeDefs;
74
82
  }
75
83
  else {
76
84
  this.addStyleDefs(drawConfig);
85
+ this.addDefsNode();
77
86
  this.gNode = this.createSVGNode("g");
78
87
  this.bufferGNode = this.createSVGNode("g");
79
88
  this.svgNode.appendChild(this.gNode);
80
89
  }
81
90
  }
91
+ /**
92
+ * Adds a default style defintion based on the passed DrawConfig.
93
+ * Twaek the draw config to change default colors or line thicknesses.
94
+ *
95
+ * @param {DrawConfig} drawConfig
96
+ */
82
97
  addStyleDefs(drawConfig) {
83
98
  this.nodeStyle = this.createSVGNode("style");
84
99
  this.svgNode.appendChild(this.nodeStyle);
@@ -111,6 +126,15 @@ export class drawutilssvg {
111
126
  }
112
127
  this.nodeStyle.innerHTML = rules.join("\n");
113
128
  }
129
+ /**
130
+ * Adds the internal <defs> node.
131
+ */
132
+ addDefsNode() {
133
+ this.nodeDefs = this.createSVGNode("defs");
134
+ // this.svgNode.appendChild(this.nodeDefs);
135
+ this.bufferedNodeDefs = this.createSVGNode("defs");
136
+ this.svgNode.appendChild(this.nodeDefs);
137
+ }
114
138
  /**
115
139
  * This is a simple way to include custom CSS class mappings to the style defs of the generated SVG.
116
140
  *
@@ -248,7 +272,7 @@ export class drawutilssvg {
248
272
  copyInstance(fillShapes) {
249
273
  var copy = new drawutilssvg(this.svgNode, this.offset, this.scale, this.canvasSize, fillShapes, null, // no DrawConfig
250
274
  true, // isSecondary
251
- this.gNode, this.bufferGNode);
275
+ this.gNode, this.bufferGNode, this.nodeDefs, this.bufferedNodeDefs);
252
276
  return copy;
253
277
  }
254
278
  /**
@@ -325,11 +349,15 @@ export class drawutilssvg {
325
349
  // layout updates.
326
350
  // Replace the old <g>-node with the buffer node.
327
351
  // https://stackoverflow.com/questions/27442464/how-to-update-a-svg-image-without-seeing-a-blinking
352
+ this.svgNode.replaceChild(this.bufferedNodeDefs, this.nodeDefs);
328
353
  this.svgNode.replaceChild(this.bufferGNode, this.gNode);
329
354
  }
330
- let tmp = this.gNode;
355
+ const tmpGNode = this.gNode;
331
356
  this.gNode = this.bufferGNode;
332
- this.bufferGNode = tmp;
357
+ this.bufferGNode = tmpGNode;
358
+ const tmpDefsNode = this.nodeDefs;
359
+ this.nodeDefs = this.bufferedNodeDefs;
360
+ this.bufferedNodeDefs = tmpDefsNode;
333
361
  }
334
362
  _x(x) {
335
363
  return this.offset.x + this.scale.x * x;
@@ -392,11 +420,12 @@ export class drawutilssvg {
392
420
  * @param {Image} image - The image object to draw.
393
421
  * @param {Vertex} position - The position to draw the the upper left corner at.
394
422
  * @param {Vertex} size - The x/y-size to draw the image with.
423
+ * @param {number=0.0} alpha - (optional, default=0.0) The transparency (1.0=opaque, 0.0=transparent).
395
424
  * @return {void}
396
425
  * @instance
397
426
  * @memberof drawutilssvg
398
427
  **/
399
- image(image, position, size) {
428
+ image(image, position, size, alpha = 1.0) {
400
429
  const node = this.makeNode("image");
401
430
  // We need to re-adjust the image if it was not yet fully loaded before.
402
431
  const setImageSize = (image) => {
@@ -406,6 +435,9 @@ export class drawutilssvg {
406
435
  node.setAttribute("width", `${image.naturalWidth * this.scale.x}`);
407
436
  node.setAttribute("height", `${image.naturalHeight * this.scale.y}`);
408
437
  node.setAttribute("display", null); // Dislay when loaded
438
+ // if (alpha) {
439
+ node.setAttribute("opacity", `${alpha}`);
440
+ // }
409
441
  node.setAttribute("transform", `translate(${this._x(position.x)} ${this._y(position.y)}) scale(${ratioX} ${ratioY})`);
410
442
  }
411
443
  };
@@ -421,6 +453,75 @@ export class drawutilssvg {
421
453
  node.setAttribute("href", image.src);
422
454
  return this._bindFillDraw(node, "image", null, null);
423
455
  }
456
+ /**
457
+ * Draw an image at the given position with the given size.<br>
458
+ * <br>
459
+ * Note: SVG images may have resizing issues at the moment.Draw a line and an arrow at the end (zB) of the given line with the specified (CSS-) color.
460
+ *
461
+ * @method texturedPoly
462
+ * @param {Image} textureImage - The image object to draw.
463
+ * @param {Bounds} textureSize - The texture size to use; these are the original bounds to map the polygon vertices to.
464
+ * @param {Polygon} polygon - The polygon to use as clip path.
465
+ * @param {Vertex} polygonPosition - The polygon's position (relative), measured at the bounding box's center.
466
+ * @param {number} rotation - The rotation to use for the polygon (and for the texture).
467
+ * @return {void}
468
+ * @instance
469
+ * @memberof drawutilssvg
470
+ **/
471
+ texturedPoly(textureImage, textureSize, polygon, polygonPosition, rotation) {
472
+ const basePolygonBounds = polygon.getBounds();
473
+ const rotatedScalingOrigin = new Vertex(textureSize.min).clone().rotate(rotation, polygonPosition);
474
+ const rotationCenter = polygonPosition.clone().add(rotatedScalingOrigin.difference(textureSize.min).inv());
475
+ // Create something like this
476
+ // ...
477
+ // <defs>
478
+ // <clipPath id="shape">
479
+ // <path fill="none" d="..."/>
480
+ // </clipPath>
481
+ // </defs>
482
+ // ...
483
+ // <g clip-path="url(#shape)">
484
+ // <g transform="scale(...)">
485
+ // <image width="643" height="643" transform="rotate(...)" xlink:href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/222579/beagle400.jpg" >
486
+ // </g>
487
+ // </g>
488
+ // </image>
489
+ // ...
490
+ const clipPathNode = this.makeNode("clipPath");
491
+ const clipPathId = `clippath_${UIDGenerator.next()}`; // TODO: use a better UUID generator here?
492
+ clipPathNode.setAttribute("id", clipPathId);
493
+ const gNode = this.makeNode("g");
494
+ const imageNode = this.makeNode("image");
495
+ imageNode.setAttribute("x", `${this._x(rotatedScalingOrigin.x)}`);
496
+ imageNode.setAttribute("y", `${this._y(rotatedScalingOrigin.y)}`);
497
+ imageNode.setAttribute("width", `${textureSize.width}`);
498
+ imageNode.setAttribute("height", `${textureSize.height}`);
499
+ imageNode.setAttribute("href", textureImage.src);
500
+ // imageNode.setAttribute("opacity", "0.5");
501
+ // SVG rotations in degrees
502
+ imageNode.setAttribute("transform", `rotate(${rotation * RAD_TO_DEG}, ${this._x(rotatedScalingOrigin.x)}, ${this._y(rotatedScalingOrigin.y)})`);
503
+ const pathNode = this.makeNode("path");
504
+ const pathData = [];
505
+ if (polygon.vertices.length > 0) {
506
+ const self = this;
507
+ pathData.push("M", `${this._x(polygon.vertices[0].x)}`, `${this._y(polygon.vertices[0].y)}`);
508
+ for (var i = 1; i < polygon.vertices.length; i++) {
509
+ pathData.push("L", `${this._x(polygon.vertices[i].x)}`, `${this._y(polygon.vertices[i].y)}`);
510
+ }
511
+ }
512
+ pathNode.setAttribute("d", pathData.join(" "));
513
+ clipPathNode.appendChild(pathNode);
514
+ this.bufferedNodeDefs.appendChild(clipPathNode);
515
+ gNode.appendChild(imageNode);
516
+ gNode.setAttribute("transform-origin", `${this._x(rotatedScalingOrigin.x)} ${this._y(rotatedScalingOrigin.y)}`);
517
+ gNode.setAttribute("transform", `scale(${this.scale.x}, ${this.scale.y})`);
518
+ const clipNode = this.makeNode("g");
519
+ clipNode.appendChild(gNode);
520
+ clipNode.setAttribute("clip-path", `url(#${clipPathId})`);
521
+ // TODO: check if the image class is correct here or if we should use a 'clippedImage' class here
522
+ this._bindFillDraw(clipNode, "image", null, null); // No color, no lineWidth
523
+ return clipNode;
524
+ }
424
525
  /**
425
526
  * Draw the given (cubic) bézier curve.
426
527
  *
@@ -813,11 +914,12 @@ export class drawutilssvg {
813
914
  * @param {XYCoords} center - The center of the crosshair.
814
915
  * @param {number} radius - The radius of the crosshair.
815
916
  * @param {string} color - The CSS color to draw the crosshair with.
917
+ * @param {number=0.5} lineWidth - (optional, default=0.5) The line width to use.
816
918
  * @return {void}
817
919
  * @instance
818
920
  * @memberof drawutilssvg
819
921
  */
820
- crosshair(center, radius, color) {
922
+ crosshair(center, radius, color, lineWidth) {
821
923
  const node = this.makeNode("path");
822
924
  const d = [
823
925
  "M",
@@ -834,7 +936,40 @@ export class drawutilssvg {
834
936
  this._y(center.y) + radius
835
937
  ];
836
938
  node.setAttribute("d", d.join(" "));
837
- return this._bindFillDraw(node, "crosshair", color, 0.5);
939
+ return this._bindFillDraw(node, "crosshair", color, lineWidth || 0.5);
940
+ }
941
+ /**
942
+ * Draw a cross with diagonal axes with given radius, color and lineWidth at the given position.<br>
943
+ * <br>
944
+ * Note that the x's radius will not be affected by scaling.
945
+ *
946
+ * @method crosshair
947
+ * @param {XYCoords} center - The center of the crosshair.
948
+ * @param {number} radius - The radius of the crosshair.
949
+ * @param {string} color - The CSS color to draw the crosshair with.
950
+ * @param {number=1} lineWidth - (optional, default=1.0) The line width to use.
951
+ * @return {void}
952
+ * @instance
953
+ * @memberof drawutils
954
+ */
955
+ cross(center, radius, color, lineWidth) {
956
+ const node = this.makeNode("path");
957
+ const d = [
958
+ "M",
959
+ this._x(center.x) - radius,
960
+ this._y(center.y) - radius,
961
+ "L",
962
+ this._x(center.x) + radius,
963
+ this._y(center.y) + radius,
964
+ "M",
965
+ this._x(center.x) - radius,
966
+ this._y(center.y) + radius,
967
+ "L",
968
+ this._x(center.x) + radius,
969
+ this._y(center.y) - radius
970
+ ];
971
+ node.setAttribute("d", d.join(" "));
972
+ return this._bindFillDraw(node, "cross", color, lineWidth || 1.0);
838
973
  }
839
974
  /**
840
975
  * Draw a polygon.
@@ -997,14 +1132,6 @@ export class drawutilssvg {
997
1132
  if (this.isSecondary) {
998
1133
  return;
999
1134
  }
1000
- // // Clearing an SVG is equivalent to removing all its child elements.
1001
- // for (var i = 0; i < this.gNode.childNodes.length; i++) {
1002
- // // Hide all nodes here. Don't throw them away.
1003
- // // We can probably re-use them in the next draw cycle.
1004
- // var child: SVGElement = this.gNode.childNodes[i] as SVGElement;
1005
- // this.cache.set(child.getAttribute("id"), child);
1006
- // }
1007
- // this.removeAllChildNodes();
1008
1135
  // Add a covering rect with the given background color
1009
1136
  this.curId = "background";
1010
1137
  this.curClassName = undefined;
@@ -1030,6 +1157,9 @@ export class drawutilssvg {
1030
1157
  while (this.bufferGNode.lastChild) {
1031
1158
  this.bufferGNode.removeChild(this.bufferGNode.lastChild);
1032
1159
  }
1160
+ while (this.bufferedNodeDefs.lastChild) {
1161
+ this.bufferedNodeDefs.removeChild(this.bufferedNodeDefs.lastChild);
1162
+ }
1033
1163
  }
1034
1164
  /**
1035
1165
  * Create a new and empty `SVGElement` &lt;svg&gt; in the svg-namespace.