Wiki source code of KLay Force

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

Hide last authors
cds 1.1 1 {{panel title="Project Overview" borderStyle="dashed"}}
2 Responsible:
3
cds 3.1 4 * Christoph Daniel Schulze
5 {{/panel}}
cds 1.1 6
cds 3.1 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.
cds 1.1 8
cds 3.1 9 This page describes the available layout options as well as the general architecture of the algorithm.
cds 1.1 10
11 **Contents**
12
13
14
15 {{toc maxLevel="2"/}}
16
cds 5.3 17 [[doc:KIELER.Downloads - KIELER Layout Algorithms]]
cds 1.1 18
19 {{excerpt-include/}}
20
cds 3.1 21 = Layout Options =
cds 1.1 22
cds 3.1 23 {{warning title="ToDo"}}
24 List available layout options.
25 {{/warning}}
cds 1.1 26
cds 3.1 27 = Architecture =
cds 1.1 28
cds 4.1 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
cds 3.1 39 {{warning title="ToDo"}}
40 Describe architecture.
41 {{/warning}}
cds 1.1 42
cds 3.1 43
cds 1.1 44
45