plotboilerplate 1.12.7 → 1.13.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 (83) hide show
  1. package/README.md +4 -1
  2. package/changelog.md +25 -0
  3. package/dist/index.esm.js +259 -44
  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 +273 -43
  10. package/dist/plotboilerplate.min.js +1 -1
  11. package/package.json +1 -1
  12. package/src/cjs/PBText.d.ts +116 -0
  13. package/src/cjs/PBText.js +66 -0
  14. package/src/cjs/PBText.js.map +1 -0
  15. package/src/cjs/PlotBoilerplate.d.ts +2 -1
  16. package/src/cjs/PlotBoilerplate.js +66 -19
  17. package/src/cjs/PlotBoilerplate.js.map +1 -1
  18. package/src/cjs/draw.d.ts +30 -2
  19. package/src/cjs/draw.js +51 -6
  20. package/src/cjs/draw.js.map +1 -1
  21. package/src/cjs/drawgl.d.ts +29 -2
  22. package/src/cjs/drawgl.js +21 -4
  23. package/src/cjs/drawgl.js.map +1 -1
  24. package/src/cjs/drawutilssvg.d.ts +25 -7
  25. package/src/cjs/drawutilssvg.js +62 -14
  26. package/src/cjs/drawutilssvg.js.map +1 -1
  27. package/src/cjs/entry.js +1 -0
  28. package/src/cjs/index.d.ts +1 -0
  29. package/src/cjs/index.js +1 -0
  30. package/src/cjs/index.js.map +1 -1
  31. package/src/cjs/interfaces/DrawLib.d.ts +27 -6
  32. package/src/cjs/interfaces/DrawLib.js +3 -0
  33. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  34. package/src/cjs/interfaces/core.d.ts +12 -1
  35. package/src/cjs/interfaces/core.js +1 -0
  36. package/src/cjs/interfaces/core.js.map +1 -1
  37. package/src/cjs/utils/datastructures/Color.d.ts +28 -15
  38. package/src/cjs/utils/datastructures/Color.js +276 -88
  39. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  40. package/src/esm/PBText.d.ts +116 -0
  41. package/src/esm/PBText.js +61 -0
  42. package/src/esm/PBText.js.map +1 -0
  43. package/src/esm/PlotBoilerplate.d.ts +2 -1
  44. package/src/esm/PlotBoilerplate.js +66 -19
  45. package/src/esm/PlotBoilerplate.js.map +1 -1
  46. package/src/esm/draw.d.ts +30 -2
  47. package/src/esm/draw.js +51 -6
  48. package/src/esm/draw.js.map +1 -1
  49. package/src/esm/drawgl.d.ts +29 -2
  50. package/src/esm/drawgl.js +21 -4
  51. package/src/esm/drawgl.js.map +1 -1
  52. package/src/esm/drawutilssvg.d.ts +25 -7
  53. package/src/esm/drawutilssvg.js +62 -14
  54. package/src/esm/drawutilssvg.js.map +1 -1
  55. package/src/esm/entry.js +1 -0
  56. package/src/esm/index.d.ts +1 -0
  57. package/src/esm/index.js +1 -0
  58. package/src/esm/index.js.map +1 -1
  59. package/src/esm/interfaces/DrawLib.d.ts +27 -6
  60. package/src/esm/interfaces/DrawLib.js +3 -0
  61. package/src/esm/interfaces/DrawLib.js.map +1 -1
  62. package/src/esm/interfaces/core.d.ts +12 -1
  63. package/src/esm/interfaces/core.js +1 -0
  64. package/src/esm/interfaces/core.js.map +1 -1
  65. package/src/esm/utils/datastructures/Color.d.ts +28 -15
  66. package/src/esm/utils/datastructures/Color.js +277 -89
  67. package/src/esm/utils/datastructures/Color.js.map +1 -1
  68. package/src/ts/PBText.ts +147 -0
  69. package/src/ts/PlotBoilerplate.ts +74 -23
  70. package/src/ts/draw.ts +71 -8
  71. package/src/ts/drawgl.ts +48 -8
  72. package/src/ts/drawutilssvg.ts +94 -17
  73. package/src/ts/index.ts +1 -0
  74. package/src/ts/interfaces/DrawLib.ts +30 -4
  75. package/src/ts/interfaces/core.ts +12 -0
  76. package/src/ts/utils/datastructures/Color.ts +695 -508
  77. package/src/ts/utils/algorithms/clearPolygonDuplicateVertices.ts~ +0 -5
  78. package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts~ +0 -45
  79. package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts~ +0 -113
  80. package/src/ts/utils/algorithms/sutherlandHodgman.ts~ +0 -88
  81. package/src/ts/utils/datastructures/Color.ts~ +0 -331
  82. package/src/ts/utils/datastructures/Girih.ts~ +0 -151
  83. package/src/ts/utils/datastructures/GirihTile.ts~ +0 -419
