PathProxy.d.ts 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import BoundingRect from './BoundingRect';
  2. interface ExtendedCanvasRenderingContext2D extends CanvasRenderingContext2D {
  3. dpr?: number;
  4. }
  5. export declare function normalizeArcAngles(angles: number[], anticlockwise: boolean): void;
  6. export default class PathProxy {
  7. dpr: number;
  8. data: number[] | Float32Array;
  9. private _version;
  10. private _saveData;
  11. private _pendingPtX;
  12. private _pendingPtY;
  13. private _pendingPtDist;
  14. private _ctx;
  15. private _xi;
  16. private _yi;
  17. private _x0;
  18. private _y0;
  19. private _len;
  20. private _pathSegLen;
  21. private _pathLen;
  22. private _ux;
  23. private _uy;
  24. private _lineDash;
  25. private _needsDash;
  26. private _dashOffset;
  27. private _dashIdx;
  28. private _dashSum;
  29. static CMD: {
  30. M: number;
  31. L: number;
  32. C: number;
  33. Q: number;
  34. A: number;
  35. Z: number;
  36. R: number;
  37. };
  38. constructor(notSaveData?: boolean);
  39. increaseVersion(): void;
  40. getVersion(): number;
  41. setScale(sx: number, sy: number, segmentIgnoreThreshold?: number): void;
  42. setDPR(dpr: number): void;
  43. setContext(ctx: ExtendedCanvasRenderingContext2D): void;
  44. getContext(): ExtendedCanvasRenderingContext2D;
  45. beginPath(): this;
  46. reset(): void;
  47. moveTo(x: number, y: number): this;
  48. lineTo(x: number, y: number): this;
  49. bezierCurveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): this;
  50. quadraticCurveTo(x1: number, y1: number, x2: number, y2: number): this;
  51. arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise?: boolean): this;
  52. arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): this;
  53. rect(x: number, y: number, w: number, h: number): this;
  54. closePath(): this;
  55. fill(ctx: CanvasRenderingContext2D): void;
  56. stroke(ctx: CanvasRenderingContext2D): void;
  57. setLineDash(lineDash: number[] | false): this;
  58. setLineDashOffset(offset: number): this;
  59. len(): number;
  60. setData(data: Float32Array | number[]): void;
  61. appendPath(path: PathProxy | PathProxy[]): void;
  62. addData(cmd: number, a?: number, b?: number, c?: number, d?: number, e?: number, f?: number, g?: number, h?: number): void;
  63. private _drawPendingPt;
  64. private _expandData;
  65. private _dashedLineTo;
  66. private _dashedBezierTo;
  67. private _dashedQuadraticTo;
  68. toStatic(): void;
  69. getBoundingRect(): BoundingRect;
  70. private _calculateLength;
  71. rebuildPath(ctx: PathRebuilder, percent: number): void;
  72. clone(): PathProxy;
  73. private static initDefaultProps;
  74. }
  75. export interface PathRebuilder {
  76. moveTo(x: number, y: number): void;
  77. lineTo(x: number, y: number): void;
  78. bezierCurveTo(x: number, y: number, x2: number, y2: number, x3: number, y3: number): void;
  79. quadraticCurveTo(x: number, y: number, x2: number, y2: number): void;
  80. arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise: boolean): void;
  81. ellipse(cx: number, cy: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise: boolean): void;
  82. rect(x: number, y: number, width: number, height: number): void;
  83. closePath(): void;
  84. }
  85. export {};