0.4.3 • Published 5 years ago
@arnau/bs-dagre v0.4.3
bs-dagre
BuckleScript bindings for dagre.
Status
Naming and organisation
Although most names come straight from the original library, there are a few changes to adapt to Reason and a few aliases for my own benefit.
- Bindings for
graphlibara under theDagre.Graphmodule. - Bindings for
dagreare under theDagre.Layoutmodule. graphlibuses "label" to refer to data associated with graph, nodes and edges.bs-dagreuses "attributes" instead. For example, instead ofsetDefaultNodeLabelyou havesetDefaultNodeAttrs.
Usage
The steps to compute a graph layout are: create a graph, add nodes and edges and finally create a layout.
Crate a graph
open Dagre;
let graph = Graph.make();
Graph.setDefaultEdgeAttrs(graph, () => {"minlen": 2});The snippet above creates a graph with default attributes,
if you need to tweak them, use Graph.Attrs.make.
Add nodes and edges
Graph.setNodeWith(graph, "a", Node.attrs(~label="first", ~width=20, ~height=20), ());
Graph.setNodeWith(graph, "b", Node.attrs(~label="second", ~width=20, ~height=20), ());
Graph.setEdge(graph, Edge.t(~v="a", ~w="b", ()));Create a layout
let layout = Layout.make(graph);
// Use the layout to render the graph.Check the examples for more.
License
bs-dagre is licensed under the terms of the MIT License. See the LICENSE file for details.