wccerty/moonbit-artboard/src/shapes does not have a README file

    BlendMode

    pub(all) enum BlendMode {
    Normal
    Multiply
    Screen
    Overlay
    Darken
    Lighten
    ColorDodge
    ColorBurn
    SoftLight
    HardLight
    Difference
    Exclusion
    } derive(Eq,
    Debug
    )

    impl Show for BlendMode

    BlendMode::from_int

    fn BlendMode::from_int(v : Int) -> BlendMode

    BooleanOperationKind

    pub(all) enum BooleanOperationKind {
    Union
    Difference
    Intersection
    Xor
    } derive(Eq,
    Debug
    )

    BooleanPathNode

    pub(all) struct BooleanPathNode {
    operation : BooleanOperationKind
    path_a : Path
    path_b : Path
    } derive(Eq,
    Debug
    )

    EllipseData

    pub(all) struct EllipseData {
    radius_x : Double
    radius_y : Double
    } derive(Eq,
    Debug
    )

    EllipseData::new

    fn EllipseData::new(radius_x : Double, radius_y : Double) -> EllipseData

    GradientMesh

    pub(all) struct GradientMesh {
    columns : Int
    rows : Int
    patches : Array[MeshPatch]
    } derive(Eq,
    Debug
    )

    GradientMesh::create_grid

    fn GradientMesh::create_grid(cols : Int, rows : Int, w : Double, h : Double) -> GradientMesh

    GradientStop

    pub(all) struct GradientStop {
    offset : Double
    color : RGBA
    } derive(Eq,
    Debug
    )

    GradientStop::new

    fn GradientStop::new(offset : Double, color : RGBA) -> GradientStop

    MeshPatch

    pub(all) struct MeshPatch {
    v00 : MeshVertex
    v10 : MeshVertex
    v01 : MeshVertex
    v11 : MeshVertex
    } derive(Eq,
    Debug
    )

    MeshPatch::sample

    fn MeshPatch::sample(self : MeshPatch, u : Double, v : Double) -> RGBA

    MeshVertex

    pub(all) struct MeshVertex {
    position :
    Vec2

    color : RGBA
    } derive(Eq,
    Debug
    )

    Path

    pub struct Path {
    segments : Array[PathSegment]
    } derive(Eq,
    Debug
    )

    impl Show for Path

    Path::empty

    fn Path::empty() -> Path

    Path::new

    fn Path::new(segments : Array[PathSegment]) -> Path

    PathBuilder

    pub struct PathBuilder {
    segments : Array[PathSegment]
    } derive(Eq,
    Debug
    )

    PathBuilder::arc_to

    fn PathBuilder::arc_to(self : PathBuilder, rx : Double, ry : Double, rot : Double, large : Bool, sweep : Bool, end :
    Vec2
    ) -> PathBuilder

    PathBuilder::build

    fn PathBuilder::build(self : PathBuilder) -> Path

    PathBuilder::close_path

    fn PathBuilder::close_path(self : PathBuilder) -> PathBuilder

    PathBuilder::new

    PathMeasurement

    pub(all) struct PathMeasurement {
    length : Double
    area : Double
    centroid :
    Vec2

    bounds :
    Rect2D

    subpath_count : Int
    point_count : Int
    } derive(Eq,
    Debug
    )

    PathTokenizer

    type PathTokenizer derive(
    Debug
    )

    PolygonData

    pub(all) struct PolygonData {
    sides : Int
    radius : Double
    } derive(Eq,
    Debug
    )

    PolygonData::new

    fn PolygonData::new(sides : Int, radius : Double) -> PolygonData

    PolylineData

    pub(all) struct PolylineData {
    points : Array[
    Vec2
    ]
    closed : Bool
    } derive(Eq,
    Debug
    )

    PolylineData::new

    RGBA

    pub struct RGBA {
    r : Double
    g : Double
    b : Double
    a : Double
    } derive(Eq,
    Debug
    )

    impl Show for RGBA

    RGBA::black

    fn RGBA::black() -> RGBA

    RGBA::blend

    fn RGBA::blend(self : RGBA, overlay : RGBA) -> RGBA

    RGBA::blue

    fn RGBA::blue() -> RGBA

    RGBA::from_bytes

    fn RGBA::from_bytes(r : Int, g : Int, b : Int, a : Double) -> RGBA

    RGBA::from_hex

    fn RGBA::from_hex(hex_str : String) -> RGBA

    RGBA::green

    fn RGBA::green() -> RGBA

    RGBA::lerp

    fn RGBA::lerp(self : RGBA, target : RGBA, t : Double) -> RGBA

    RGBA::new

    fn RGBA::new(r : Double, g : Double, b : Double, a : Double) -> RGBA

    RGBA::red

    fn RGBA::red() -> RGBA

    RGBA::to_hex

    fn RGBA::to_hex(self : RGBA) -> String

    RGBA::transparent

    fn RGBA::transparent() -> RGBA

    RGBA::white

    fn RGBA::white() -> RGBA

    RectData

    pub(all) struct RectData {
    width : Double
    height : Double
    rx : Double
    ry : Double
    } derive(Eq,
    Debug
    )

    RectData::new

    fn RectData::new(width : Double, height : Double, rx : Double, ry : Double) -> RectData

    Shadow

    pub(all) struct Shadow {
    offset_x : Double
    offset_y : Double
    blur : Double
    color : RGBA
    } derive(Eq,
    Debug
    )

    impl Show for Shadow

    Shadow::new

    fn Shadow::new(offset_x : Double, offset_y : Double, blur : Double, color : RGBA) -> Shadow

    ShapeGeometry

    pub(all) enum ShapeGeometry {
    Rectangle(RectData)
    Ellipse(EllipseData)
    Polygon(PolygonData)
    Star(StarData)
    Line(LineData)
    Polyline(PolylineData)
    Path(Path)
    } derive(Eq,
    Debug
    )

    ShapeGeometry::ellipse

    fn ShapeGeometry::ellipse(rx : Double, ry : Double) -> ShapeGeometry

    ShapeGeometry::measure

    fn ShapeGeometry::measure(self : ShapeGeometry, tolerance : Double, max_segments : Int) -> PathMeasurement

    ShapeGeometry::path

    ShapeGeometry::polygon

    fn ShapeGeometry::polygon(sides : Int, radius : Double) -> ShapeGeometry

    ShapeGeometry::polyline

    ShapeGeometry::rectangle

    fn ShapeGeometry::rectangle(w : Double, h : Double, rx : Double, ry : Double) -> ShapeGeometry

    ShapeGeometry::star

    fn ShapeGeometry::star(pts : Int, inner : Double, outer : Double) -> ShapeGeometry

    ShapeGeometry::to_path

    fn ShapeGeometry::to_path(self : ShapeGeometry) -> Path

    StarData

    pub(all) struct StarData {
    points : Int
    inner_radius : Double
    outer_radius : Double
    } derive(Eq,
    Debug
    )

    StarData::new

    fn StarData::new(points : Int, inner_radius : Double, outer_radius : Double) -> StarData

    Stroke

    pub(all) struct Stroke {
    color : RGBA
    width : Double
    cap : StrokeCap
    join : StrokeJoin
    miter_limit : Double
    dash_array : Array[Double]
    dash_offset : Double
    } derive(Eq,
    Debug
    )

    impl Show for Stroke

    Stroke::default

    fn Stroke::default() -> Stroke

    Stroke::new

    fn Stroke::new(color : RGBA, width : Double, cap : StrokeCap, join : StrokeJoin) -> Stroke

    StrokeCap

    pub(all) enum StrokeCap {
    Butt
    Round
    Square
    } derive(Eq,
    Debug
    )

    impl Show for StrokeCap

    StrokeJoin

    pub(all) enum StrokeJoin {
    Miter
    Round
    Bevel
    } derive(Eq,
    Debug
    )

    impl Show for StrokeJoin

    Style

    pub(all) struct Style {
    fill : Fill
    stroke : Stroke?
    opacity : Double
    blend_mode : BlendMode
    shadow : Shadow?
    } derive(Eq,
    Debug
    )

    impl Show for Style

    Style::default

    fn Style::default() -> Style

    TextLayoutResult

    pub(all) struct TextLayoutResult {
    lines : Array[TextLine]
    total_width : Double
    total_height : Double
    } derive(Eq,
    Debug
    )

    TextLine

    pub(all) struct TextLine {
    text : String
    width : Double
    height : Double
    baseline : Double
    } derive(Eq,
    Debug
    )

    combine_paths

    fn combine_paths(op : BooleanOperationKind, a : Path, b : Path) -> Path

    compute_text_layout

    fn compute_text_layout(text : String, font_size : Double, max_width : Double, line_height_multiplier : Double) -> TextLayoutResult

    flatten_path

    fn flatten_path(path : Path, tolerance : Double, max_segments : Int) -> Array[Array[
    Vec2
    ]]

    format_svg_path

    fn format_svg_path(path : Path) -> String

    geometry_contains_point

    fn geometry_contains_point(geometry : ShapeGeometry, point :
    Vec2
    , tolerance : Double) -> Bool

    measure_path

    fn measure_path(path : Path, tolerance : Double, max_segments : Int) -> PathMeasurement

    parse_svg_path

    fn parse_svg_path(path_str : String) -> Path

    path_contains_point

    fn path_contains_point(path : Path, point :
    Vec2
    , tolerance : Double) -> Bool

    path_distance_to_point

    fn path_distance_to_point(path : Path, point :
    Vec2
    , tolerance : Double) -> Double

    path_is_closed

    fn path_is_closed(path : Path, tolerance : Double) -> Bool

    point_at_length

    fn point_at_length(path : Path, distance : Double, tolerance : Double, max_segments : Int) ->
    Vec2

    render_gradient_mesh_svg

    fn render_gradient_mesh_svg(mesh : GradientMesh) -> String

    render_mesh_patch_to_svg_path

    fn render_mesh_patch_to_svg_path(patch : MeshPatch) -> String

    resample_path

    fn resample_path(path : Path, spacing : Double, tolerance : Double, max_segments : Int) -> Array[
    Vec2
    ]

    simplify_polyline

    tangent_at_length

    fn tangent_at_length(path : Path, distance : Double, tolerance : Double, max_segments : Int) ->
    Vec2