Skia.Path (Skia v0.1.0)

Copy Markdown View Source

Immutable path command list for batched path rendering.

Summary

Types

segment()

@type segment() ::
  {:move_to, number(), number()}
  | {:line_to, number(), number()}
  | {:quad_to, number(), number(), number(), number()}
  | {:conic_to, number(), number(), number(), number(), number()}
  | {:cubic_to, number(), number(), number(), number(), number(), number()}
  | {:r_move_to, number(), number()}
  | {:r_line_to, number(), number()}
  | {:r_quad_to, number(), number(), number(), number()}
  | {:r_conic_to, number(), number(), number(), number(), number()}
  | {:r_cubic_to, number(), number(), number(), number(), number(), number()}
  | {:arc_to, number(), number(), number(), number(), number(),
     {number(), boolean()}}
  | {:r_arc_to, number(), number(), number(),
     {boolean(), atom(), number(), number()}}
  | {:rrect, number(), number(), number(), number(), number(), number()}
  | :close

t()

@type t() :: %Skia.Path{segments: [segment()], svg: String.t() | nil}

Functions

arc_to(path, arg, start_degrees, sweep_degrees, opts \\ [])

@spec arc_to(t(), tuple(), number(), number(), keyword()) :: t()

close(path)

@spec close(t()) :: t()

conic_to(path, cx, cy, x, y, weight)

@spec conic_to(t(), number(), number(), number(), number(), number()) :: t()

cubic_to(path, c1x, c1y, c2x, c2y, x, y)

@spec cubic_to(t(), number(), number(), number(), number(), number(), number()) :: t()

from_svg(svg)

@spec from_svg(String.t()) :: t()

line_to(path, x, y)

@spec line_to(t(), number(), number()) :: t()

move_to(path, x, y)

@spec move_to(t(), number(), number()) :: t()

new()

@spec new() :: t()

quad_to(path, cx, cy, x, y)

@spec quad_to(t(), number(), number(), number(), number()) :: t()

r_arc_to(path, arg1, x_axis_rotate, large_arc, sweep, arg2)

@spec r_arc_to(
  t(),
  {number(), number()},
  number(),
  boolean(),
  atom(),
  {number(), number()}
) :: t()

r_conic_to(path, dcx, dcy, dx, dy, weight)

@spec r_conic_to(t(), number(), number(), number(), number(), number()) :: t()

r_cubic_to(path, dc1x, dc1y, dc2x, dc2y, dx, dy)

@spec r_cubic_to(t(), number(), number(), number(), number(), number(), number()) ::
  t()

r_line_to(path, dx, dy)

@spec r_line_to(t(), number(), number()) :: t()

r_move_to(path, dx, dy)

@spec r_move_to(t(), number(), number()) :: t()

r_quad_to(path, dcx, dcy, dx, dy)

@spec r_quad_to(t(), number(), number(), number(), number()) :: t()

rrect(path, arg, radius)

@spec rrect(t(), tuple(), number() | {number(), number()}) :: t()

segments(path)

@spec segments(t()) :: [segment()]

to_svg(path)

@spec to_svg(t()) :: {:ok, String.t()} | {:error, atom()}