@revideo/2d 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +4 -4
@@ -1,26 +1,38 @@
1
- import { Vector2 } from '@revideo/core';
2
- import { CurvePoint } from './CurvePoint';
3
- import { Segment } from './Segment';
1
+ import {Vector2} from '@revideo/core';
2
+ import {CurvePoint} from './CurvePoint';
3
+ import {Segment} from './Segment';
4
4
  export declare class ArcSegment extends Segment {
5
- readonly startPoint: Vector2;
6
- readonly radius: Vector2;
7
- readonly xAxisRotationDegree: number;
8
- readonly largeArcFlag: number;
9
- readonly sweepFlag: number;
10
- readonly endPoint: Vector2;
11
- private static el;
12
- readonly center: Vector2;
13
- readonly startAngle: number;
14
- readonly deltaAngle: number;
15
- readonly xAxisRotation: number;
16
- private xAxisRotationMatrix;
17
- readonly points: Vector2[];
18
- private length;
19
- constructor(startPoint: Vector2, radius: Vector2, xAxisRotationDegree: number, largeArcFlag: number, sweepFlag: number, endPoint: Vector2);
20
- getAnglePosition(angle: number): Vector2;
21
- getAngleDerivative(angle: number): Vector2;
22
- draw(context: CanvasRenderingContext2D | Path2D, start: number, end: number, move: boolean): [CurvePoint, CurvePoint];
23
- getPoint(distance: number): CurvePoint;
24
- get arcLength(): number;
5
+ readonly startPoint: Vector2;
6
+ readonly radius: Vector2;
7
+ readonly xAxisRotationDegree: number;
8
+ readonly largeArcFlag: number;
9
+ readonly sweepFlag: number;
10
+ readonly endPoint: Vector2;
11
+ private static el;
12
+ readonly center: Vector2;
13
+ readonly startAngle: number;
14
+ readonly deltaAngle: number;
15
+ readonly xAxisRotation: number;
16
+ private xAxisRotationMatrix;
17
+ readonly points: Vector2[];
18
+ private length;
19
+ constructor(
20
+ startPoint: Vector2,
21
+ radius: Vector2,
22
+ xAxisRotationDegree: number,
23
+ largeArcFlag: number,
24
+ sweepFlag: number,
25
+ endPoint: Vector2,
26
+ );
27
+ getAnglePosition(angle: number): Vector2;
28
+ getAngleDerivative(angle: number): Vector2;
29
+ draw(
30
+ context: CanvasRenderingContext2D | Path2D,
31
+ start: number,
32
+ end: number,
33
+ move: boolean,
34
+ ): [CurvePoint, CurvePoint];
35
+ getPoint(distance: number): CurvePoint;
36
+ get arcLength(): number;
25
37
  }
