ol 6.7.1-dev.1631950173563 → 6.7.1-dev.1631956204869
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.
- package/geom/flat/textpath.d.ts.map +1 -1
- package/geom/flat/textpath.js +10 -7
- package/geom/flat/textpath.js.map +1 -1
- package/package.json +1 -1
- package/src/geom/flat/textpath.js +9 -5
- package/util.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textpath.d.ts","sourceRoot":"","sources":["../../src/geom/flat/textpath.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AACH;;;;
|
|
1
|
+
{"version":3,"file":"textpath.d.ts","sourceRoot":"","sources":["../../src/geom/flat/textpath.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AACH;;;;8BAgIC"}
|
package/geom/flat/textpath.js
CHANGED
|
@@ -38,7 +38,7 @@ export function drawTextOnPath(flatCoordinates, offset, end, stride, text, start
|
|
|
38
38
|
do {
|
|
39
39
|
advance();
|
|
40
40
|
} while (offset < end - stride && segmentM + segmentLength < startM);
|
|
41
|
-
var interpolate = (startM - segmentM) / segmentLength;
|
|
41
|
+
var interpolate = segmentLength === 0 ? 0 : (startM - segmentM) / segmentLength;
|
|
42
42
|
var beginX = lerp(x1, x2, interpolate);
|
|
43
43
|
var beginY = lerp(y1, y2, interpolate);
|
|
44
44
|
var startOffset = offset - stride;
|
|
@@ -47,7 +47,7 @@ export function drawTextOnPath(flatCoordinates, offset, end, stride, text, start
|
|
|
47
47
|
while (offset < end - stride && segmentM + segmentLength < endM) {
|
|
48
48
|
advance();
|
|
49
49
|
}
|
|
50
|
-
interpolate = (endM - segmentM) / segmentLength;
|
|
50
|
+
interpolate = segmentLength === 0 ? 0 : (endM - segmentM) / segmentLength;
|
|
51
51
|
var endX = lerp(x1, x2, interpolate);
|
|
52
52
|
var endY = lerp(y1, y2, interpolate);
|
|
53
53
|
// Keep text upright
|
|
@@ -68,19 +68,19 @@ export function drawTextOnPath(flatCoordinates, offset, end, stride, text, start
|
|
|
68
68
|
segmentM = startLength;
|
|
69
69
|
x2 = flatCoordinates[offset];
|
|
70
70
|
y2 = flatCoordinates[offset + 1];
|
|
71
|
+
var previousAngle;
|
|
71
72
|
// All on the same segment
|
|
72
73
|
if (singleSegment) {
|
|
73
74
|
advance();
|
|
74
|
-
|
|
75
|
+
previousAngle = Math.atan2(y2 - y1, x2 - x1);
|
|
75
76
|
if (reverse) {
|
|
76
|
-
|
|
77
|
+
previousAngle += previousAngle > 0 ? -PI : PI;
|
|
77
78
|
}
|
|
78
79
|
var x = (endX + beginX) / 2;
|
|
79
80
|
var y = (endY + beginY) / 2;
|
|
80
|
-
result[0] = [x, y, (endM - startM) / 2,
|
|
81
|
+
result[0] = [x, y, (endM - startM) / 2, previousAngle, text];
|
|
81
82
|
return result;
|
|
82
83
|
}
|
|
83
|
-
var previousAngle;
|
|
84
84
|
for (var i = 0, ii = text.length; i < ii;) {
|
|
85
85
|
advance();
|
|
86
86
|
var angle = Math.atan2(y2 - y1, x2 - x1);
|
|
@@ -112,7 +112,10 @@ export function drawTextOnPath(flatCoordinates, offset, end, stride, text, start
|
|
|
112
112
|
var chars = reverse
|
|
113
113
|
? text.substring(ii - iStart, ii - i)
|
|
114
114
|
: text.substring(iStart, i);
|
|
115
|
-
interpolate =
|
|
115
|
+
interpolate =
|
|
116
|
+
segmentLength === 0
|
|
117
|
+
? 0
|
|
118
|
+
: (startM + charLength / 2 - segmentM) / segmentLength;
|
|
116
119
|
var x = lerp(x1, x2, interpolate);
|
|
117
120
|
var y = lerp(y1, y2, interpolate);
|
|
118
121
|
result.push([x, y, charLength / 2, angle, chars]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textpath.js","sourceRoot":"","sources":["../../src/geom/flat/textpath.js"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,cAAc,CAC5B,eAAe,EACf,MAAM,EACN,GAAG,EACH,MAAM,EACN,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,KAAK,EACL,wBAAwB,EACxB,IAAI,EACJ,KAAK,EACL,QAAQ;IAER,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,EAAE,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,SAAS,OAAO;QACd,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,EAAE,CAAC;QACR,MAAM,IAAI,MAAM,CAAC;QACjB,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,EAAE,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,QAAQ,IAAI,aAAa,CAAC;QAC1B,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,GAAG;QACD,OAAO,EAAE,CAAC;KACX,QAAQ,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,QAAQ,GAAG,aAAa,GAAG,MAAM,EAAE;IAErE,IAAI,WAAW,
|
|
1
|
+
{"version":3,"file":"textpath.js","sourceRoot":"","sources":["../../src/geom/flat/textpath.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -54,7 +54,8 @@ export function drawTextOnPath(
|
|
|
54
54
|
advance();
|
|
55
55
|
} while (offset < end - stride && segmentM + segmentLength < startM);
|
|
56
56
|
|
|
57
|
-
let interpolate =
|
|
57
|
+
let interpolate =
|
|
58
|
+
segmentLength === 0 ? 0 : (startM - segmentM) / segmentLength;
|
|
58
59
|
const beginX = lerp(x1, x2, interpolate);
|
|
59
60
|
const beginY = lerp(y1, y2, interpolate);
|
|
60
61
|
|
|
@@ -64,7 +65,7 @@ export function drawTextOnPath(
|
|
|
64
65
|
while (offset < end - stride && segmentM + segmentLength < endM) {
|
|
65
66
|
advance();
|
|
66
67
|
}
|
|
67
|
-
interpolate = (endM - segmentM) / segmentLength;
|
|
68
|
+
interpolate = segmentLength === 0 ? 0 : (endM - segmentM) / segmentLength;
|
|
68
69
|
const endX = lerp(x1, x2, interpolate);
|
|
69
70
|
const endY = lerp(y1, y2, interpolate);
|
|
70
71
|
|
|
@@ -88,11 +89,12 @@ export function drawTextOnPath(
|
|
|
88
89
|
x2 = flatCoordinates[offset];
|
|
89
90
|
y2 = flatCoordinates[offset + 1];
|
|
90
91
|
|
|
92
|
+
let previousAngle;
|
|
91
93
|
// All on the same segment
|
|
92
94
|
if (singleSegment) {
|
|
93
95
|
advance();
|
|
94
96
|
|
|
95
|
-
|
|
97
|
+
previousAngle = Math.atan2(y2 - y1, x2 - x1);
|
|
96
98
|
if (reverse) {
|
|
97
99
|
previousAngle += previousAngle > 0 ? -PI : PI;
|
|
98
100
|
}
|
|
@@ -102,7 +104,6 @@ export function drawTextOnPath(
|
|
|
102
104
|
return result;
|
|
103
105
|
}
|
|
104
106
|
|
|
105
|
-
let previousAngle;
|
|
106
107
|
for (let i = 0, ii = text.length; i < ii; ) {
|
|
107
108
|
advance();
|
|
108
109
|
let angle = Math.atan2(y2 - y1, x2 - x1);
|
|
@@ -137,7 +138,10 @@ export function drawTextOnPath(
|
|
|
137
138
|
const chars = reverse
|
|
138
139
|
? text.substring(ii - iStart, ii - i)
|
|
139
140
|
: text.substring(iStart, i);
|
|
140
|
-
interpolate =
|
|
141
|
+
interpolate =
|
|
142
|
+
segmentLength === 0
|
|
143
|
+
? 0
|
|
144
|
+
: (startM + charLength / 2 - segmentM) / segmentLength;
|
|
141
145
|
const x = lerp(x1, x2, interpolate);
|
|
142
146
|
const y = lerp(y1, y2, interpolate);
|
|
143
147
|
result.push([x, y, charLength / 2, angle, chars]);
|
package/util.js
CHANGED