@@ -1 +1 @@
1
- {"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/Color.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/Color.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * @author Ikaros Kappler
3
+ * @date 2021-11-16
4
+ * @version 1.0.0
5
+ **/
6
+
7
+ import { UIDGenerator } from "./UIDGenerator";
8
+ import { Vertex } from "./Vertex";
9
+ import { FontOptions, FontStyle, FontWeight, SVGSerializable, UID } from "./interfaces";
10
+
11
+ /**
12
+ * @classdesc A simple text element: position, fontSize, fontFamily, color, textAlign, lineHeight and rotation.
13
+ *
14
+ * @requires FontOptions
15
+ * @requires FontSize
16
+ * @requires FontStyle
17
+ * @requires FontWeight
18
+ * @requires Vertex
19
+ * @requires SVGSerializale
20
+ * @requires UID
21
+ * @requires UIDGenerator
22
+ **/
23
+ export class PBText implements SVGSerializable, FontOptions {
24
+ /**
25
+ * Required to generate proper CSS classes and other class related IDs.
26
+ **/
27
+ readonly className: string = "PBText";
28
+
29
+ /**
30
+ * The UID of this drawable object.
31
+ *
32
+ * @member {UID}
33
+ * @memberof PBText
34
+ * @instance
35
+ * @readonly
36
+ */
37
+ readonly uid: UID;
38
+
39
+ /**
40
+ * @member {string}
41
+ * @memberof PBText
42
+ * @instance
43
+ */
44
+ text: string;
45
+
46
+ /**
47
+ * @member {Vertex}
48
+ * @memberof PBText
49
+ * @instance
50
+ */
51
+ anchor: Vertex;
52
+
53
+ /**
54
+ * @member {number}
55
+ * @memberof PBText
56
+ * @instance
57
+ */
58
+ fontSize: number | undefined;
59
+
60
+ /**
61
+ * @member {number}
62
+ * @memberof PBText
63
+ * @instance
64
+ */
65
+ lineHeight: number | undefined;
66
+
67
+ /**
68
+ * @member {FontWeight}
69
+ * @memberof PBText
70
+ * @instance
71
+ */
72
+ fontWeight: FontWeight | undefined;
73
+
74
+ /**
75
+ * @member {FontStyle}
76
+ * @memberof PBText
77
+ * @instance
78
+ */
79
+ fontStyle: FontStyle | undefined;
80
+
81
+ /**
82
+ * @member {CanvasRenderingContext2D["textAlign"]}
83
+ * @memberof PBText
84
+ * @instance
85
+ */
86
+ textAlign: CanvasRenderingContext2D["textAlign"] | undefined;
87
+
88
+ /**
89
+ * @member {number}
90
+ * @memberof PBText
91
+ * @instance
92
+ */
93
+ rotation: number | undefined;
94
+
95
+ /**
96
+ * @member {number}
97
+ * @memberof PBText
98
+ * @instance
99
+ */
100
+ fontFamily: string | undefined;
101
+
102
+ /**
103
+ * @member {number}
104
+ * @memberof PBText
105
+ * @instance
106
+ */
107
+ color: string | undefined;
108
+
109
+ /**
110
+ * Create a new circle with given center point and radius.
111
+ *
112
+ * @constructor
113
+ * @name Circle
114
+ * @param {Vertex} center - The center point of the circle.
115
+ * @param {number} radius - The radius of the circle.
116
+ */
117
+ constructor(text: string, anchor?: Vertex, options?: FontOptions) {
118
+ this.uid = UIDGenerator.next();
119
+ this.text = text;
120
+ this.anchor = anchor ?? new Vertex();
121
+ this.color = options.color;
122
+ this.fontFamily = options.fontFamily;
123
+ this.fontSize = options.fontSize;
124
+ this.fontStyle = options.fontStyle;
125
+ this.fontWeight = options.fontWeight;
126
+ this.lineHeight = options.lineHeight;
127
+ this.textAlign = options.textAlign;
128
+ this.rotation = options.rotation;
129
+ }
130
+
131
+ /**
132
+ * Create an SVG representation of this circle.
133
+ *
134
+ * @deprecated DEPRECATION Please use the drawutilssvg library and an XMLSerializer instead.
135
+ * @method toSVGString
136
+ * @param {object=} options - An optional set of options, like 'className'.
137
+ * @return {string} A string representing the SVG code for this vertex.
138
+ * @instance
139
+ * @memberof Circle
140
+ */
141
+ toSVGString(options: { className?: string }) {
142
+ console.warn(
143
+ "[PBText.toSVGString()] This function is not implemented as it defines a deprecated method. Use the 'drawutilssvg.text()' method instead."
144
+ );
145
+ return "";
146
+ }
147
+ } // END class
@@ -73,7 +73,8 @@
73
73
  * @modified 2021-03-03 Added the `VEllipseSector` drawable.
74
74
  * @modified 2021-03-29 Clearing `currentClassName` and `currentId` after drawing each drawable.
75
75
  * @modified 2021-04-25 Extending `remove` to accept arrays of drawables.
76
- * @version 1.14.0
76
+ * @modified 2021-11-16 Adding the `PBText` drawable.
77
+ * @version 1.15.0
77
78
  *
78
79
  * @file PlotBoilerplate
79
80
  * @fileoverview The main class.
@@ -118,6 +119,7 @@ import {
118
119
  XYDimension,
119
120
  DatGuiProps
120
121
  } from "./interfaces";
122
+ import { PBText } from "./PBText";
121
123
 
122
124
  /**
123
125
  * @classdesc The main class of the PlotBoilerplate.
@@ -466,6 +468,16 @@ export class PlotBoilerplate {
466
468
  handleLine: {
467
469
  color: "rgba(180,180,180,0.5)",
468
470
  lineWidth: 1
471
+ },
472
+ pathVertex: {
473
+ color: "#B400FF",
474
+ lineWidth: 1,
475
+ fill: true
476
+ },
477
+ controlVertex: {
478
+ color: "#B8D438",
479
+ lineWidth: 1,
480
+ fill: true
469
481
  }
470
482
  },
471
483
  polygon: {
@@ -511,6 +523,12 @@ export class PlotBoilerplate {
511
523
  image: {
512
524
  color: "#a8a8a8",
513
525
  lineWidth: 1
526
+ },
527
+ text: {
528
+ color: "rgba(192,0,128,0.5)",
529
+ lineWidth: 1,
530
+ fill: true,
531
+ anchor: true
514
532
  }
515
533
  }; // END drawConfig
516
534
 
@@ -824,6 +842,10 @@ export class PlotBoilerplate {
824
842
  drawable.lowerRight.add(e.params.dragAmount);
825
843
  });
826
844
  drawable.lowerRight.attr.selectable = false;
845
+ } else if (drawable instanceof PBText) {
846
+ this.vertices.push(drawable.anchor);
847
+ this.drawables.push(drawable);
848
+ drawable.anchor.attr.selectable = false;
827
849
  } else {
828
850
  throw "Cannot add drawable of unrecognized type: " + typeof drawable + ".";
829
851
  }
@@ -913,6 +935,8 @@ export class PlotBoilerplate {
913
935
  } else if (drawable instanceof PBImage) {
914
936
  this.removeVertex(drawable.upperLeft, false);
915
937
  this.removeVertex(drawable.lowerRight, false);
938
+ } else if (drawable instanceof PBText) {
939
+ this.removeVertex(drawable.anchor, false);
916
940
  }
917
941
  } // END removeWithVertices
918
942
 
@@ -1120,48 +1144,66 @@ export class PlotBoilerplate {
1120
1144
  );
1121
1145
 
1122
1146
  if (this.drawConfig.drawBezierHandlePoints && this.drawConfig.drawHandlePoints) {
1123
- if (!d.bezierCurves[c].startPoint.attr.bezierAutoAdjust) {
1124
- if (d.bezierCurves[c].startPoint.attr.visible) {
1125
- draw.setCurrentId(`${d.uid}_h0`);
1126
- draw.setCurrentClassName(`${d.className}-start-handle`);
1127
- draw.diamondHandle(
1147
+ if (d.bezierCurves[c].startPoint.attr.visible) {
1148
+ const df = this.drawConfig.bezier.pathVertex.fill ? fill : draw;
1149
+ df.setCurrentId(`${d.uid}_h0`);
1150
+ df.setCurrentClassName(`${d.className}-start-handle`);
1151
+ if (d.bezierCurves[c].startPoint.attr.bezierAutoAdjust) {
1152
+ df.squareHandle(
1153
+ d.bezierCurves[c].startPoint,
1154
+ 5,
1155
+ this._handleColor(d.bezierCurves[c].startPoint, this.drawConfig.bezier.pathVertex.color)
1156
+ );
1157
+ } else {
1158
+ df.diamondHandle(
1128
1159
  d.bezierCurves[c].startPoint,
1129
1160
  7,
1130
- this._handleColor(d.bezierCurves[c].startPoint, this.drawConfig.vertex.color)
1161
+ this._handleColor(d.bezierCurves[c].startPoint, this.drawConfig.bezier.pathVertex.color)
1131
1162
  );
1132
1163
  }
1133
- d.bezierCurves[c].startPoint.attr.renderTime = renderTime;
1134
1164
  }
1135
- if (!d.bezierCurves[c].endPoint.attr.bezierAutoAdjust) {
1136
- if (d.bezierCurves[c].endPoint.attr.visible) {
1137
- draw.setCurrentId(`${d.uid}_h1`);
1138
- draw.setCurrentClassName(`${d.className}-end-handle`);
1139
- draw.diamondHandle(
1165
+ d.bezierCurves[c].startPoint.attr.renderTime = renderTime;
1166
+
1167
+ if (d.bezierCurves[c].endPoint.attr.visible) {
1168
+ const df = this.drawConfig.bezier.pathVertex.fill ? fill : draw;
1169
+ df.setCurrentId(`${d.uid}_h0`);
1170
+ df.setCurrentClassName(`${d.className}-start-handle`);
1171
+ if (d.bezierCurves[c].endPoint.attr.bezierAutoAdjust) {
1172
+ df.squareHandle(
1173
+ d.bezierCurves[c].endPoint,
1174
+ 5,
1175
+ this._handleColor(d.bezierCurves[c].endPoint, this.drawConfig.bezier.pathVertex.color)
1176
+ );
1177
+ } else {
1178
+ df.diamondHandle(
1140
1179
  d.bezierCurves[c].endPoint,
1141
1180
  7,
1142
- this._handleColor(d.bezierCurves[c].endPoint, this.drawConfig.vertex.color)
1181
+ this._handleColor(d.bezierCurves[c].endPoint, this.drawConfig.bezier.pathVertex.color)
1143
1182
  );
1144
1183
  }
1145
- d.bezierCurves[c].endPoint.attr.renderTime = renderTime;
1146
1184
  }
1147
1185
  if (d.bezierCurves[c].startControlPoint.attr.visible) {
1148
- draw.setCurrentId(`${d.uid}_h2`);
1149
- draw.setCurrentClassName(`${d.className}-start-control-handle`);
1150
- draw.circleHandle(
1186
+ const df = this.drawConfig.bezier.controlVertex.fill ? fill : draw;
1187
+ df.setCurrentId(`${d.uid}_h2`);
1188
+ df.setCurrentClassName(`${d.className}-start-control-handle`);
1189
+ df.circleHandle(
1151
1190
  d.bezierCurves[c].startControlPoint,
1152
1191
  3,
1153
- this._handleColor(d.bezierCurves[c].startControlPoint, "#008888")
1192
+ this._handleColor(d.bezierCurves[c].startControlPoint, this.drawConfig.bezier.controlVertex.color)
1154
1193
  );
1155
1194
  }
1156
1195
  if (d.bezierCurves[c].endControlPoint.attr.visible) {
1157
- draw.setCurrentId(`${d.uid}_h3`);
1158
- draw.setCurrentClassName(`${d.className}-end-control-handle`);
1159
- draw.circleHandle(
1196
+ const df = this.drawConfig.bezier.controlVertex.fill ? fill : draw;
1197
+ df.setCurrentId(`${d.uid}_h3`);
1198
+ df.setCurrentClassName(`${d.className}-end-control-handle`);
1199
+ df.circleHandle(
1160
1200
  d.bezierCurves[c].endControlPoint,
1161
1201
  3,
1162
- this._handleColor(d.bezierCurves[c].endControlPoint, "#008888")
1202
+ this._handleColor(d.bezierCurves[c].endControlPoint, this.drawConfig.bezier.controlVertex.color)
1163
1203
  );
1164
1204
  }
1205
+ d.bezierCurves[c].startPoint.attr.renderTime = renderTime;
1206
+ d.bezierCurves[c].endPoint.attr.renderTime = renderTime;
1165
1207
  d.bezierCurves[c].startControlPoint.attr.renderTime = renderTime;
1166
1208
  d.bezierCurves[c].endControlPoint.attr.renderTime = renderTime;
1167
1209
  } else {
@@ -1292,6 +1334,15 @@ export class PlotBoilerplate {
1292
1334
  draw.circleHandle(d.lowerRight, 3, this.drawConfig.image.color);
1293
1335
  d.lowerRight.attr.renderTime = renderTime;
1294
1336
  }
1337
+ } else if (d instanceof PBText) {
1338
+ fill.setCurrentId(d.uid);
1339
+ fill.text(d.text, d.anchor.x, d.anchor.y, d);
1340
+ if (this.drawConfig.text.anchor) {
1341
+ draw.setCurrentId(`${d.uid}_a0`);
1342
+ draw.setCurrentClassName(`${d.className}-anchor`);
1343
+ (this.drawConfig.text.fill ? fill : draw).point(d.anchor, this.drawConfig.text.color);
1344
+ }
1345
+ d.anchor.attr.renderTime = renderTime;
1295
1346
  } else {
1296
1347
  console.error("Cannot draw object. Unknown class.");
1297
1348
  }
package/src/ts/draw.ts CHANGED
@@ -37,13 +37,15 @@
37
37
  * @modified 2021-02-22 Added the `path` drawing function to draw SVG path data.
38
38
  * @modified 2021-03-31 Added the `endDrawCycle` function from `DrawLib`.
39
39
  * @modified 2021-05-31 Added the `setConfiguration` function from `DrawLib`.
40
- * @version 1.9.0
40
+ * @modified 2021-11-12 Adding more parameters tot the `text()` function: fontSize, textAlign, fontFamily, lineHeight.
41
+ * @modified 2021-11-19 Added the `color` param to the `label(...)` function.
42
+ * @version 1.10.0
41
43
  **/
42
44
 
43
45
  import { CubicBezierCurve } from "./CubicBezierCurve";
44
46
  import { Polygon } from "./Polygon";
45
47
  import { Vertex } from "./Vertex";
46
- import { DrawLib, SVGPathParams, XYCoords, UID, DrawLibConfiguration } from "./interfaces";
48
+ import { DrawLib, SVGPathParams, XYCoords, UID, DrawLibConfiguration, FontStyle, FontWeight } from "./interfaces";
47
49
  import { drawutilssvg } from "./drawutilssvg";
48
50
 
49
51
  // Todo: rename this class to Drawutils?
@@ -845,19 +847,77 @@ export class drawutils implements DrawLib<void> {
845
847
  this.ctx.restore();
846
848
  }
847
849
 
848
- text(text: string, x: number, y: number, options?: { color?: string }) {
850
+ /**
851
+ * Draw a text at the given relative position.
852
+ *
853
+ * @method text
854
+ * @param {string} text - The text to draw.
855
+ * @param {number} x - The x-position to draw the text at.
856
+ * @param {number} y - The y-position to draw the text at.
857
+ * @param {string=} options.color - The Color to use.
858
+ * @param {string=} options.fontFamily - The font family to use.
859
+ * @param {number=} options.fontSize - The font size (in pixels) to use.
860
+ * @param {FontStyle=} options.fontStyle - The font style to use.
861
+ * @param {FontWeight=} options.fontWeight - The font weight to use.
862
+ * @param {number=} options.lineHeight - The line height (in pixels) to use.
863
+ * @param {number=} options.rotation - The (optional) rotation in radians.
864
+ * @param {string=} options.textAlign - The text align to use. According to the specifiactions (https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/textAlign) valid values are `"left" || "right" || "center" || "start" || "end"`.
865
+ * @return {void}
866
+ * @instance
867
+ * @memberof drawutils
868
+ */
869
+ text(
870
+ text: string,
871
+ x: number,
872
+ y: number,
873
+ options?: {
874
+ color?: string;
875
+ fontFamily?: string;
876
+ fontSize?: number;
877
+ fontStyle?: FontStyle;
878
+ fontWeight?: FontWeight;
879
+ lineHeight?: number;
880
+ textAlign?: CanvasRenderingContext2D["textAlign"];
881
+ rotation?: number;
882
+ }
883
+ ) {
884
+ // See https://stackoverflow.com/a/23523697
885
+
849
886
  options = options || {};
850
887
  this.ctx.save();
851
- x = this.offset.x + x * this.scale.x;
852
- y = this.offset.y + y * this.scale.y;
888
+ let relX = this.offset.x + x * this.scale.x;
889
+ let relY = this.offset.y + y * this.scale.y;
853
890
  const color: string = options.color || "black";
891
+ if (options.fontSize || options.fontFamily) {
892
+ // Scaling of text only works in uniform mode
893
+ this.ctx.font =
894
+ (options.fontWeight ? options.fontWeight + " " : "") +
895
+ (options.fontStyle ? options.fontStyle + " " : "") +
896
+ (options.fontSize ? options.fontSize * this.scale.x + "px " : " ") +
897
+ (options.fontFamily
898
+ ? options.fontFamily.indexOf(" ") === -1
899
+ ? options.fontFamily
900
+ : `"${options.fontFamily}"`
901
+ : "Arial");
902
+ }
903
+ if (options.textAlign) {
904
+ this.ctx.textAlign = options.textAlign;
905
+ }
906
+
907
+ const rotation = options.rotation ?? 0.0;
908
+ const lineHeight = (options.lineHeight ?? options.fontSize ?? 0) * this.scale.x;
909
+ this.ctx.translate(relX, relY);
910
+ this.ctx.rotate(rotation);
911
+
854
912
  if (this.fillShapes) {
855
913
  this.ctx.fillStyle = color;
856
- this.ctx.fillText(text, x, y);
914
+ this.ctx.fillText(text, 0, lineHeight / 2);
857
915
  } else {
858
916
  this.ctx.strokeStyle = color;
859
- this.ctx.strokeText(text, x, y);
917
+ this.ctx.strokeText(text, 0, lineHeight / 2);
860
918
  }
919
+ // this.ctx.translate(-relX, -relY);
920
+ // this.ctx.rotate(-rotation); // is this necessary before 'restore()'?
861
921
  this.ctx.restore();
862
922
  }
863
923
 
@@ -878,8 +938,11 @@ export class drawutils implements DrawLib<void> {
878
938
  */
879
939
  label(text: string, x: number, y: number, rotation?: number, color?: string) {
880
940
  this.ctx.save();
941
+
942
+ this.ctx.font = "lighter 9pt Arial";
943
+
881
944
  this.ctx.translate(x, y);
882
- if (typeof rotation != "undefined") this.ctx.rotate(rotation);
945
+ if (typeof rotation !== "undefined") this.ctx.rotate(rotation);
883
946
  this.ctx.fillStyle = color || "black";
884
947
  if (this.fillShapes) {
885
948
  this.ctx.fillText(text, 0, 0);
package/src/ts/drawgl.ts CHANGED
@@ -12,7 +12,16 @@
12
12
  import { CubicBezierCurve } from "./CubicBezierCurve";
13
13
  import { Polygon } from "./Polygon";
14
14
  import { Vertex } from "./Vertex";
15
- import { DrawLib, XYCoords, SVGPathParams, SVGSerializable, UID, DrawLibConfiguration } from "./interfaces";
15
+ import {
16
+ DrawLib,
17
+ XYCoords,
18
+ SVGPathParams,
19
+ SVGSerializable,
20
+ UID,
21
+ DrawLibConfiguration,
22
+ FontStyle,
23
+ FontWeight
24
+ } from "./interfaces";
16
25
 
17
26
  /**
18
27
  * @classdesc A wrapper class for basic drawing operations. This is the WebGL
@@ -471,9 +480,9 @@ export class drawutilsgl implements DrawLib<void> {
471
480
  * @param {string} color - The color to use.
472
481
  * @param {number=1} lineWidth - (optional) The line with to use (default is 1).
473
482
  **/
474
- rect(position: XYCoords, width: number, height: number, color: string, lineWidth?: number): void {
483
+ rect(position: XYCoords, width: number, height: number, color: string, lineWidth?: number): void {
475
484
  // NOT YET IMPLEMENTED
476
- }
485
+ }
477
486
 
478
487
  /**
479
488
  * Draw a grid of horizontal and vertical lines with the given (CSS-) color.
@@ -655,7 +664,40 @@ export class drawutilsgl implements DrawLib<void> {
655
664
  // NOT YET IMPLEMENTED
656
665
  }
657
666
 
658
- text(text: string, x: number, y: number, options?: { color?: string }) {
667
+ /**
668
+ * Draw a text at the given relative position.
669
+ *
670
+ * @method text
671
+ * @param {string} text - The text to draw.
672
+ * @param {number} x - The x-position to draw the text at.
673
+ * @param {number} y - The y-position to draw the text at.
674
+ * @param {string=} options.color - The Color to use.
675
+ * @param {string=} options.fontFamily - The font family to use.
676
+ * @param {number=} options.fontSize - The font size (in pixels) to use.
677
+ * @param {FontStyle=} options.fontStyle - The font style to use.
678
+ * @param {FontWeight=} options.fontWeight - The font weight to use.
679
+ * @param {number=} options.lineHeight - The line height (in pixels) to use.
680
+ * @param {number=} options.rotation - The (optional) rotation in radians.
681
+ * @param {string=} options.textAlign - The text align to use. According to the specifiactions (https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/textAlign) valid values are `"left" || "right" || "center" || "start" || "end"`.
682
+ * @return {void}
683
+ * @instance
684
+ * @memberof drawutils
685
+ */
686
+ text(
687
+ text: string,
688
+ x: number,
689
+ y: number,
690
+ options?: {
691
+ color?: string;
692
+ fontFamily?: string;
693
+ fontSize?: number;
694
+ fontStyle?: FontStyle;
695
+ fontWeight?: FontWeight;
696
+ lineHeight?: number;
697
+ textAlign?: CanvasRenderingContext2D["textAlign"];
698
+ rotation?: number;
699
+ }
700
+ ) {
659
701
  // NOT YET IMPLEMENTED
660
702
  }
661
703
 
@@ -667,14 +709,12 @@ export class drawutilsgl implements DrawLib<void> {
667
709
  * @param {number} x - The x-position to draw the text at.
668
710
  * @param {number} y - The y-position to draw the text at.
669
711
  * @param {number=} rotation - The (aoptional) rotation in radians.
712
+ * @param {string="black"} color - The color to use (default is black).
670
713
  * @return {void}
671
714
  * @instance
672
715
  * @memberof drawutils
673
716
  */
674
- // +---------------------------------------------------------------------------------
675
- // | Draw a non-scaling text label at the given position.
676
- // +-------------------------------
677
- label(text: string, x: number, y: number, rotation: number) {
717
+ label(text: string, x: number, y: number, rotation?: number, color?: string) {
678
718
  // NOT YET IMPLEMENTED
679
719
  }
680
720