@revideo/2d 0.2.0 → 0.2.1-alpha.891

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 (195) hide show
  1. package/lib/code/CodeCursor.d.ts +74 -74
  2. package/lib/code/CodeCursor.js +352 -286
  3. package/lib/code/CodeDiffer.d.ts +21 -16
  4. package/lib/code/CodeDiffer.js +39 -41
  5. package/lib/code/CodeFragment.d.ts +16 -8
  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 +12 -8
  10. package/lib/code/CodeMetrics.js +26 -24
  11. package/lib/code/CodeRange.d.ts +21 -5
  12. package/lib/code/CodeRange.js +131 -124
  13. package/lib/code/CodeScope.d.ts +18 -8
  14. package/lib/code/CodeScope.js +59 -61
  15. package/lib/code/CodeSelection.d.ts +9 -4
  16. package/lib/code/CodeSelection.js +8 -8
  17. package/lib/code/CodeSignal.d.ts +74 -47
  18. package/lib/code/CodeSignal.js +206 -189
  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 +21 -19
  24. package/lib/code/LezerHighlighter.js +101 -101
  25. package/lib/code/diff.d.ts +12 -9
  26. package/lib/code/diff.js +218 -205
  27. package/lib/code/extractRange.d.ts +7 -4
  28. package/lib/code/extractRange.js +79 -71
  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 +115 -109
  33. package/lib/components/Bezier.d.ts +18 -18
  34. package/lib/components/Bezier.js +86 -75
  35. package/lib/components/Circle.d.ts +95 -90
  36. package/lib/components/Circle.js +85 -74
  37. package/lib/components/Code.d.ts +244 -211
  38. package/lib/components/Code.js +317 -269
  39. package/lib/components/CodeBlock.d.ts +109 -67
  40. package/lib/components/CodeBlock.js +414 -373
  41. package/lib/components/CubicBezier.d.ts +36 -36
  42. package/lib/components/CubicBezier.js +52 -49
  43. package/lib/components/Curve.d.ts +208 -198
  44. package/lib/components/Curve.js +270 -269
  45. package/lib/components/Grid.d.ts +47 -42
  46. package/lib/components/Grid.js +63 -56
  47. package/lib/components/Icon.d.ts +55 -50
  48. package/lib/components/Icon.js +58 -50
  49. package/lib/components/Img.d.ts +86 -79
  50. package/lib/components/Img.js +193 -181
  51. package/lib/components/Knot.d.ts +97 -78
  52. package/lib/components/Knot.js +81 -60
  53. package/lib/components/Latex.d.ts +12 -12
  54. package/lib/components/Latex.js +77 -65
  55. package/lib/components/Layout.d.ts +455 -413
  56. package/lib/components/Layout.js +666 -681
  57. package/lib/components/Line.d.ts +61 -49
  58. package/lib/components/Line.js +216 -193
  59. package/lib/components/Media.d.ts +35 -35
  60. package/lib/components/Media.js +135 -134
  61. package/lib/components/Node.d.ts +875 -830
  62. package/lib/components/Node.js +1383 -1314
  63. package/lib/components/Path.d.ts +35 -14
  64. package/lib/components/Path.js +100 -89
  65. package/lib/components/Polygon.d.ts +60 -55
  66. package/lib/components/Polygon.js +71 -66
  67. package/lib/components/QuadBezier.d.ts +29 -29
  68. package/lib/components/QuadBezier.js +50 -45
  69. package/lib/components/Ray.d.ts +28 -28
  70. package/lib/components/Ray.js +71 -64
  71. package/lib/components/Rect.d.ts +115 -108
  72. package/lib/components/Rect.js +78 -72
  73. package/lib/components/SVG.d.ts +165 -139
  74. package/lib/components/SVG.js +609 -541
  75. package/lib/components/Shape.d.ts +44 -35
  76. package/lib/components/Shape.js +112 -127
  77. package/lib/components/Spline.d.ts +46 -40
  78. package/lib/components/Spline.js +190 -175
  79. package/lib/components/Txt.d.ts +55 -44
  80. package/lib/components/Txt.js +156 -155
  81. package/lib/components/TxtLeaf.d.ts +20 -16
  82. package/lib/components/TxtLeaf.js +177 -158
  83. package/lib/components/Video.d.ts +41 -41
  84. package/lib/components/Video.js +138 -135
  85. package/lib/components/View2D.d.ts +21 -21
  86. package/lib/components/View2D.js +98 -85
  87. package/lib/components/index.d.ts +1 -1
  88. package/lib/components/index.js +1 -1
  89. package/lib/components/types.d.ts +22 -9
  90. package/lib/components/types.js +1 -1
  91. package/lib/curves/ArcSegment.d.ts +36 -24
  92. package/lib/curves/ArcSegment.js +145 -94
  93. package/lib/curves/CircleSegment.d.ts +26 -16
  94. package/lib/curves/CircleSegment.js +56 -49
  95. package/lib/curves/CubicBezierSegment.d.ts +18 -13
  96. package/lib/curves/CubicBezierSegment.js +79 -46
  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 +19 -14
  106. package/lib/curves/LineSegment.js +42 -42
  107. package/lib/curves/Polynomial.d.ts +110 -110
  108. package/lib/curves/Polynomial.js +249 -239
  109. package/lib/curves/Polynomial2D.d.ts +20 -20
  110. package/lib/curves/Polynomial2D.js +46 -42
  111. package/lib/curves/PolynomialSegment.d.ts +42 -37
  112. package/lib/curves/PolynomialSegment.js +83 -81
  113. package/lib/curves/QuadBezierSegment.d.ts +12 -12
  114. package/lib/curves/QuadBezierSegment.js +71 -41
  115. package/lib/curves/Segment.d.ts +12 -7
  116. package/lib/curves/Segment.js +2 -3
  117. package/lib/curves/UniformPolynomialCurveSampler.d.ts +34 -34
  118. package/lib/curves/UniformPolynomialCurveSampler.js +68 -62
  119. package/lib/curves/createCurveProfileLerp.d.ts +17 -6
  120. package/lib/curves/createCurveProfileLerp.js +211 -208
  121. package/lib/curves/getBezierSplineProfile.d.ts +8 -4
  122. package/lib/curves/getBezierSplineProfile.js +145 -101
  123. package/lib/curves/getCircleProfile.d.ts +10 -4
  124. package/lib/curves/getCircleProfile.js +72 -40
  125. package/lib/curves/getPathProfile.d.ts +2 -2
  126. package/lib/curves/getPathProfile.js +135 -112
  127. package/lib/curves/getPointAtDistance.d.ts +7 -4
  128. package/lib/curves/getPointAtDistance.js +12 -12
  129. package/lib/curves/getPolylineProfile.d.ts +8 -4
  130. package/lib/curves/getPolylineProfile.js +67 -54
  131. package/lib/curves/getRectProfile.d.ts +9 -4
  132. package/lib/curves/getRectProfile.js +117 -52
  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 +4 -2
  140. package/lib/decorators/compound.js +43 -23
  141. package/lib/decorators/computed.d.ts +1 -1
  142. package/lib/decorators/computed.js +9 -9
  143. package/lib/decorators/defaultStyle.d.ts +5 -2
  144. package/lib/decorators/defaultStyle.js +11 -11
  145. package/lib/decorators/filtersSignal.d.ts +28 -8
  146. package/lib/decorators/filtersSignal.js +87 -64
  147. package/lib/decorators/index.d.ts +1 -1
  148. package/lib/decorators/index.js +1 -1
  149. package/lib/decorators/initializers.d.ts +5 -2
  150. package/lib/decorators/initializers.js +18 -19
  151. package/lib/decorators/nodeName.d.ts +1 -1
  152. package/lib/decorators/nodeName.js +4 -4
  153. package/lib/decorators/signal.d.ts +40 -20
  154. package/lib/decorators/signal.js +113 -104
  155. package/lib/decorators/spacingSignal.d.ts +1 -1
  156. package/lib/decorators/spacingSignal.js +13 -13
  157. package/lib/decorators/vector2Signal.d.ts +13 -7
  158. package/lib/decorators/vector2Signal.js +15 -13
  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 +19 -9
  164. package/lib/jsx-runtime.js +18 -18
  165. package/lib/partials/Filter.d.ts +24 -16
  166. package/lib/partials/Filter.js +69 -69
  167. package/lib/partials/Gradient.d.ts +30 -24
  168. package/lib/partials/Gradient.js +69 -58
  169. package/lib/partials/Pattern.d.ts +14 -9
  170. package/lib/partials/Pattern.js +30 -24
  171. package/lib/partials/ShaderConfig.d.ts +81 -74
  172. package/lib/partials/ShaderConfig.js +22 -23
  173. package/lib/partials/index.d.ts +1 -1
  174. package/lib/partials/index.js +1 -1
  175. package/lib/partials/types.d.ts +19 -6
  176. package/lib/partials/types.js +1 -1
  177. package/lib/scenes/Scene2D.d.ts +42 -23
  178. package/lib/scenes/Scene2D.js +161 -151
  179. package/lib/scenes/index.d.ts +1 -1
  180. package/lib/scenes/index.js +1 -1
  181. package/lib/scenes/makeScene2D.d.ts +7 -5
  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 +93 -21
  186. package/lib/utils/CanvasUtils.js +186 -105
  187. package/lib/utils/diff.d.ts +25 -18
  188. package/lib/utils/diff.js +84 -87
  189. package/lib/utils/index.d.ts +1 -1
  190. package/lib/utils/index.js +1 -1
  191. package/lib/utils/is.d.ts +4 -2
  192. package/lib/utils/is.js +2 -2
  193. package/lib/utils/makeSignalExtensions.d.ts +11 -4
  194. package/lib/utils/makeSignalExtensions.js +17 -17
  195. package/package.json +5 -5
