Maki
Formally verfied low-code orchestration
Toggle main menu visibility
Loading...
Searching...
No Matches
edge_router.h
1
#pragma once
2
3
#include <QObject>
4
#include <QPainterPath>
5
#include <QPointF>
6
7
#include "elements/node.h"
8
#include "elements/transition.h"
9
10
class
EdgeRouter :
public
QObject
11
{
12
Q_OBJECT
13
public
:
14
enum class
Option
15
{
16
DIRECT = 0,
17
MANHATTAN,
18
CURVED,
19
OGDF,
20
END
21
};
22
23
EdgeRouter(QObject* parent =
nullptr
);
24
virtual
~EdgeRouter() =
default
;
25
26
Option option()
const
;
27
void
setRouteOption(Option option);
28
virtual
QPainterPath route(
const
QPointF& sourceRect,
const
QPointF& destinationRect,
const
QList<QRectF>& obstacleRects)
const
;
29
QHash<const TransitionItem*, QPainterPath> route(
const
QList<NodeItem*>& nodes,
const
QList<TransitionItem*>& transitions)
const
;
30
31
static
QString optionToString(
int
option);
32
static
QString optionToString(Option option);
33
34
private
:
35
Option mOption;
36
37
QPainterPath pathFromPoints(
const
QVector<QPointF>& points)
const
;
38
void
appendPoint(QVector<QPointF>& points,
const
QPointF& point)
const
;
39
40
QPainterPath curvedRoute(
const
QPointF& start,
const
QPointF& end)
const
;
41
QVector<QPointF> directRoute(
const
QPointF& source,
const
QPointF& destination)
const
;
42
QVector<QPointF> manhattanRoute(
const
QPointF& source,
const
QPointF& destination)
const
;
43
};
Generated for
MAKI
· © 2026 with
Doxygen
1.9.8
GitHub
Research