[{"name":"Geometry.Svg","comment":" Draw 2D `elm-geometry` values as SVG.\r\n\r\n\r\n## Reading this documentation\r\n\r\nFor the examples, assume that the following imports are present:\r\n\r\n    import Svg exposing (Svg)\r\n    import Svg.Attributes as Attributes\r\n    import Geometry.Svg as Svg\r\n    import Angle\r\n    import Pixels\r\n\r\nAlso assume that any necessary `elm-geometry` modules/types have been imported\r\nusing the following format:\r\n\r\n    import Point2d exposing (Point2d)\r\n\r\nAll examples use a Y-up coordinate system instead of SVG's Y-down (window)\r\ncoordinate system; they were all rendered with a final [`relativeTo`](#relativeTo)\r\ncall to flip the example 'upside down' for display.\r\n\r\n\r\n# Geometry\r\n\r\nThese functions turn `elm-geometry` 2D values into SVG elements with geometric\r\nattributes such as `points` and `transform` set appropriately. Each function\r\nalso accepts a list of additional SVG attributes such as `fill` or `stroke` that\r\nshould be added to the resulting element.\r\n\r\n@docs lineSegment2d, triangle2d, polyline2d, polygon2d, rectangle2d, arc2d, ellipticalArc2d, circle2d, ellipse2d, quadraticSpline2d, cubicSpline2d, boundingBox2d\r\n\r\n\r\n# Transformations\r\n\r\nThese functions allow you to use all the normal `elm-geometry` 2D transformations on\r\narbitrary fragments of SVG. For example,\r\n\r\n    Svg.mirrorAcross Axis2d.x\r\n        (Svg.lineSegment2d [] lineSegment)\r\n\r\ndraws a line segment as SVG and then mirrors that SVG fragment. This is visually\r\nthe same as\r\n\r\n    Svg.lineSegment2d []\r\n        (LineSegment2d.mirrorAcross Axis2d.x lineSegment)\r\n\r\nwhich instead mirrors the line segment first and then draws the mirrored line\r\nsegment as SVG.\r\n\r\nIn the above example only a single SVG element was transformed, but all of these\r\ntransformation functions work equally well on arbitrarily complex fragments of\r\nSVG such as nested groups of elements of different types:\r\n\r\n    Svg.rotateAround Point2d.origin\r\n        (Angle.degrees 30)\r\n        (Svg.g [ Attributes.stroke \"blue\" ]\r\n            [ Svg.lineSegment2d [] lineSegment\r\n            , Svg.circle2d [] someCircle\r\n            , Svg.g [ Attributes.fill \"orange\" ]\r\n                [ Svg.triangle2d [] firstTriangle\r\n                , Svg.triangle2d [] secondTriangle\r\n                ]\r\n            ]\r\n        )\r\n\r\nIf the transformation changes frequently (an animated rotation angle, for\r\nexample) while the geometry itself remains constant, using an SVG transformation\r\ncan be more efficient since the geometry itself does not have to be recreated\r\n(the SVG virtual DOM only has to update a transformation matrix).\r\n\r\n@docs scaleAbout, rotateAround, translateBy, mirrorAcross\r\n\r\n\r\n# Coordinate transformations\r\n\r\nSimilar to the above transformations, these functions allow `elm-geometry`\r\ncoordinate conversion transformations to be applied to arbitrary SVG elements.\r\n\r\n@docs relativeTo, placeIn\r\n\r\n","unions":[],"aliases":[],"values":[{"name":"arc2d","comment":" Draw an `Arc2d` as an SVG `<path>` with the given attributes.\r\n\r\n![Arc](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/arc2d.svg)\r\n\r\n    arc : Svg msg\r\n    arc =\r\n        Svg.arc2d\r\n            [ Attributes.stroke \"blue\"\r\n            , Attributes.strokeWidth \"5\"\r\n            ]\r\n            (Point2d.pixels 150 50\r\n                |> Arc2d.sweptAround (Point2d.pixels 100 100)\r\n                    (Angle.degrees 90)\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> Arc2d.Arc2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"boundingBox2d","comment":" Draw a bounding box as an SVG `<rect>` with the given attributes.\r\n","type":"List.List (Svg.Attribute msg) -> BoundingBox2d.BoundingBox2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"circle2d","comment":" Draw a `Circle2d` as an SVG `<circle>` with the given attributes.\r\n\r\n![Circle](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/circle2d.svg)\r\n\r\n    circle : Svg msg\r\n    circle =\r\n        Svg.circle2d\r\n            [ Attributes.fill \"orange\"\r\n            , Attributes.stroke \"blue\"\r\n            , Attributes.strokeWidth \"2\"\r\n            ]\r\n            (Circle2d.withRadius (Pixels.pixels 10)\r\n                (Point2d.pixels 150 150)\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> Circle2d.Circle2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"cubicSpline2d","comment":" Draw a cubic spline as an SVG `<path>` with the given attributes.\r\n\r\n![Cubic spline](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/cubicSpline2d.svg)\r\n\r\n    cubicSpline : Svg msg\r\n    cubicSpline =\r\n        let\r\n            firstControlPoint =\r\n                Point2d.pixels 50 50\r\n\r\n            secondControlPoint =\r\n                Point2d.pixels 100 150\r\n\r\n            thirdControlPoint =\r\n                Point2d.pixels 150 25\r\n\r\n            fourthControlPoint =\r\n                Point2d.pixels 200 125\r\n\r\n            spline =\r\n                CubicSpline2d.fromControlPoints\r\n                    firstControlPoint\r\n                    secondControlPoint\r\n                    thirdControlPoint\r\n                    fourthControlPoint\r\n\r\n            controlPoints =\r\n                [ firstControlPoint\r\n                , secondControlPoint\r\n                , thirdControlPoint\r\n                , fourthControlPoint\r\n                ]\r\n\r\n            drawPoint point =\r\n                Svg.circle2d [] <|\r\n                    Circle2d.withRadius (Pixels.pixels 3)\r\n                        point\r\n        in\r\n        Svg.g [ Attributes.stroke \"blue\" ]\r\n            [ Svg.cubicSpline2d\r\n                [ Attributes.strokeWidth \"3\"\r\n                , Attributes.strokeLinecap \"round\"\r\n                , Attributes.fill \"none\"\r\n                ]\r\n                spline\r\n            , Svg.polyline2d\r\n                [ Attributes.strokeWidth \"1\"\r\n                , Attributes.fill \"none\"\r\n                , Attributes.strokeDasharray \"3 3\"\r\n                ]\r\n                (Polyline2d.fromVertices controlPoints)\r\n            , Svg.g [ Attributes.fill \"white\" ]\r\n                (List.map drawPoint controlPoints)\r\n            ]\r\n\r\n","type":"List.List (Svg.Attribute msg) -> CubicSpline2d.CubicSpline2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"ellipse2d","comment":" Draw an `Ellipse2d` as an SVG `<ellipse>` with the given attributes.\r\n\r\n![Ellipse](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/ellipse2d.svg)\r\n\r\n    ellipse : Svg msg\r\n    ellipse =\r\n        Svg.ellipse2d\r\n            [ Attributes.fill \"orange\"\r\n            , Attributes.stroke \"blue\"\r\n            , Attributes.strokeWidth \"2\"\r\n            ]\r\n            (Ellipse2d.with\r\n                { centerPoint = Point2d.pixels 150 150\r\n                , xDirection = Direction2d.degrees -30\r\n                , xRadius = Pixels.pixels 60\r\n                , yRadius = Pixels.pixels 30\r\n                }\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> Ellipse2d.Ellipse2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"ellipticalArc2d","comment":" Draw an `EllipticalArc2d` as an SVG `<path>` with the given attributes.\r\n\r\n![Elliptical arc](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/ellipticalArc2d.svg)\r\n\r\n    ellipticalArc : Svg msg\r\n    ellipticalArc =\r\n        Svg.ellipticalArc2d\r\n            [ Attributes.stroke \"blue\"\r\n            , Attributes.fill \"none\"\r\n            , Attributes.strokeWidth \"5\"\r\n            , Attributes.strokeLinecap \"round\"\r\n            ]\r\n            (EllipticalArc2d.with\r\n                { centerPoint = Point2d.pixels 100 10\r\n                , xDirection = Direction2d.x\r\n                , xRadius = Pixels.pixels 50\r\n                , yRadius = Pixels.pixels 100\r\n                , startAngle = Angle.degrees 0\r\n                , sweptAngle = Angle.degrees 180\r\n                }\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> EllipticalArc2d.EllipticalArc2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"lineSegment2d","comment":" Draw a `LineSegment2d` as an SVG `<polyline>` with the given attributes.\r\n\r\n![Line segment](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/lineSegment2d.svg)\r\n\r\n    lineSegment : Svg msg\r\n    lineSegment =\r\n        Svg.lineSegment2d\r\n            [ Attributes.stroke \"blue\"\r\n            , Attributes.strokeWidth \"5\"\r\n            ]\r\n            (LineSegment2d.from\r\n                (Point2d.pixels 100 100)\r\n                (Point2d.pixels 200 200)\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> LineSegment2d.LineSegment2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"mirrorAcross","comment":" Mirror arbitrary SVG across a given axis.\r\n\r\n![Mirrored polygons](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/mirrorAcross.svg)\r\n\r\n    mirrored : Svg msg\r\n    mirrored =\r\n        let\r\n            horizontalAxis =\r\n                Axis2d.through (Point2d.pixels 0 220)\r\n                    Direction2d.x\r\n\r\n            horizontalSegment =\r\n                LineSegment2d.along horizontalAxis\r\n                    (Pixels.pixels 50)\r\n                    (Pixels.pixels 250)\r\n\r\n            angledAxis =\r\n                Axis2d.through (Point2d.pixels 0 150)\r\n                    (Direction2d.degrees -10)\r\n\r\n            angledSegment =\r\n                LineSegment2d.along angledAxis\r\n                    (Pixels.pixels 50)\r\n                    (Pixels.pixels 250)\r\n        in\r\n        Svg.g []\r\n            [ polygon\r\n            , Svg.mirrorAcross horizontalAxis polygon\r\n            , Svg.mirrorAcross angledAxis polygon\r\n            , Svg.g\r\n                [ Attributes.strokeWidth \"0.5\"\r\n                , Attributes.stroke \"black\"\r\n                , Attributes.strokeDasharray \"3 3\"\r\n                ]\r\n                [ Svg.lineSegment2d [] horizontalSegment\r\n                , Svg.lineSegment2d [] angledSegment\r\n                ]\r\n            ]\r\n\r\n","type":"Axis2d.Axis2d Pixels.Pixels coordinates -> Svg.Svg msg -> Svg.Svg msg"},{"name":"placeIn","comment":" Take SVG defined in local coordinates relative to a given reference frame,\r\nand return that SVG expressed in global coordinates.\r\n\r\nThis can be useful for taking a chunk of SVG and 'stamping' it in different\r\npositions with different orientations:\r\n\r\n![Placed polygons](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/placeIn.svg)\r\n\r\n    placed : Svg msg\r\n    placed =\r\n        let\r\n            vertices =\r\n                [ Point2d.origin\r\n                , Point2d.pixels 40 0\r\n                , Point2d.pixels 50 25\r\n                , Point2d.pixels 10 25\r\n                ]\r\n\r\n            stamp =\r\n                Svg.polygon2d\r\n                    [ Attributes.fill \"orange\"\r\n                    , Attributes.stroke \"blue\"\r\n                    , Attributes.strokeWidth \"2\"\r\n                    ]\r\n                    (Polygon2d.singleLoop vertices)\r\n\r\n            frames =\r\n                [ Frame2d.atPoint (Point2d.pixels 25 25)\r\n                , Frame2d.atPoint (Point2d.pixels 100 25)\r\n                , Frame2d.atPoint (Point2d.pixels 175 25)\r\n                    |> Frame2d.rotateBy (Angle.degrees 20)\r\n                , Frame2d.atPoint (Point2d.pixels 25 150)\r\n                , Frame2d.atPoint (Point2d.pixels 100 100)\r\n                    |> Frame2d.rotateBy (Angle.degrees 20)\r\n                , Frame2d.atPoint (Point2d.pixels 150 150)\r\n                    |> Frame2d.rotateBy (Angle.degrees -30)\r\n                ]\r\n        in\r\n        Svg.g []\r\n            (frames\r\n                |> List.map\r\n                    (\\frame -> Svg.placeIn frame stamp)\r\n            )\r\n\r\n","type":"Frame2d.Frame2d Pixels.Pixels localCoordinates globalCoordinates -> Svg.Svg msg -> Svg.Svg msg"},{"name":"polygon2d","comment":" Draw a `Polygon2d` as an SVG `<polygon>` with the given attributes.\r\n\r\n![Polygon](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/polygon2d.svg)\r\n\r\n    polygon : Svg msg\r\n    polygon =\r\n        Svg.polygon2d\r\n            [ Attributes.stroke \"blue\"\r\n            , Attributes.fill \"orange\"\r\n            , Attributes.strokeWidth \"3\"\r\n            ]\r\n            (Polygon2d.withHoles\r\n                [ [ Point2d.pixels 150 185\r\n                  , Point2d.pixels 165 160\r\n                  , Point2d.pixels 135 160\r\n                  ]\r\n                ]\r\n                [ Point2d.pixels 100 200\r\n                , Point2d.pixels 120 150\r\n                , Point2d.pixels 180 150\r\n                , Point2d.pixels 200 200\r\n                ]\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> Polygon2d.Polygon2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"polyline2d","comment":" Draw a `Polyline2d` as an SVG `<polyline>` with the given attributes.\r\n\r\n![Polyline](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/polyline2d.svg)\r\n\r\n    polyline : Svg msg\r\n    polyline =\r\n        Svg.polyline2d\r\n            [ Attributes.stroke \"blue\"\r\n            , Attributes.fill \"none\"\r\n            , Attributes.strokeWidth \"5\"\r\n            , Attributes.strokeLinecap \"round\"\r\n            , Attributes.strokeLinejoin \"round\"\r\n            ]\r\n            (Polyline2d.fromVertices\r\n                [ Point2d.pixels 100 100\r\n                , Point2d.pixels 120 200\r\n                , Point2d.pixels 140 100\r\n                , Point2d.pixels 160 200\r\n                , Point2d.pixels 180 100\r\n                , Point2d.pixels 200 200\r\n                ]\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> Polyline2d.Polyline2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"quadraticSpline2d","comment":" Draw a quadratic spline as an SVG `<path>` with the given attributes.\r\n\r\n![Quadratic spline](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/quadraticSpline2d.svg)\r\n\r\n    quadraticSpline : Svg msg\r\n    quadraticSpline =\r\n        let\r\n            firstControlPoint =\r\n                Point2d.pixels 50 50\r\n\r\n            secondControlPoint =\r\n                Point2d.pixels 100 150\r\n\r\n            thirdControlPoint =\r\n                Point2d.pixels 150 100\r\n\r\n            spline =\r\n                QuadraticSpline2d.fromControlPoints\r\n                    firstControlPoint\r\n                    secondControlPoint\r\n                    thirdControlPoint\r\n\r\n            controlPoints =\r\n                [ firstControlPoint\r\n                , secondControlPoint\r\n                , thirdControlPoint\r\n                ]\r\n\r\n            drawPoint point =\r\n                Svg.circle2d [] <|\r\n                    Circle2d.withRadius (Pixels.pixels 3)\r\n                        point\r\n\r\n        in\r\n        Svg.g [ Attributes.stroke \"blue\" ]\r\n            [ Svg.quadraticSpline2d\r\n                [ Attributes.strokeWidth \"3\"\r\n                , Attributes.strokeLinecap \"round\"\r\n                , Attributes.fill \"none\"\r\n                ]\r\n                spline\r\n            , Svg.polyline2d\r\n                [ Attributes.strokeWidth \"1\"\r\n                , Attributes.fill \"none\"\r\n                , Attributes.strokeDasharray \"3 3\"\r\n                ]\r\n                (Polyline2d.fromVertices controlPoints)\r\n            , Svg.g [ Attributes.fill \"white\" ]\r\n                (List.map drawPoint controlPoints)\r\n            ]\r\n\r\n","type":"List.List (Svg.Attribute msg) -> QuadraticSpline2d.QuadraticSpline2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"rectangle2d","comment":" Draw a `Rectangle2d` as an SVG `<rectangle>` with the given attributes.\r\n\r\n![Rectangle](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/rectangle2d.svg)\r\n\r\n    rectangle : Svg msg\r\n    rectangle =\r\n        let\r\n            axes =\r\n                Frame2d.atPoint (Point2d.pixels 150 150)\r\n                    |> Frame2d.rotateBy (Angle.degrees 20)\r\n        in\r\n        Svg.rectangle2d\r\n            [ Attributes.stroke \"blue\"\r\n            , Attributes.fill \"orange\"\r\n            , Attributes.strokeWidth \"4\"\r\n            , Attributes.rx \"15\"\r\n            , Attributes.ry \"15\"\r\n            ]\r\n            (Rectangle2d.withAxes axes\r\n                ( Pixels.pixels 120, Pixels.pixels 80 )\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> Rectangle2d.Rectangle2d Pixels.Pixels coordinates -> Svg.Svg msg"},{"name":"relativeTo","comment":" Convert SVG expressed in global coordinates to SVG expressed in coordinates\r\nrelative to a given reference frame. Using `relativeTo` can be useful for\r\ntransforming between model space and screen space - SVG coordinates start in the\r\ntop left, so positive Y is down, while in mathematical/geometric contexts\r\npositive Y is usually up.\r\n\r\nFor example, you might develop an SVG scene in a coordinate system where X and Y\r\neach range from 0 to 300 and positive Y is up. To turn this into a 300x300 SVG\r\ndrawing, first define the top-left SVG frame (coordinate system) in terms of\r\nthe model coordinate system:\r\n\r\n    topLeftFrame =\r\n        Frame2d.atPoint (Point2d.pixels 0 300)\r\n            |> Frame2d.reverseY\r\n\r\n(As expressed in the model frame, the top-left SVG frame is at the point\r\n(0, 300) and its Y direction is equal to the global negative Y direction.) If\r\n`scene` is an SVG element representing your scene, you could then transform it\r\ninto top-left SVG window coordinates and render the result to HTML with\r\n\r\n    Svg.svg\r\n        [ Attributes.width \"300\"\r\n        , Attributes.height \"300\"\r\n        ]\r\n        [ Svg.relativeTo topLeftFrame scene ]\r\n\r\n","type":"Frame2d.Frame2d Pixels.Pixels globalCoordinates { defines : localCoordinates } -> Svg.Svg msg -> Svg.Svg msg"},{"name":"rotateAround","comment":" Rotate arbitrary SVG around a given point by a given angle.\r\n\r\n![Rotated circles](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/rotateAround.svg)\r\n\r\n    rotated : Svg msg\r\n    rotated =\r\n        let\r\n            angles =\r\n                Parameter1d.steps 9 <|\r\n                    Quantity.interpolateFrom\r\n                        (Angle.degrees 0)\r\n                        (Angle.degrees 270)\r\n\r\n            referencePoint =\r\n                Point2d.pixels 200 150\r\n\r\n            referenceCircle =\r\n                Svg.circle2d [ Attributes.fill \"black\" ] <|\r\n                    (Circle2d.withRadius (Pixels.pixels 3)\r\n                        referencePoint\r\n                    )\r\n\r\n            rotatedCircle : Float -> Svg msg\r\n            rotatedCircle angle =\r\n                Svg.rotateAround referencePoint angle circle\r\n        in\r\n        Svg.g [] <|\r\n            referenceCircle\r\n                :: List.map rotatedCircle angles\r\n\r\n","type":"Point2d.Point2d Pixels.Pixels coordinates -> Angle.Angle -> Svg.Svg msg -> Svg.Svg msg"},{"name":"scaleAbout","comment":" Scale arbitrary SVG around a given point by a given scale.\r\n\r\n![Scaled circles](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/scaleAbout.svg)\r\n\r\n    scaled : Svg msg\r\n    scaled =\r\n        let\r\n            scales =\r\n                [ 1.0, 1.5, 2.25 ]\r\n\r\n            referencePoint =\r\n                Point2d.pixels 100 100\r\n\r\n            referencePoint =\r\n                Svg.circle2d [ Attributes.fill \"black\" ] <|\r\n                    Circle2d.withRadius (Pixels.pixels 3)\r\n                        referencePoint\r\n\r\n            scaledCircle : Float -> Svg msg\r\n            scaledCircle scale =\r\n                Svg.scaleAbout referencePoint scale circle\r\n        in\r\n        Svg.g []\r\n            (referencePoint\r\n                :: List.map scaledCircle scales\r\n            )\r\n\r\nNote how _everything_ is scaled, including the stroke width of the circles. This\r\nmay or may not be what you want; if you wanted the same stroke width on all\r\ncircles, you could instead scale the `Circle2d` values themselves using\r\n`Circle2d.scaleAbout` and then draw the scaled circles with a specific stroke\r\nwidth using `Svg.circle2d`.\r\n\r\n","type":"Point2d.Point2d Pixels.Pixels coordinates -> Basics.Float -> Svg.Svg msg -> Svg.Svg msg"},{"name":"translateBy","comment":" Translate arbitrary SVG by a given displacement.\r\n\r\n![Translated polylines](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/translateBy.svg)\r\n\r\n    translated : Svg msg\r\n    translated =\r\n        Svg.g []\r\n            [ polyline\r\n            , polyline\r\n                |> Svg.translateBy (Vector2d.pixels 0 40)\r\n            , polyline\r\n                |> Svg.translateBy (Vector2d.pixels 5 -60)\r\n            ]\r\n\r\n","type":"Vector2d.Vector2d Pixels.Pixels coordinates -> Svg.Svg msg -> Svg.Svg msg"},{"name":"triangle2d","comment":" Draw a `Triangle2d` as an SVG `<polygon>` with the given attributes.\r\n\r\n![Triangle](https://ianmackenzie.github.io/elm-geometry-svg/2.0.0/images/triangle2d.svg)\r\n\r\n    triangle : Svg msg\r\n    triangle =\r\n        Svg.triangle2d\r\n            [ Attributes.stroke \"blue\"\r\n            , Attributes.strokeWidth \"10\"\r\n            , Attributes.strokeLinejoin \"round\"\r\n            , Attributes.fill \"orange\"\r\n            ]\r\n            (Triangle2d.fromVertices\r\n                ( Point2d.pixels 100 100\r\n                , Point2d.pixels 200 100\r\n                , Point2d.pixels 100 200\r\n                )\r\n            )\r\n\r\n","type":"List.List (Svg.Attribute msg) -> Triangle2d.Triangle2d Pixels.Pixels coordinates -> Svg.Svg msg"}],"binops":[]}]