@@ -1,45 +1,49 @@
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
- }
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)));
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);
43
18
  }
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
+ }
44
48
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seW5vbWlhbDJELmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jdXJ2ZXMvUG9seW5vbWlhbDJELnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFeEMsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFDa0IsRUFBd0IsRUFDeEIsRUFBd0IsRUFDeEIsRUFBWSxFQUNaLEVBQVk7UUFIWixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQ1osT0FBRSxHQUFGLEVBQUUsQ0FBVTtRQUU1QixJQUFJLEVBQUUsWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBZ0IsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUcsRUFBYyxDQUFDLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRU0sSUFBSSxDQUFDLENBQVMsRUFBRSxVQUFVLEdBQUcsQ0FBQztRQUNuQyxPQUFPLElBQUksT0FBTyxDQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsQ0FBUztRQUNwQixNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsT0FBTyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sY0FBYyxDQUFDLENBQVM7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQ3JELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seW5vbWlhbDJELmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jdXJ2ZXMvUG9seW5vbWlhbDJELnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFeEMsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFDa0IsRUFBd0IsRUFDeEIsRUFBd0IsRUFDeEIsRUFBWSxFQUNaLEVBQVk7UUFIWixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFzQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFVO1FBQ1osT0FBRSxHQUFGLEVBQUUsQ0FBVTtRQUU1QixJQUFJLEVBQUUsWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBZ0IsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxFQUFFLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUcsRUFBYyxDQUFDLENBQUMsRUFBRSxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFHLEVBQWMsQ0FBQyxDQUFDLEVBQUUsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUM7SUFDSCxDQUFDO0lBRU0sSUFBSSxDQUFDLENBQVMsRUFBRSxVQUFVLEdBQUcsQ0FBQztRQUNuQyxPQUFPLElBQUksT0FBTyxDQUNoQixJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ3hDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDekMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsQ0FBUztRQUNwQixNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsT0FBTyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sY0FBYyxDQUFDLENBQVM7UUFDN0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQ3JELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FDdEQsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
@@ -1,39 +1,44 @@
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(context: CanvasRenderingContext2D | Path2D, start?: number, end?: number, move?: boolean): [CurvePoint, CurvePoint];
37
- 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(
37
+ context: CanvasRenderingContext2D | Path2D,
38
+ start?: number,
39
+ end?: number,
40
+ move?: boolean,
41
+ ): [CurvePoint, CurvePoint];
42
+ protected abstract doDraw(context: CanvasRenderingContext2D | Path2D): void;
38
43
  }
