Wiki source code of KLay Force

Version 5.8 by cds on 2023/07/11 10:33

Show last authors
1 {{panel title="Project Overview" borderStyle="dashed"}}
2 Responsible:
3
4 * Christoph Daniel Schulze
5 {{/panel}}
6
7 KLay Force is an implementation of the force-based layout approach where edges are regarded as springs pulling together the nodes they connect, while unconnected nodes are pushed apart from one another. The objective is to compute a state where this physical system reaches an equilibrium.
8
9 This page describes the available layout options as well as the general architecture of the algorithm.
10
11 **Contents**
12
13
14
15 {{toc maxLevel="2"/}}
16
17 [[doc:KIELER.Downloads - KIELER Layout Algorithms]]
18
19 {{excerpt-include/}}
20
21 = Layout Options =
22
23 {{warning title="ToDo"}}
24 List available layout options.
25 {{/warning}}
26
27 = Architecture =
28
29 The architecture basically consists of two chunks: the graph model and the actual implementation of the algorithm.
30
31 == Graph Model ==
32
33 KLay Force uses a custom, lightweight graph model whose root is the {{code language="none"}}FGraph{{/code}} class. {{code language="none"}}FNode{{/code}} instances are connected through {{code language="none"}}FEdge{{/code}} instances that, to be routed properly, can have {{code language="none"}}FBendpoint{{/code}} instances. Edges and nodes can have a number of {{code language="none"}}FLabel{{/code}} instances. Nodes, labels, and bend points are considered {{code language="none"}}FParticle{{/code}}s since they exert forces on each other. The following is a class diagram of the basic graph model:
34
35 [[image:attach:KLayForce_Model.png]]
36
37 == Algorithm ==
38
39 {{warning title="ToDo"}}
40 Describe architecture.
41 {{/warning}}
42
43
44
45