Wiki source code of KLay Force

Last modified by Richard Kreissig on 2023/09/14 10:17

Hide last authors
Richard Kreissig 6.1 1 Project Overview
2
cds 1.1 3 Responsible:
4
cds 3.1 5 * Christoph Daniel Schulze
cds 1.1 6
Richard Kreissig 6.1 7
cds 3.1 8 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 9
cds 3.1 10 This page describes the available layout options as well as the general architecture of the algorithm.
cds 1.1 11
12 **Contents**
13
14
15
16 {{toc maxLevel="2"/}}
17
cds 5.3 18 [[doc:KIELER.Downloads - KIELER Layout Algorithms]]
cds 1.1 19
20
Richard Kreissig 6.1 21
cds 3.1 22 = Layout Options =
cds 1.1 23
cds 3.1 24 {{warning title="ToDo"}}
25 List available layout options.
26 {{/warning}}
cds 1.1 27
cds 3.1 28 = Architecture =
cds 1.1 29
cds 4.1 30 The architecture basically consists of two chunks: the graph model and the actual implementation of the algorithm.
31
32 == Graph Model ==
33
34 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:
35
36 [[image:attach:KLayForce_Model.png]]
37
38 == Algorithm ==
39
cds 3.1 40 {{warning title="ToDo"}}
41 Describe architecture.
42 {{/warning}}
cds 1.1 43
44