@revideo/2d 0.2.1 → 0.2.2

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 (198) hide show
  1. package/lib/code/CodeCursor.d.ts +74 -74
  2. package/lib/code/CodeCursor.js +286 -352
  3. package/lib/code/CodeDiffer.d.ts +16 -21
  4. package/lib/code/CodeDiffer.js +41 -39
  5. package/lib/code/CodeFragment.d.ts +8 -16
  6. package/lib/code/CodeFragment.js +36 -36
  7. package/lib/code/CodeHighlighter.d.ts +59 -59
  8. package/lib/code/CodeHighlighter.js +1 -1
  9. package/lib/code/CodeMetrics.d.ts +8 -12
  10. package/lib/code/CodeMetrics.js +24 -26
  11. package/lib/code/CodeRange.d.ts +5 -21
  12. package/lib/code/CodeRange.js +124 -131
  13. package/lib/code/CodeScope.d.ts +8 -18
  14. package/lib/code/CodeScope.js +61 -59
  15. package/lib/code/CodeSelection.d.ts +4 -9
  16. package/lib/code/CodeSelection.js +8 -8
  17. package/lib/code/CodeSignal.d.ts +47 -74
  18. package/lib/code/CodeSignal.js +189 -206
  19. package/lib/code/CodeTokenizer.d.ts +1 -1
  20. package/lib/code/CodeTokenizer.js +41 -41
  21. package/lib/code/DefaultHighlightStyle.d.ts +2 -2
  22. package/lib/code/DefaultHighlightStyle.js +96 -96
  23. package/lib/code/LezerHighlighter.d.ts +19 -21
  24. package/lib/code/LezerHighlighter.js +101 -101
  25. package/lib/code/diff.d.ts +9 -12
  26. package/lib/code/diff.js +205 -218
  27. package/lib/code/extractRange.d.ts +4 -7
  28. package/lib/code/extractRange.js +71 -79
  29. package/lib/code/index.d.ts +1 -1
  30. package/lib/code/index.js +1 -1
  31. package/lib/components/Audio.d.ts +11 -11
  32. package/lib/components/Audio.js +109 -115
  33. package/lib/components/Bezier.d.ts +18 -18
  34. package/lib/components/Bezier.js +75 -86
  35. package/lib/components/Circle.d.ts +90 -95
  36. package/lib/components/Circle.js +74 -85
  37. package/lib/components/Code.d.ts +211 -244
  38. package/lib/components/Code.js +269 -317
  39. package/lib/components/CodeBlock.d.ts +67 -109
  40. package/lib/components/CodeBlock.js +373 -414
  41. package/lib/components/CubicBezier.d.ts +36 -36
  42. package/lib/components/CubicBezier.js +49 -52
  43. package/lib/components/Curve.d.ts +198 -208
  44. package/lib/components/Curve.js +269 -270
  45. package/lib/components/Grid.d.ts +42 -47
  46. package/lib/components/Grid.js +56 -63
  47. package/lib/components/Icon.d.ts +50 -55
  48. package/lib/components/Icon.js +50 -58
  49. package/lib/components/Img.d.ts +79 -86
  50. package/lib/components/Img.js +181 -193
  51. package/lib/components/Knot.d.ts +78 -97
  52. package/lib/components/Knot.js +60 -81
  53. package/lib/components/Latex.d.ts +12 -12
  54. package/lib/components/Latex.js +65 -77
  55. package/lib/components/Layout.d.ts +413 -455
  56. package/lib/components/Layout.js +681 -666
  57. package/lib/components/Line.d.ts +49 -61
  58. package/lib/components/Line.js +193 -216
  59. package/lib/components/Media.d.ts +35 -35
  60. package/lib/components/Media.js +134 -135
  61. package/lib/components/Node.d.ts +830 -875
  62. package/lib/components/Node.js +1314 -1383
  63. package/lib/components/Path.d.ts +14 -35
  64. package/lib/components/Path.js +89 -100
  65. package/lib/components/Polygon.d.ts +55 -60
  66. package/lib/components/Polygon.js +66 -71
  67. package/lib/components/QuadBezier.d.ts +29 -29
  68. package/lib/components/QuadBezier.js +45 -50
  69. package/lib/components/Ray.d.ts +28 -28
  70. package/lib/components/Ray.js +64 -71
  71. package/lib/components/Rect.d.ts +108 -115
  72. package/lib/components/Rect.js +72 -78
  73. package/lib/components/SVG.d.ts +139 -165
  74. package/lib/components/SVG.js +541 -609
  75. package/lib/components/Shape.d.ts +35 -44
  76. package/lib/components/Shape.js +127 -112
  77. package/lib/components/Spline.d.ts +40 -46
  78. package/lib/components/Spline.js +175 -190
  79. package/lib/components/Txt.d.ts +44 -55
  80. package/lib/components/Txt.js +155 -156
  81. package/lib/components/TxtLeaf.d.ts +16 -20
  82. package/lib/components/TxtLeaf.js +158 -177
  83. package/lib/components/Video.d.ts +41 -41
  84. package/lib/components/Video.js +135 -138
  85. package/lib/components/View2D.d.ts +21 -21
  86. package/lib/components/View2D.js +85 -98
  87. package/lib/components/index.d.ts +1 -1
  88. package/lib/components/index.js +1 -1
  89. package/lib/components/types.d.ts +9 -22
  90. package/lib/components/types.js +1 -1
  91. package/lib/curves/ArcSegment.d.ts +24 -36
  92. package/lib/curves/ArcSegment.js +94 -145
  93. package/lib/curves/CircleSegment.d.ts +16 -26
  94. package/lib/curves/CircleSegment.js +49 -56
  95. package/lib/curves/CubicBezierSegment.d.ts +13 -18
  96. package/lib/curves/CubicBezierSegment.js +46 -79
  97. package/lib/curves/CurveDrawingInfo.d.ts +9 -9
  98. package/lib/curves/CurveDrawingInfo.js +1 -1
  99. package/lib/curves/CurvePoint.d.ts +13 -13
  100. package/lib/curves/CurvePoint.js +1 -1
  101. package/lib/curves/CurveProfile.d.ts +5 -5
  102. package/lib/curves/CurveProfile.js +1 -1
  103. package/lib/curves/KnotInfo.d.ts +8 -8
  104. package/lib/curves/KnotInfo.js +1 -1
  105. package/lib/curves/LineSegment.d.ts +14 -19
  106. package/lib/curves/LineSegment.js +42 -42
  107. package/lib/curves/Polynomial.d.ts +110 -110
  108. package/lib/curves/Polynomial.js +239 -249
  109. package/lib/curves/Polynomial2D.d.ts +20 -20
  110. package/lib/curves/Polynomial2D.js +42 -46
  111. package/lib/curves/PolynomialSegment.d.ts +37 -42
  112. package/lib/curves/PolynomialSegment.js +81 -83
  113. package/lib/curves/QuadBezierSegment.d.ts +12 -12
  114. package/lib/curves/QuadBezierSegment.js +41 -71
  115. package/lib/curves/Segment.d.ts +7 -12
  116. package/lib/curves/Segment.js +3 -2
  117. package/lib/curves/UniformPolynomialCurveSampler.d.ts +34 -34
  118. package/lib/curves/UniformPolynomialCurveSampler.js +62 -68
  119. package/lib/curves/createCurveProfileLerp.d.ts +6 -17
  120. package/lib/curves/createCurveProfileLerp.js +208 -211
  121. package/lib/curves/getBezierSplineProfile.d.ts +4 -8
  122. package/lib/curves/getBezierSplineProfile.js +101 -145
  123. package/lib/curves/getCircleProfile.d.ts +4 -10
  124. package/lib/curves/getCircleProfile.js +40 -72
  125. package/lib/curves/getPathProfile.d.ts +2 -2
  126. package/lib/curves/getPathProfile.js +112 -135
  127. package/lib/curves/getPointAtDistance.d.ts +4 -7
  128. package/lib/curves/getPointAtDistance.js +12 -12
  129. package/lib/curves/getPolylineProfile.d.ts +4 -8
  130. package/lib/curves/getPolylineProfile.js +54 -67
  131. package/lib/curves/getRectProfile.d.ts +4 -9
  132. package/lib/curves/getRectProfile.js +52 -117
  133. package/lib/curves/index.d.ts +1 -1
  134. package/lib/curves/index.js +1 -1
  135. package/lib/decorators/canvasStyleSignal.d.ts +3 -3
  136. package/lib/decorators/canvasStyleSignal.js +10 -10
  137. package/lib/decorators/colorSignal.d.ts +1 -1
  138. package/lib/decorators/colorSignal.js +7 -7
  139. package/lib/decorators/compound.d.ts +2 -4
  140. package/lib/decorators/compound.js +23 -43
  141. package/lib/decorators/computed.d.ts +1 -1
  142. package/lib/decorators/computed.js +9 -9
  143. package/lib/decorators/defaultStyle.d.ts +2 -5
  144. package/lib/decorators/defaultStyle.js +11 -11
  145. package/lib/decorators/filtersSignal.d.ts +8 -28
  146. package/lib/decorators/filtersSignal.js +64 -87
  147. package/lib/decorators/index.d.ts +1 -1
  148. package/lib/decorators/index.js +1 -1
  149. package/lib/decorators/initializers.d.ts +2 -5
  150. package/lib/decorators/initializers.js +19 -18
  151. package/lib/decorators/nodeName.d.ts +1 -1
  152. package/lib/decorators/nodeName.js +4 -4
  153. package/lib/decorators/signal.d.ts +20 -40
  154. package/lib/decorators/signal.js +104 -113
  155. package/lib/decorators/spacingSignal.d.ts +1 -1
  156. package/lib/decorators/spacingSignal.js +13 -13
  157. package/lib/decorators/vector2Signal.d.ts +7 -13
  158. package/lib/decorators/vector2Signal.js +13 -15
  159. package/lib/index.d.ts +1 -1
  160. package/lib/index.js +1 -1
  161. package/lib/jsx-dev-runtime.d.ts +3 -3
  162. package/lib/jsx-dev-runtime.js +3 -3
  163. package/lib/jsx-runtime.d.ts +9 -19
  164. package/lib/jsx-runtime.js +18 -18
  165. package/lib/partials/Filter.d.ts +16 -24
  166. package/lib/partials/Filter.js +69 -69
  167. package/lib/partials/Gradient.d.ts +24 -30
  168. package/lib/partials/Gradient.js +58 -69
  169. package/lib/partials/Pattern.d.ts +9 -14
  170. package/lib/partials/Pattern.js +24 -30
  171. package/lib/partials/ShaderConfig.d.ts +74 -81
  172. package/lib/partials/ShaderConfig.js +23 -22
  173. package/lib/partials/index.d.ts +1 -1
  174. package/lib/partials/index.js +1 -1
  175. package/lib/partials/types.d.ts +6 -19
  176. package/lib/partials/types.js +1 -1
  177. package/lib/scenes/Scene2D.d.ts +23 -42
  178. package/lib/scenes/Scene2D.js +151 -161
  179. package/lib/scenes/index.d.ts +1 -1
  180. package/lib/scenes/index.js +1 -1
  181. package/lib/scenes/makeScene2D.d.ts +5 -7
  182. package/lib/scenes/makeScene2D.js +10 -10
  183. package/lib/scenes/useScene2D.d.ts +2 -2
  184. package/lib/scenes/useScene2D.js +3 -3
  185. package/lib/utils/CanvasUtils.d.ts +21 -93
  186. package/lib/utils/CanvasUtils.js +105 -186
  187. package/lib/utils/diff.d.ts +18 -25
  188. package/lib/utils/diff.js +87 -84
  189. package/lib/utils/index.d.ts +1 -1
  190. package/lib/utils/index.js +1 -1
  191. package/lib/utils/is.d.ts +2 -4
  192. package/lib/utils/is.js +2 -2
  193. package/lib/utils/makeSignalExtensions.d.ts +4 -11
  194. package/lib/utils/makeSignalExtensions.js +17 -17
  195. package/package.json +4 -4
  196. package/lib/components/AudioTest.d.ts +0 -99
  197. package/lib/components/AudioTest.d.ts.map +0 -1
  198. package/lib/components/AudioTest.js +0 -281
