You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
where each algorithm has several parameters. The main goal of the following interface is to keep the separation between parameters and function call.
12
+
Each Algorithm is implemented as subtype of [`AbstractLayout`](@ref).
13
+
14
+
```@docs
15
+
AbstractLayout
16
+
```
17
+
18
+
Therefore, each `Algorithm <: AbstractLayout` is a functor and can be passed around as a function `adj_matrix ↦ node_positions` which encapsulates all the parameters. This is handy for plotting libraries such as [GraphMakie.jl](http://juliaplots.org/GraphMakie.jl/previews/PR9/).
19
+
20
+
There are some additional guidelines:
21
+
- All of the parameters should be keyword arguments, i.e. it should be allways
22
+
possible to call `Algorithm()` without specifying any parameters.
23
+
- Algorithms should allways return `Vector{Point{dim,Ptype}}`. If the type or
24
+
dimensions can be altered use the keywords `dim` and `Ptype` for it.
25
+
- Some parameters may depend on the specific network (i.e. length of start
26
+
positions vector). If possible, there should be a fallback option (i.e.
27
+
truncate the list of start positions if network is to small or append with
28
+
random values).
29
+
30
+
## Iterative Layouts
31
+
Iterative layouts are a specific type of layouts which produce a sequence of positions rather than a single list of positions. Those algorithms are implemented as subtypes of [`IterativeLayout`](@ref):
32
+
33
+
```@docs
34
+
IterativeLayout
35
+
```
36
+
37
+
One can instantiate an iterable object [`LayoutIterator`](@ref)
0 commit comments