26
- //# sourceMappingURL=ArcSegment.d.ts.map
38
+ //# sourceMappingURL=ArcSegment.d.ts.map
@@ -1,101 +1,152 @@
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 { BBox, DEG2RAD, Matrix2D, Vector2, lazy } from '@revideo/core';
8
- import { View2D } from '../components/View2D';
9
- import { Segment } from './Segment';
19
+ };
20
+ import {BBox, DEG2RAD, Matrix2D, Vector2, lazy} from '@revideo/core';
21
+ import {View2D} from '../components/View2D';
22
+ import {Segment} from './Segment';
10
23
  export class ArcSegment extends Segment {
11
- constructor(startPoint, radius, xAxisRotationDegree, largeArcFlag, sweepFlag, endPoint) {
12
- super();
13
- this.startPoint = startPoint;
14
- this.radius = radius;
15
- this.xAxisRotationDegree = xAxisRotationDegree;
16
- this.largeArcFlag = largeArcFlag;
17
- this.sweepFlag = sweepFlag;
18
- this.endPoint = endPoint;
19
- this.xAxisRotation = this.xAxisRotationDegree * DEG2RAD;
20
- this.radius = new Vector2(Math.abs(radius.x), Math.abs(radius.y));
21
- const pAccent = startPoint
22
- .sub(endPoint)
23
- .div(2)
24
- .transform(Matrix2D.fromRotation(-xAxisRotationDegree).domMatrix);
25
- const L = (pAccent.x * pAccent.x) / (radius.x * radius.x) +
26
- (pAccent.y * pAccent.y) / (radius.y * radius.y);
27
- if (L > 1) {
28
- const Lsqrt = Math.sqrt(L);
29
- radius.x = Lsqrt * radius.x;
30
- radius.y = Lsqrt * radius.y;
31
- }
32
- const cAccent = new Vector2(radius.ctg * pAccent.y, radius.perpendicular.ctg * pAccent.x).scale(Math.sqrt(1 /
33
- ((pAccent.x * pAccent.x) / (radius.x * radius.x) +
34
- (pAccent.y * pAccent.y) / (radius.y * radius.y)) -
35
- 1) * (largeArcFlag === sweepFlag ? -1 : 1));
36
- this.xAxisRotationMatrix =
37
- Matrix2D.fromRotation(xAxisRotationDegree).domMatrix;
38
- this.center = cAccent
39
- .transform(this.xAxisRotationMatrix)
40
- .add(startPoint.add(endPoint).div(2));
41
- const q = pAccent.sub(cAccent).div(radius);
42
- const s = pAccent.scale(-1).sub(cAccent).div(radius);
43
- this.startAngle = q.radians;
44
- this.deltaAngle = Vector2.angleBetween(q, s) % (Math.PI * 2);
45
- if (this.sweepFlag === 0 && this.deltaAngle > 0) {
46
- this.deltaAngle -= Math.PI * 2;
47
- }
48
- if (this.sweepFlag === 1 && this.deltaAngle < 0) {
49
- this.deltaAngle += Math.PI * 2;
50
- }
51
- ArcSegment.el.setAttribute('d', `M ${this.startPoint.x} ${this.startPoint.y} A ${this.radius.x} ${this.radius.y} ${this.xAxisRotationDegree} ${this.largeArcFlag} ${this.sweepFlag} ${this.endPoint.x} ${this.endPoint.y}`);
52
- this.length = ArcSegment.el.getTotalLength();
53
- const bbox = new BBox(ArcSegment.el.getBBox());
54
- this.points = [bbox.topLeft, bbox.bottomRight];
24
+ constructor(
25
+ startPoint,
26
+ radius,
27
+ xAxisRotationDegree,
28
+ largeArcFlag,
29
+ sweepFlag,
30
+ endPoint,
31
+ ) {
32
+ super();
33
+ this.startPoint = startPoint;
34
+ this.radius = radius;
35
+ this.xAxisRotationDegree = xAxisRotationDegree;
36
+ this.largeArcFlag = largeArcFlag;
37
+ this.sweepFlag = sweepFlag;
38
+ this.endPoint = endPoint;
39
+ this.xAxisRotation = this.xAxisRotationDegree * DEG2RAD;
40
+ this.radius = new Vector2(Math.abs(radius.x), Math.abs(radius.y));
41
+ const pAccent = startPoint
42
+ .sub(endPoint)
43
+ .div(2)
44
+ .transform(Matrix2D.fromRotation(-xAxisRotationDegree).domMatrix);
45
+ const L =
46
+ (pAccent.x * pAccent.x) / (radius.x * radius.x) +
47
+ (pAccent.y * pAccent.y) / (radius.y * radius.y);
48
+ if (L > 1) {
49
+ const Lsqrt = Math.sqrt(L);
50
+ radius.x = Lsqrt * radius.x;
51
+ radius.y = Lsqrt * radius.y;
55
52
  }
56
- getAnglePosition(angle) {
57
- return this.radius
58
- .mul(Vector2.fromRadians(angle))
59
- .transform(this.xAxisRotationMatrix)
60
- .add(this.center);
53
+ const cAccent = new Vector2(
54
+ radius.ctg * pAccent.y,
55
+ radius.perpendicular.ctg * pAccent.x,
56
+ ).scale(
57
+ Math.sqrt(
58
+ 1 /
59
+ ((pAccent.x * pAccent.x) / (radius.x * radius.x) +
60
+ (pAccent.y * pAccent.y) / (radius.y * radius.y)) -
61
+ 1,
62
+ ) * (largeArcFlag === sweepFlag ? -1 : 1),
63
+ );
64
+ this.xAxisRotationMatrix =
65
+ Matrix2D.fromRotation(xAxisRotationDegree).domMatrix;
66
+ this.center = cAccent
67
+ .transform(this.xAxisRotationMatrix)
68
+ .add(startPoint.add(endPoint).div(2));
69
+ const q = pAccent.sub(cAccent).div(radius);
70
+ const s = pAccent.scale(-1).sub(cAccent).div(radius);
71
+ this.startAngle = q.radians;
72
+ this.deltaAngle = Vector2.angleBetween(q, s) % (Math.PI * 2);
73
+ if (this.sweepFlag === 0 && this.deltaAngle > 0) {
74
+ this.deltaAngle -= Math.PI * 2;
61
75
  }
62
- getAngleDerivative(angle) {
63
- return new Vector2(-this.radius.x * Math.sin(angle), this.radius.y * Math.cos(angle)).transform(this.xAxisRotationMatrix);
64
- }
65
- draw(context, start, end, move) {
66
- const startAngle = this.startAngle + this.deltaAngle * start;
67
- const endAngle = this.startAngle + this.deltaAngle * end;
68
- const startPos = this.getPoint(start);
69
- const endPos = this.getPoint(end);
70
- if (move)
71
- context.moveTo(startPos.position.x, startPos.position.y);
72
- context.ellipse(this.center.x, this.center.y, this.radius.x, this.radius.y, this.xAxisRotation, startAngle, endAngle, this.sweepFlag === 0);
73
- return [startPos, endPos];
74
- }
75
- getPoint(distance) {
76
- const angle = this.startAngle + distance * this.deltaAngle;
77
- const tangent = this.getAngleDerivative(angle).normalized;
78
- return {
79
- position: distance === 0
80
- ? this.startPoint
81
- : distance === 1
82
- ? this.endPoint
83
- : this.getAnglePosition(angle),
84
- tangent,
85
- normal: tangent.perpendicular,
86
- };
87
- }
88
- get arcLength() {
89
- return this.length;
76
+ if (this.sweepFlag === 1 && this.deltaAngle < 0) {
77
+ this.deltaAngle += Math.PI * 2;
90
78
  }
79
+ ArcSegment.el.setAttribute(
80
+ 'd',
81
+ `M ${this.startPoint.x} ${this.startPoint.y} A ${this.radius.x} ${this.radius.y} ${this.xAxisRotationDegree} ${this.largeArcFlag} ${this.sweepFlag} ${this.endPoint.x} ${this.endPoint.y}`,
82
+ );
83
+ this.length = ArcSegment.el.getTotalLength();
84
+ const bbox = new BBox(ArcSegment.el.getBBox());
85
+ this.points = [bbox.topLeft, bbox.bottomRight];
86
+ }
87
+ getAnglePosition(angle) {
88
+ return this.radius
89
+ .mul(Vector2.fromRadians(angle))
90
+ .transform(this.xAxisRotationMatrix)
91
+ .add(this.center);
92
+ }
93
+ getAngleDerivative(angle) {
94
+ return new Vector2(
95
+ -this.radius.x * Math.sin(angle),
96
+ this.radius.y * Math.cos(angle),
97
+ ).transform(this.xAxisRotationMatrix);
98
+ }
99
+ draw(context, start, end, move) {
100
+ const startAngle = this.startAngle + this.deltaAngle * start;
101
+ const endAngle = this.startAngle + this.deltaAngle * end;
102
+ const startPos = this.getPoint(start);
103
+ const endPos = this.getPoint(end);
104
+ if (move) context.moveTo(startPos.position.x, startPos.position.y);
105
+ context.ellipse(
106
+ this.center.x,
107
+ this.center.y,
108
+ this.radius.x,
109
+ this.radius.y,
110
+ this.xAxisRotation,
111
+ startAngle,
112
+ endAngle,
113
+ this.sweepFlag === 0,
114
+ );
115
+ return [startPos, endPos];
116
+ }
117
+ getPoint(distance) {
118
+ const angle = this.startAngle + distance * this.deltaAngle;
119
+ const tangent = this.getAngleDerivative(angle).normalized;
120
+ return {
121
+ position:
122
+ distance === 0
123
+ ? this.startPoint
124
+ : distance === 1
125
+ ? this.endPoint
126
+ : this.getAnglePosition(angle),
127
+ tangent,
128
+ normal: tangent.perpendicular,
129
+ };
130
+ }
131
+ get arcLength() {
132
+ return this.length;
133
+ }
91
134
  }
92
- __decorate([
135
+ __decorate(
136
+ [
93
137
  lazy(() => {
94
- const root = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
95
- const el = document.createElementNS('http://www.w3.org/2000/svg', 'path');
96
- root.appendChild(el);
97
- View2D.shadowRoot.appendChild(root);
98
- return el;
99
- })
100
- ], ArcSegment, "el", void 0);
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJjU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3VydmVzL0FyY1NlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFbEMsTUFBTSxPQUFPLFVBQVcsU0FBUSxPQUFPO0lBa0JyQyxZQUNrQixVQUFtQixFQUNuQixNQUFlLEVBQ2YsbUJBQTJCLEVBQzNCLFlBQW9CLEVBQ3BCLFNBQWlCLEVBQ2pCLFFBQWlCO1FBRWpDLEtBQUssRUFBRSxDQUFDO1FBUFEsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2Ysd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFRO1FBQzNCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUlqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sT0FBTyxHQUFHLFVBQVU7YUFDdkIsR0FBRyxDQUFDLFFBQVEsQ0FBQzthQUNiLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDTixTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLG1CQUFt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
138
+ const root = document.createElementNS(
139
+ 'http://www.w3.org/2000/svg',
140
+ 'svg',
141
+ );
142
+ const el = document.createElementNS('http://www.w3.org/2000/svg', 'path');
143
+ root.appendChild(el);
144
+ View2D.shadowRoot.appendChild(root);
145
+ return el;
146
+ }),
147
+ ],
148
+ ArcSegment,
149
+ 'el',
150
+ void 0,
151
+ );
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJjU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3VydmVzL0FyY1NlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTVDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFFbEMsTUFBTSxPQUFPLFVBQVcsU0FBUSxPQUFPO0lBa0JyQyxZQUNrQixVQUFtQixFQUNuQixNQUFlLEVBQ2YsbUJBQTJCLEVBQzNCLFlBQW9CLEVBQ3BCLFNBQWlCLEVBQ2pCLFFBQWlCO1FBRWpDLEtBQUssRUFBRSxDQUFDO1FBUFEsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2Ysd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFRO1FBQzNCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUlqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sT0FBTyxHQUFHLFVBQVU7YUFDdkIsR0FBRyxDQUFDLFFBQVEsQ0FBQzthQUNiLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDTixTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLG1CQUFt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
@@ -1,18 +1,28 @@
1
- import { Vector2 } from '@revideo/core';
2
- import { CurvePoint } from './CurvePoint';
3
- import { Segment } from './Segment';
1
+ import {Vector2} from '@revideo/core';
2
+ import {CurvePoint} from './CurvePoint';
3
+ import {Segment} from './Segment';
4
4
  export declare class CircleSegment extends Segment {
5
- private center;
6
- private radius;
7
- private from;
8
- private to;
9
- private counter;
10
- private readonly length;
11
- private readonly angle;
12
- readonly points: Vector2[];
13
- constructor(center: Vector2, radius: number, from: Vector2, to: Vector2, counter: boolean);
14
- get arcLength(): number;
15
- draw(context: CanvasRenderingContext2D | Path2D, from: number, to: number): [CurvePoint, CurvePoint];
16
- getPoint(distance: number): CurvePoint;
5
+ private center;
6
+ private radius;
7
+ private from;
8
+ private to;
9
+ private counter;
10
+ private readonly length;
11
+ private readonly angle;
12
+ readonly points: Vector2[];
13
+ constructor(
14
+ center: Vector2,
15
+ radius: number,
16
+ from: Vector2,
17
+ to: Vector2,
18
+ counter: boolean,
19
+ );
20
+ get arcLength(): number;
21
+ draw(
22
+ context: CanvasRenderingContext2D | Path2D,
23
+ from: number,
24
+ to: number,
25
+ ): [CurvePoint, CurvePoint];
26
+ getPoint(distance: number): CurvePoint;
17
27
  }
18
- //# sourceMappingURL=CircleSegment.d.ts.map
28
+ //# sourceMappingURL=CircleSegment.d.ts.map
@@ -1,52 +1,59 @@
1
- import { Vector2, clamp } from '@revideo/core';
2
- import { Segment } from './Segment';
1
+ import {Vector2, clamp} from '@revideo/core';
2
+ import {Segment} from './Segment';
3
3
  export class CircleSegment extends Segment {
4
- constructor(center, radius, from, to, counter) {
5
- super();
6
- this.center = center;
7
- this.radius = radius;
8
- this.from = from;
9
- this.to = to;
10
- this.counter = counter;
11
- this.angle = Math.acos(clamp(-1, 1, from.dot(to)));
12
- this.length = Math.abs(this.angle * radius);
13
- const edgeVector = new Vector2(1, 1).scale(radius);
14
- this.points = [center.sub(edgeVector), center.add(edgeVector)];
15
- }
16
- get arcLength() {
17
- return this.length;
18
- }
19
- draw(context, from, to) {
20
- const counterFactor = this.counter ? -1 : 1;
21
- const startAngle = this.from.radians + from * this.angle * counterFactor;
22
- const endAngle = this.to.radians - (1 - to) * this.angle * counterFactor;
23
- if (Math.abs(this.angle) > 0.0001) {
24
- context.arc(this.center.x, this.center.y, this.radius, startAngle, endAngle, this.counter);
25
- }
26
- const startNormal = Vector2.fromRadians(startAngle);
27
- const endNormal = Vector2.fromRadians(endAngle);
28
- return [
29
- {
30
- position: this.center.add(startNormal.scale(this.radius)),
31
- tangent: this.counter ? startNormal : startNormal.flipped,
32
- normal: this.counter ? startNormal.flipped : startNormal,
33
- },
34
- {
35
- position: this.center.add(endNormal.scale(this.radius)),
36
- tangent: this.counter ? endNormal.flipped : endNormal,
37
- normal: this.counter ? endNormal.flipped : endNormal,
38
- },
39
- ];
40
- }
41
- getPoint(distance) {
42
- const counterFactor = this.counter ? -1 : 1;
43
- const angle = this.from.radians + distance * this.angle * counterFactor;
44
- const normal = Vector2.fromRadians(angle);
45
- return {
46
- position: this.center.add(normal.scale(this.radius)),
47
- tangent: this.counter ? normal : normal.flipped,
48
- normal: this.counter ? normal : normal.flipped,
49
- };
4
+ constructor(center, radius, from, to, counter) {
5
+ super();
6
+ this.center = center;
7
+ this.radius = radius;
8
+ this.from = from;
9
+ this.to = to;
10
+ this.counter = counter;
11
+ this.angle = Math.acos(clamp(-1, 1, from.dot(to)));
12
+ this.length = Math.abs(this.angle * radius);
13
+ const edgeVector = new Vector2(1, 1).scale(radius);
14
+ this.points = [center.sub(edgeVector), center.add(edgeVector)];
15
+ }
16
+ get arcLength() {
17
+ return this.length;
18
+ }
19
+ draw(context, from, to) {
20
+ const counterFactor = this.counter ? -1 : 1;
21
+ const startAngle = this.from.radians + from * this.angle * counterFactor;
22
+ const endAngle = this.to.radians - (1 - to) * this.angle * counterFactor;
23
+ if (Math.abs(this.angle) > 0.0001) {
24
+ context.arc(
25
+ this.center.x,
26
+ this.center.y,
27
+ this.radius,
28
+ startAngle,
29
+ endAngle,
30
+ this.counter,
31
+ );
50
32
  }
33
+ const startNormal = Vector2.fromRadians(startAngle);
34
+ const endNormal = Vector2.fromRadians(endAngle);
35
+ return [
36
+ {
37
+ position: this.center.add(startNormal.scale(this.radius)),
38
+ tangent: this.counter ? startNormal : startNormal.flipped,
39
+ normal: this.counter ? startNormal.flipped : startNormal,
40
+ },
41
+ {
42
+ position: this.center.add(endNormal.scale(this.radius)),
43
+ tangent: this.counter ? endNormal.flipped : endNormal,
44
+ normal: this.counter ? endNormal.flipped : endNormal,
45
+ },
46
+ ];
47
+ }
48
+ getPoint(distance) {
49
+ const counterFactor = this.counter ? -1 : 1;
50
+ const angle = this.from.radians + distance * this.angle * counterFactor;
51
+ const normal = Vector2.fromRadians(angle);
52
+ return {
53
+ position: this.center.add(normal.scale(this.radius)),
54
+ tangent: this.counter ? normal : normal.flipped,
55
+ normal: this.counter ? normal : normal.flipped,
56
+ };
57
+ }
51
58
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2lyY2xlU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3VydmVzL0NpcmNsZVNlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxNQUFNLE9BQU8sYUFBYyxTQUFRLE9BQU87SUFLeEMsWUFDVSxNQUFlLEVBQ2YsTUFBYyxFQUNkLElBQWEsRUFDYixFQUFXLEVBQ1gsT0FBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFOQSxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVM7UUFDYixPQUFFLEdBQUYsRUFBRSxDQUFTO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUd4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFD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
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2lyY2xlU2VnbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY3VydmVzL0NpcmNsZVNlZ21lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVsQyxNQUFNLE9BQU8sYUFBYyxTQUFRLE9BQU87SUFLeEMsWUFDVSxNQUFlLEVBQ2YsTUFBYyxFQUNkLElBQWEsRUFDYixFQUFXLEVBQ1gsT0FBZ0I7UUFFeEIsS0FBSyxFQUFFLENBQUM7UUFOQSxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVM7UUFDYixPQUFFLEdBQUYsRUFBRSxDQUFTO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUd4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztRQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFD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
@@ -1,18 +1,23 @@
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 cubic Bézier curve.
5
5
  */
6
6
  export declare class CubicBezierSegment extends PolynomialSegment {
7
- readonly p0: Vector2;
8
- readonly p1: Vector2;
9
- readonly p2: Vector2;
10
- readonly p3: Vector2;
11
- private static el;
12
- get points(): Vector2[];
13
- constructor(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2);
14
- split(t: number): [PolynomialSegment, PolynomialSegment];
15
- protected doDraw(context: CanvasRenderingContext2D | Path2D): void;
16
- protected static getLength(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2): number;
7
+ readonly p0: Vector2;
8
+ readonly p1: Vector2;
9
+ readonly p2: Vector2;
10
+ readonly p3: Vector2;
11
+ private static el;
12
+ get points(): Vector2[];
13
+ constructor(p0: Vector2, p1: Vector2, p2: Vector2, p3: Vector2);
14
+ split(t: number): [PolynomialSegment, PolynomialSegment];
15
+ protected doDraw(context: CanvasRenderingContext2D | Path2D): void;
16
+ protected static getLength(
17
+ p0: Vector2,
18
+ p1: Vector2,
19
+ p2: Vector2,
20
+ p3: Vector2,
21
+ ): number;
17
22
  }
18
- //# sourceMappingURL=CubicBezierSegment.d.ts.map
23
+ //# sourceMappingURL=CubicBezierSegment.d.ts.map