@@ -1,49 +1,45 @@
1
- import {BBox, Vector2} from '@revideo/core';
2
- import {Polynomial} from './Polynomial';
1
+ import { BBox, Vector2 } from '@revideo/core';
2
+ import { Polynomial } from './Polynomial';
3
3
  export class Polynomial2D {
4
- constructor(c0, c1, c2, c3) {
5
- this.c0 = c0;
6
- this.c1 = c1;
7
- this.c2 = c2;
8
- this.c3 = c3;
9
- if (c0 instanceof Polynomial) {
10
- this.x = c0;
11
- this.y = c1;
12
- } else if (c3 !== undefined) {
13
- this.x = new Polynomial(c0.x, c1.x, c2.x, c3.x);
14
- this.y = new Polynomial(c0.y, c1.y, c2.y, c3.y);
15
- } else {
16
- this.x = new Polynomial(c0.x, c1.x, c2.x);
17
- this.y = new Polynomial(c0.y, c1.y, c2.y);
4
+ constructor(c0, c1, c2, c3) {
5
+ this.c0 = c0;
6
+ this.c1 = c1;
7
+ this.c2 = c2;
8
+ this.c3 = c3;
9
+ if (c0 instanceof Polynomial) {
10
+ this.x = c0;
11
+ this.y = c1;
12
+ }
13
+ else if (c3 !== undefined) {
14
+ this.x = new Polynomial(c0.x, c1.x, c2.x, c3.x);
15
+ this.y = new Polynomial(c0.y, c1.y, c2.y, c3.y);
16
+ }
17
+ else {
18
+ this.x = new Polynomial(c0.x, c1.x, c2.x);
19
+ this.y = new Polynomial(c0.y, c1.y, c2.y);
20
+ }
21
+ }
22
+ eval(t, derivative = 0) {
23
+ return new Vector2(this.x.differentiate(derivative).eval(t), this.y.differentiate(derivative).eval(t));
24
+ }
25
+ split(u) {
26
+ const [xPre, xPost] = this.x.split(u);
27
+ const [yPre, yPost] = this.y.split(u);
28
+ return [new Polynomial2D(xPre, yPre), new Polynomial2D(xPost, yPost)];
29
+ }
30
+ differentiate(n = 1) {
31
+ return new Polynomial2D(this.x.differentiate(n), this.y.differentiate(n));
32
+ }
33
+ evalDerivative(t) {
34
+ return this.differentiate().eval(t);
35
+ }
36
+ /**
37
+ * Calculate the tight axis-aligned bounds of the curve in the unit interval.
38
+ */
39
+ getBounds() {
40
+ const rangeX = this.x.outputRange01();
41
+ const rangeY = this.y.outputRange01();
42
+ return BBox.fromPoints(new Vector2(Math.min(...rangeX), Math.max(...rangeY)), new Vector2(Math.max(...rangeX), Math.min(...rangeY)));
18
43
  }
19
- }
20
- eval(t, derivative = 0) {
21
- return new Vector2(
22
- this.x.differentiate(derivative).eval(t),
23
- this.y.differentiate(derivative).eval(t),
24
- );
25
- }
26
- split(u) {
27
- const [xPre, xPost] = this.x.split(u);
28
- const [yPre, yPost] = this.y.split(u);
29
- return [new Polynomial2D(xPre, yPre), new Polynomial2D(xPost, yPost)];
30
- }
31
- differentiate(n = 1) {
32
- return new Polynomial2D(this.x.differentiate(n), this.y.differentiate(n));
33
- }
34
- evalDerivative(t) {
35
- return this.differentiate().eval(t);
36
- }
37
- /**
38
- * Calculate the tight axis-aligned bounds of the curve in the unit interval.
39
- */
40
- getBounds() {
41
- const rangeX = this.x.outputRange01();
42
- const rangeY = this.y.outputRange01();
43
- return BBox.fromPoints(
44
- new Vector2(Math.min(...rangeX), Math.max(...rangeY)),
45
- new Vector2(Math.max(...rangeX), Math.min(...rangeY)),
46
- );
47
- }
48
44
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seW5vbWlhbDJELmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jdXJ2ZXMvUG9seW5vbWlhbDJELnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFeEMsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFDa0IsRUFBd0IsRUFDeEIsRUFBd0IsRUFDeEIsRUFBWSxFQUNaLEVBQVk7UUFIWixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQ1osT0FBRSxHQUFGLEVBQUUsQ0FBVTtRQUU1QixJQUFJLEVBQUUsWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBZ0IsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUcsRUFBYyxDQUFDLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRU0sSUFBSSxDQUFDLENBQVMsRUFBRSxVQUFVLEdBQUcsQ0FBQztRQUNuQyxPQUFPLElBQUksT0FBTyxDQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsQ0FBUztRQUNwQixNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsT0FBTyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sY0FBYyxDQUFDLENBQVM7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQ3JELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seW5vbWlhbDJELmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jdXJ2ZXMvUG9seW5vbWlhbDJELnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFeEMsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFDa0IsRUFBd0IsRUFDeEIsRUFBd0IsRUFDeEIsRUFBWSxFQUNaLEVBQVk7UUFIWixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQ1osT0FBRSxHQUFGLEVBQUUsQ0FBVTtRQUU1QixJQUFJLEVBQUUsWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBZ0IsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUcsRUFBYyxDQUFDLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRU0sSUFBSSxDQUFDLENBQVMsRUFBRSxVQUFVLEdBQUcsQ0FBQztRQUNuQyxPQUFPLElBQUksT0FBTyxDQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsQ0FBUztRQUNwQixNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsT0FBTyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sY0FBYyxDQUFDLENBQVM7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQ3JELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
@@ -1,44 +1,39 @@
1
- import {BBox, Vector2} from '@revideo/core';
2
- import {CurvePoint} from './CurvePoint';
3
- import {Polynomial2D} from './Polynomial2D';
4
- import {Segment} from './Segment';
5
- import {UniformPolynomialCurveSampler} from './UniformPolynomialCurveSampler';
1
+ import { BBox, Vector2 } from '@revideo/core';
2
+ import { CurvePoint } from './CurvePoint';
3
+ import { Polynomial2D } from './Polynomial2D';
4
+ import { Segment } from './Segment';
5
+ import { UniformPolynomialCurveSampler } from './UniformPolynomialCurveSampler';
6
6
  export declare abstract class PolynomialSegment extends Segment {
7
- protected readonly curve: Polynomial2D;
8
- protected readonly length: number;
9
- protected readonly pointSampler: UniformPolynomialCurveSampler;
10
- get arcLength(): number;
11
- abstract get points(): Vector2[];
12
- protected constructor(curve: Polynomial2D, length: number);
13
- getBBox(): BBox;
14
- /**
15
- * Evaluate the polynomial at the given t value.
16
- *
17
- * @param t - The t value at which to evaluate the curve.
18
- */
19
- eval(t: number): CurvePoint;
20
- /**
21
- * Split the curve into two separate polynomials at the given t value. The two
22
- * resulting curves form the same overall shape as the original curve.
23
- *
24
- * @param t - The t value at which to split the curve.
25
- */
26
- abstract split(t: number): [PolynomialSegment, PolynomialSegment];
27
- getPoint(distance: number): CurvePoint;
28
- transformPoints(matrix: DOMMatrix): Vector2[];
29
- /**
30
- * Return the tangent of the point that sits at the provided t value on the
31
- * curve.
32
- *
33
- * @param t - The t value at which to evaluate the curve.
34
- */
35
- tangent(t: number): Vector2;
36
- draw(
37
- context: CanvasRenderingContext2D | Path2D,
38
- start?: number,
39
- end?: number,
40
- move?: boolean,
41
- ): [CurvePoint, CurvePoint];
42
- protected abstract doDraw(context: CanvasRenderingContext2D | Path2D): void;
7
+ protected readonly curve: Polynomial2D;
8
+ protected readonly length: number;
9
+ protected readonly pointSampler: UniformPolynomialCurveSampler;
10
+ get arcLength(): number;
11
+ abstract get points(): Vector2[];
12
+ protected constructor(curve: Polynomial2D, length: number);
13
+ getBBox(): BBox;
14
+ /**
15
+ * Evaluate the polynomial at the given t value.
16
+ *
17
+ * @param t - The t value at which to evaluate the curve.
18
+ */
19
+ eval(t: number): CurvePoint;
20
+ /**
21
+ * Split the curve into two separate polynomials at the given t value. The two
22
+ * resulting curves form the same overall shape as the original curve.
23
+ *
24
+ * @param t - The t value at which to split the curve.
25
+ */
26
+ abstract split(t: number): [PolynomialSegment, PolynomialSegment];
27
+ getPoint(distance: number): CurvePoint;
28
+ transformPoints(matrix: DOMMatrix): Vector2[];
29
+ /**
30
+ * Return the tangent of the point that sits at the provided t value on the
31
+ * curve.
32
+ *
33
+ * @param t - The t value at which to evaluate the curve.
34
+ */
35
+ tangent(t: number): Vector2;
36
+ draw(context: CanvasRenderingContext2D | Path2D, start?: number, end?: number, move?: boolean): [CurvePoint, CurvePoint];
37
+ protected abstract doDraw(context: CanvasRenderingContext2D | Path2D): void;
43
38
  }
44
- //# sourceMappingURL=PolynomialSegment.d.ts.map
39
+ //# sourceMappingURL=PolynomialSegment.d.ts.map
@@ -1,87 +1,85 @@
1
- import {moveTo} from '../utils';
2
- import {Segment} from './Segment';
3
- import {UniformPolynomialCurveSampler} from './UniformPolynomialCurveSampler';
1
+ import { moveTo } from '../utils';
2
+ import { Segment } from './Segment';
3
+ import { UniformPolynomialCurveSampler } from './UniformPolynomialCurveSampler';
4
4
  export class PolynomialSegment extends Segment {
5
- get arcLength() {
6
- return this.length;
7
- }
8
- constructor(curve, length) {
9
- super();
10
- this.curve = curve;
11
- this.length = length;
12
- this.pointSampler = new UniformPolynomialCurveSampler(this);
13
- }
14
- getBBox() {
15
- return this.curve.getBounds();
16
- }
17
- /**
18
- * Evaluate the polynomial at the given t value.
19
- *
20
- * @param t - The t value at which to evaluate the curve.
21
- */
22
- eval(t) {
23
- const tangent = this.tangent(t);
24
- return {
25
- position: this.curve.eval(t),
26
- tangent,
27
- normal: tangent.perpendicular,
28
- };
29
- }
30
- getPoint(distance) {
31
- const closestPoint = this.pointSampler.pointAtDistance(
32
- this.arcLength * distance,
33
- );
34
- return {
35
- position: closestPoint.position,
36
- tangent: closestPoint.tangent,
37
- normal: closestPoint.tangent.perpendicular,
38
- };
39
- }
40
- transformPoints(matrix) {
41
- return this.points.map(point => point.transformAsPoint(matrix));
42
- }
43
- /**
44
- * Return the tangent of the point that sits at the provided t value on the
45
- * curve.
46
- *
47
- * @param t - The t value at which to evaluate the curve.
48
- */
49
- tangent(t) {
50
- return this.curve.evalDerivative(t).normalized;
51
- }
52
- draw(context, start = 0, end = 1, move = true) {
53
- let curve = null;
54
- let startT = start;
55
- let endT = end;
56
- let points = this.points;
57
- if (start !== 0 || end !== 1) {
58
- const startDistance = this.length * start;
59
- const endDistance = this.length * end;
60
- startT = this.pointSampler.distanceToT(startDistance);
61
- endT = this.pointSampler.distanceToT(endDistance);
62
- const relativeEndT = (endT - startT) / (1 - startT);
63
- const [, startSegment] = this.split(startT);
64
- [curve] = startSegment.split(relativeEndT);
65
- points = curve.points;
5
+ get arcLength() {
6
+ return this.length;
66
7
  }
67
- if (move) {
68
- moveTo(context, points[0]);
8
+ constructor(curve, length) {
9
+ super();
10
+ this.curve = curve;
11
+ this.length = length;
12
+ this.pointSampler = new UniformPolynomialCurveSampler(this);
13
+ }
14
+ getBBox() {
15
+ return this.curve.getBounds();
16
+ }
17
+ /**
18
+ * Evaluate the polynomial at the given t value.
19
+ *
20
+ * @param t - The t value at which to evaluate the curve.
21
+ */
22
+ eval(t) {
23
+ const tangent = this.tangent(t);
24
+ return {
25
+ position: this.curve.eval(t),
26
+ tangent,
27
+ normal: tangent.perpendicular,
28
+ };
29
+ }
30
+ getPoint(distance) {
31
+ const closestPoint = this.pointSampler.pointAtDistance(this.arcLength * distance);
32
+ return {
33
+ position: closestPoint.position,
34
+ tangent: closestPoint.tangent,
35
+ normal: closestPoint.tangent.perpendicular,
36
+ };
37
+ }
38
+ transformPoints(matrix) {
39
+ return this.points.map(point => point.transformAsPoint(matrix));
40
+ }
41
+ /**
42
+ * Return the tangent of the point that sits at the provided t value on the
43
+ * curve.
44
+ *
45
+ * @param t - The t value at which to evaluate the curve.
46
+ */
47
+ tangent(t) {
48
+ return this.curve.evalDerivative(t).normalized;
49
+ }
50
+ draw(context, start = 0, end = 1, move = true) {
51
+ let curve = null;
52
+ let startT = start;
53
+ let endT = end;
54
+ let points = this.points;
55
+ if (start !== 0 || end !== 1) {
56
+ const startDistance = this.length * start;
57
+ const endDistance = this.length * end;
58
+ startT = this.pointSampler.distanceToT(startDistance);
59
+ endT = this.pointSampler.distanceToT(endDistance);
60
+ const relativeEndT = (endT - startT) / (1 - startT);
61
+ const [, startSegment] = this.split(startT);
62
+ [curve] = startSegment.split(relativeEndT);
63
+ points = curve.points;
64
+ }
65
+ if (move) {
66
+ moveTo(context, points[0]);
67
+ }
68
+ (curve ?? this).doDraw(context);
69
+ const startTangent = this.tangent(startT);
70
+ const endTangent = this.tangent(endT);
71
+ return [
72
+ {
73
+ position: points[0],
74
+ tangent: startTangent,
75
+ normal: startTangent.perpendicular,
76
+ },
77
+ {
78
+ position: points.at(-1),
79
+ tangent: endTangent,
80
+ normal: endTangent.perpendicular,
81
+ },
82
+ ];
69
83
  }
70
- (curve ?? this).doDraw(context);
71
- const startTangent = this.tangent(startT);
72
- const endTangent = this.tangent(endT);
73
- return [
74
- {
75
- position: points[0],
76
- tangent: startTangent,
77
- normal: startTangent.perpendicular,
78
- },
79
- {
80
- position: points.at(-1),
81
- tangent: endTangent,
82
- normal: endTangent.perpendicular,
83
- },
84
- ];
85
- }
86
84
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seW5vbWlhbFNlZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2N1cnZlcy9Qb2x5bm9taWFsU2VnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBR2hDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFOUUsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxPQUFPO0lBR3JELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUlELFlBQ3FCLEtBQW1CLEVBQ25CLE1BQWM7UUFFakMsS0FBSyxFQUFFLENBQUM7UUFIVyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLENBQVM7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPO1lBQ1AsTUFBTSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBVU0sUUFBUSxDQUFDLFFBQWdCO1FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFH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
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seW5vbWlhbFNlZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2N1cnZlcy9Qb2x5bm9taWFsU2VnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBR2hDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFOUUsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxPQUFPO0lBR3JELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUlELFlBQ3FCLEtBQW1CLEVBQ25CLE1BQWM7UUFFakMsS0FBSyxFQUFFLENBQUM7UUFIVyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLENBQVM7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPO1lBQ1AsTUFBTSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBVU0sUUFBUSxDQUFDLFFBQWdCO1FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFH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
@@ -1,17 +1,17 @@
1
- import {Vector2} from '@revideo/core';
2
- import {PolynomialSegment} from './PolynomialSegment';
1
+ import { Vector2 } from '@revideo/core';
2
+ import { PolynomialSegment } from './PolynomialSegment';
3
3
  /**
4
4
  * A spline segment representing a quadratic Bézier curve.
5
5
  */
6
6
  export declare class QuadBezierSegment extends PolynomialSegment {
7
- readonly p0: Vector2;
8
- readonly p1: Vector2;
9
- readonly p2: Vector2;
10
- private static el;
11
- get points(): Vector2[];
12
- constructor(p0: Vector2, p1: Vector2, p2: Vector2);
13
- split(t: number): [PolynomialSegment, PolynomialSegment];
14
- protected static getLength(p0: Vector2, p1: Vector2, p2: Vector2): number;
15
- protected doDraw(context: CanvasRenderingContext2D | Path2D): void;
7
+ readonly p0: Vector2;
8
+ readonly p1: Vector2;
9
+ readonly p2: Vector2;
10
+ private static el;
11
+ get points(): Vector2[];
12
+ constructor(p0: Vector2, p1: Vector2, p2: Vector2);
13
+ split(t: number): [PolynomialSegment, PolynomialSegment];
14
+ protected static getLength(p0: Vector2, p1: Vector2, p2: Vector2): number;
15
+ protected doDraw(context: CanvasRenderingContext2D | Path2D): void;
16
16
  }
17
- //# sourceMappingURL=QuadBezierSegment.d.ts.map
17
+ //# sourceMappingURL=QuadBezierSegment.d.ts.map
@@ -1,79 +1,49 @@
1
- var __decorate =
2
- (this && this.__decorate) ||
3
- function (decorators, target, key, desc) {
4
- var c = arguments.length,
5
- r =
6
- c < 3
7
- ? target
8
- : desc === null
9
- ? (desc = Object.getOwnPropertyDescriptor(target, key))
10
- : desc,
11
- d;
12
- if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
13
- r = Reflect.decorate(decorators, target, key, desc);
14
- else
15
- for (var i = decorators.length - 1; i >= 0; i--)
16
- if ((d = decorators[i]))
17
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- };
20
- import {Vector2, lazy} from '@revideo/core';
21
- import {quadraticCurveTo} from '../utils';
22
- import {Polynomial2D} from './Polynomial2D';
23
- import {PolynomialSegment} from './PolynomialSegment';
6
+ };
7
+ import { Vector2, lazy } from '@revideo/core';
8
+ import { quadraticCurveTo } from '../utils';
9
+ import { Polynomial2D } from './Polynomial2D';
10
+ import { PolynomialSegment } from './PolynomialSegment';
24
11
  /**
25
12
  * A spline segment representing a quadratic Bézier curve.
26
13
  */
27
14
  export class QuadBezierSegment extends PolynomialSegment {
28
- get points() {
29
- return [this.p0, this.p1, this.p2];
30
- }
31
- constructor(p0, p1, p2) {
32
- super(
33
- new Polynomial2D(
34
- p0,
15
+ get points() {
16
+ return [this.p0, this.p1, this.p2];
17
+ }
18
+ constructor(p0, p1, p2) {
19
+ super(new Polynomial2D(p0,
35
20
  // 2*(-p0+p1)
36
- p0.flipped.add(p1).scale(2),
21
+ p0.flipped.add(p1).scale(2),
37
22
  // p0-2*p1+p2
38
- p0.sub(p1.scale(2)).add(p2),
39
- ),
40
- QuadBezierSegment.getLength(p0, p1, p2),
41
- );
42
- this.p0 = p0;
43
- this.p1 = p1;
44
- this.p2 = p2;
45
- }
46
- split(t) {
47
- const a = new Vector2(
48
- this.p0.x + (this.p1.x - this.p0.x) * t,
49
- this.p0.y + (this.p1.y - this.p0.y) * t,
50
- );
51
- const b = new Vector2(
52
- this.p1.x + (this.p2.x - this.p1.x) * t,
53
- this.p1.y + (this.p2.y - this.p1.y) * t,
54
- );
55
- const p = new Vector2(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t);
56
- const left = new QuadBezierSegment(this.p0, a, p);
57
- const right = new QuadBezierSegment(p, b, this.p2);
58
- return [left, right];
59
- }
60
- static getLength(p0, p1, p2) {
61
- // Let the browser do the work for us instead of calculating the arclength
62
- // manually.
63
- QuadBezierSegment.el.setAttribute(
64
- 'd',
65
- `M ${p0.x} ${p0.y} Q ${p1.x} ${p1.y} ${p2.x} ${p2.y}`,
66
- );
67
- return QuadBezierSegment.el.getTotalLength();
68
- }
69
- doDraw(context) {
70
- quadraticCurveTo(context, this.p1, this.p2);
71
- }
23
+ p0.sub(p1.scale(2)).add(p2)), QuadBezierSegment.getLength(p0, p1, p2));
24
+ this.p0 = p0;
25
+ this.p1 = p1;
26
+ this.p2 = p2;
27
+ }
28
+ split(t) {
29
+ const a = new Vector2(this.p0.x + (this.p1.x - this.p0.x) * t, this.p0.y + (this.p1.y - this.p0.y) * t);
30
+ const b = new Vector2(this.p1.x + (this.p2.x - this.p1.x) * t, this.p1.y + (this.p2.y - this.p1.y) * t);
31
+ const p = new Vector2(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t);
32
+ const left = new QuadBezierSegment(this.p0, a, p);
33
+ const right = new QuadBezierSegment(p, b, this.p2);
34
+ return [left, right];
35
+ }
36
+ static getLength(p0, p1, p2) {
37
+ // Let the browser do the work for us instead of calculating the arclength
38
+ // manually.
39
+ QuadBezierSegment.el.setAttribute('d', `M ${p0.x} ${p0.y} Q ${p1.x} ${p1.y} ${p2.x} ${p2.y}`);
40
+ return QuadBezierSegment.el.getTotalLength();
41
+ }
42
+ doDraw(context) {
43
+ quadraticCurveTo(context, this.p1, this.p2);
44
+ }
72
45
  }
73
- __decorate(
74
- [lazy(() => document.createElementNS('http://www.w3.org/2000/svg', 'path'))],
75
- QuadBezierSegment,
76
- 'el',
77
- void 0,
78
- );
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVhZEJlemllclNlZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2N1cnZlcy9RdWFkQmV6aWVyU2VnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXREOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQUl0RCxJQUFXLE1BQU07UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFDa0IsRUFBVyxFQUNYLEVBQVcsRUFDWCxFQUFXO1FBRTNCLEtBQUssQ0FDSCxJQUFJLFlBQVksQ0FDZCxFQUFFO1FBQ0YsYUFBYTtRQUNiLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0IsYUFBYTtRQUNiLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDNUIsRUFDRCxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDeEMsQ0FBQztRQWJjLE9BQUUsR0FBRixFQUFFLENBQVM7UUFDWCxPQUFFLEdBQUYsRUFBRSxDQUFTO1FBQ1gsT0FBRSxHQUFGLEVBQUUsQ0FBUztJQVk3QixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQVM7UUFDcEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ3ZDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ3hDLENBQUM7UUFDRixNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FDeEMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sSUFBSSxHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuRCxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQVcsRUFBRSxFQUFXLEVBQUUsRUFBVztRQUM5RCwwRUFBMEU7UUFDMUUsWUFBWTtRQUNaLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQy9CLEdBQUcsRUFDSCxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQ3RELENBQUM7UUFDRixPQUFPLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRWtCLE1BQU0sQ0FBQyxPQUEwQztRQUNsRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBckRnQjtJQURkLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO21DQUN6QyJ9
46
+ __decorate([
47
+ lazy(() => document.createElementNS('http://www.w3.org/2000/svg', 'path'))
48
+ ], QuadBezierSegment, "el", void 0);
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVhZEJlemllclNlZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2N1cnZlcy9RdWFkQmV6aWVyU2VnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXREOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQUl0RCxJQUFXLE1BQU07UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFDa0IsRUFBVyxFQUNYLEVBQVcsRUFDWCxFQUFXO1FBRTNCLEtBQUssQ0FDSCxJQUFJLFlBQVksQ0FDZCxFQUFFO1FBQ0YsYUFBYTtRQUNiLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDM0IsYUFBYTtRQUNiLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDNUIsRUFDRCxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDeEMsQ0FBQztRQWJjLE9BQUUsR0FBRixFQUFFLENBQVM7UUFDWCxPQUFFLEdBQUYsRUFBRSxDQUFTO1FBQ1gsT0FBRSxHQUFGLEVBQUUsQ0FBUztJQVk3QixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQVM7UUFDcEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ3ZDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ3hDLENBQUM7UUFDRixNQUFNLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FDeEMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sSUFBSSxHQUFHLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuRCxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQVcsRUFBRSxFQUFXLEVBQUUsRUFBVztRQUM5RCwwRUFBMEU7UUFDMUUsWUFBWTtRQUNaLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQy9CLEdBQUcsRUFDSCxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQ3RELENBQUM7UUFDRixPQUFPLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRWtCLE1BQU0sQ0FBQyxPQUEwQztRQUNsRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBckRnQjtJQURkLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO21DQUN6QyJ9
@@ -1,14 +1,9 @@
1
- import {Vector2} from '@revideo/core';
2
- import {CurvePoint} from './CurvePoint';
1
+ import { Vector2 } from '@revideo/core';
2
+ import { CurvePoint } from './CurvePoint';
3
3
  export declare abstract class Segment {
4
- abstract readonly points: Vector2[];
5
- abstract draw(
6
- context: CanvasRenderingContext2D | Path2D,
7
- start: number,
8
- end: number,
9
- move: boolean,
10
- ): [CurvePoint, CurvePoint];
11
- abstract getPoint(distance: number): CurvePoint;
12
- abstract get arcLength(): number;
4
+ abstract readonly points: Vector2[];
5
+ abstract draw(context: CanvasRenderingContext2D | Path2D, start: number, end: number, move: boolean): [CurvePoint, CurvePoint];
6
+ abstract getPoint(distance: number): CurvePoint;
7
+ abstract get arcLength(): number;
13
8
  }
14
- //# sourceMappingURL=Segment.d.ts.map
9
+ //# sourceMappingURL=Segment.d.ts.map
@@ -1,2 +1,3 @@
1
- export class Segment {}
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3VydmVzL1NlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixPQUFPO0NBYTVCIn0=
1
+ export class Segment {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3VydmVzL1NlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixPQUFPO0NBYTVCIn0=
@@ -1,5 +1,5 @@
1
- import {CurvePoint} from './CurvePoint';
2
- import {PolynomialSegment} from './PolynomialSegment';
1
+ import { CurvePoint } from './CurvePoint';
2
+ import { PolynomialSegment } from './PolynomialSegment';
3
3
  /**
4
4
  * Class to uniformly sample points on a given polynomial curve.
5
5
  *
@@ -8,36 +8,36 @@ import {PolynomialSegment} from './PolynomialSegment';
8
8
  * re-parameterizes the curve by arclength.
9
9
  */
10
10
  export declare class UniformPolynomialCurveSampler {
11
- private readonly curve;
12
- private sampledDistances;
13
- /**
14
- * @param curve - The curve to sample
15
- * @param samples - How many points to sample from the provided curve. The
16
- * more points get sampled, the higher the resolution–and
17
- * therefore precision–of the sampler.
18
- */
19
- constructor(curve: PolynomialSegment, samples?: number);
20
- /**
21
- * Discard all previously sampled points and resample the provided number of
22
- * points from the curve.
23
- *
24
- * @param samples - The number of points to sample.
25
- */
26
- resample(samples: number): void;
27
- /**
28
- * Return the point at the provided distance along the sampled curve's
29
- * arclength.
30
- *
31
- * @param distance - The distance along the curve's arclength for which to
32
- * retrieve the point.
33
- */
34
- pointAtDistance(distance: number): CurvePoint;
35
- /**
36
- * Return the t value for the point at the provided distance along the sampled
37
- * curve's arc length.
38
- *
39
- * @param distance - The distance along the arclength
40
- */
41
- distanceToT(distance: number): number;
11
+ private readonly curve;
12
+ private sampledDistances;
13
+ /**
14
+ * @param curve - The curve to sample
15
+ * @param samples - How many points to sample from the provided curve. The
16
+ * more points get sampled, the higher the resolution–and
17
+ * therefore precision–of the sampler.
18
+ */
19
+ constructor(curve: PolynomialSegment, samples?: number);
20
+ /**
21
+ * Discard all previously sampled points and resample the provided number of
22
+ * points from the curve.
23
+ *
24
+ * @param samples - The number of points to sample.
25
+ */
26
+ resample(samples: number): void;
27
+ /**
28
+ * Return the point at the provided distance along the sampled curve's
29
+ * arclength.
30
+ *
31
+ * @param distance - The distance along the curve's arclength for which to
32
+ * retrieve the point.
33
+ */
34
+ pointAtDistance(distance: number): CurvePoint;
35
+ /**
36
+ * Return the t value for the point at the provided distance along the sampled
37
+ * curve's arc length.
38
+ *
39
+ * @param distance - The distance along the arclength
40
+ */
41
+ distanceToT(distance: number): number;
42
42
  }
43
- //# sourceMappingURL=UniformPolynomialCurveSampler.d.ts.map
43
+ //# sourceMappingURL=UniformPolynomialCurveSampler.d.ts.map