39
- //# sourceMappingURL=PolynomialSegment.d.ts.map
44
+ //# sourceMappingURL=PolynomialSegment.d.ts.map
@@ -1,85 +1,87 @@
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;
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;
7
66
  }
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
- ];
67
+ if (move) {
68
+ moveTo(context, points[0]);
83
69
  }
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
+ }
84
86
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9seW5vbWlhbFNlZ21lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2N1cnZlcy9Qb2x5bm9taWFsU2VnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBR2hDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFOUUsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxPQUFPO0lBR3JELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUlELFlBQ3FCLEtBQW1CLEVBQ25CLE1BQWM7UUFFakMsS0FBSyxFQUFFLENBQUM7UUFIVyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLENBQVM7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPO1lBQ1AsTUFBTSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBVU0sUUFBUSxDQUFDLFFBQWdCO1FBQzlCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFH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
87
+ //# 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,49 +1,79 @@
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;
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;
5
18
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { Vector2, lazy } from '@revideo/core';
8
- import { quadraticCurveTo } from '../utils';
9
- import { Polynomial2D } from './Polynomial2D';
10
- import { PolynomialSegment } from './PolynomialSegment';
19
+ };
20
+ import {Vector2, lazy} from '@revideo/core';
21
+ import {quadraticCurveTo} from '../utils';
22
+ import {Polynomial2D} from './Polynomial2D';
23
+ import {PolynomialSegment} from './PolynomialSegment';
11
24
  /**
12
25
  * A spline segment representing a quadratic Bézier curve.
13
26
  */
14
27
  export class QuadBezierSegment extends PolynomialSegment {
15
- get points() {
16
- return [this.p0, this.p1, this.p2];
17
- }
18
- constructor(p0, p1, p2) {
19
- super(new Polynomial2D(p0,
28
+ get points() {
29
+ return [this.p0, this.p1, this.p2];
30
+ }
31
+ constructor(p0, p1, p2) {
32
+ super(
33
+ new Polynomial2D(
34
+ p0,
20
35
  // 2*(-p0+p1)
21
- p0.flipped.add(p1).scale(2),
36
+ p0.flipped.add(p1).scale(2),
22
37
  // p0-2*p1+p2
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
- }
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
+ }
45
72
  }
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
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
@@ -1,9 +1,14 @@
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(context: CanvasRenderingContext2D | Path2D, start: number, end: number, move: boolean): [CurvePoint, CurvePoint];
6
- abstract getPoint(distance: number): CurvePoint;
7
- abstract get arcLength(): number;
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;
8
13
  }
9
- //# sourceMappingURL=Segment.d.ts.map
14
+ //# sourceMappingURL=Segment.d.ts.map
@@ -1,3 +1,2 @@
1
- export class Segment {
2
- }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3VydmVzL1NlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixPQUFPO0NBYTVCIn0=
1
+ export class Segment {}
2
+ //# 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