summaryrefslogtreecommitdiff
path: root/src/data/path.cpp
blob: 1438d64450288feb54f0ed079a931e30193747e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "path.h"

Path::Path(QObject *parent) : QObject(parent)
{

}

int Path::length() const
{
    return _edges.length();
}

void Path::addEdge(Edge *e)
{
    e->setPath(this);
    _edges << e;
}

void Path::removeEdges()
{
    foreach(Edge *e, _edges) {
        e->setPath(nullptr);
    }
    _edges.clear();
}

bool Path::isCycle() const
{
    return !_edges.isEmpty() && _edges.first()->source() == _edges.last()->target();
}

QVector<Edge *> Path::edges() const
{
    return _edges;
}