shamansir / elm-graph-render / Graph.Render.Svg.Graph

Rendering

graph : Graph.Geometry.Make.Way (Graph.NodeContext n e) -> (Graph.Geometry.Position -> NodesPositions -> Graph.NodeContext n e -> Svg msg) -> (n -> { width : Basics.Float, height : Basics.Float }) -> Graph n e -> Svg msg

Render the graph as SVG. Takes the function that renders the node (and could render its edges) and the function that returns size for each node.

graphWithDefs : Graph.Render.Svg.Defs.Defs msg -> Graph.Geometry.Make.Way (Graph.NodeContext n e) -> (Graph.Geometry.Position -> NodesPositions -> Graph.NodeContext n e -> Svg msg) -> (n -> { width : Basics.Float, height : Basics.Float }) -> Graph n e -> Svg msg

Render the graph as SVG. Same as above but you can also provide Defs to put in the <def>...</def> section of the SVG. Useful for re-usable items like arrows supposed to represent edges of a graph.

graphWith : (Graph.Geometry.AreaSize -> NodesPositions -> ( List (Html.Attribute msg), Graph.Render.Svg.Defs.Defs msg )) -> Graph.Geometry.Make.Way (Graph.NodeContext n e) -> (Graph.Geometry.Position -> NodesPositions -> Graph.NodeContext n e -> Svg msg) -> (n -> { width : Basics.Float, height : Basics.Float }) -> Graph n e -> Svg msg

Render the graph as SVG. Same as above but you can also provide attributes for the SVG and Defs to put in the <def>...</def> section of that SVG. Latter is useful for re-usable items like arrows supposed to represent edges of a graph.

fromGeometry : List (Html.Attribute msg) -> Graph.Render.Svg.Defs.Defs msg -> (Graph.Geometry.Position -> a -> Svg msg) -> Graph.Geometry.Geometry a -> Svg msg

Render geometry which may be constructed for Graph.Forest a using Graph.Geometry.make

Nodes Positions


type alias NodesPositions =
IntDict Graph.Geometry.Position

Nodes positions stored as Graph.NodeId -> Geom.Position dictionary.