diff options
Diffstat (limited to 'tikzit/src/data/graph.cpp')
-rw-r--r-- | tikzit/src/data/graph.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/tikzit/src/data/graph.cpp b/tikzit/src/data/graph.cpp index 8a995d2..9307d62 100644 --- a/tikzit/src/data/graph.cpp +++ b/tikzit/src/data/graph.cpp @@ -11,19 +11,25 @@ Graph::~Graph() } void Graph::removeNode(Node *n) { - nodes.removeAll(n); + _nodes.removeAll(n); inEdges.remove(n); outEdges.remove(n); } Edge *Graph::addEdge(Node *s, Node *t) { - + Edge *e = new Edge(s, t, this); + _edges << e; + outEdges.insert(s, e); + inEdges.insert(t, e); + return e; } void Graph::removeEdge(Edge *e) { - + _edges.removeAll(e); + outEdges.remove(e->source(), e); + inEdges.remove(e->target(), e); } GraphElementData *Graph::data() const @@ -37,9 +43,19 @@ void Graph::setData(GraphElementData *data) _data = data; } +const QVector<Node*> &Graph::nodes() +{ + return _nodes; +} + +const QVector<Edge*> &Graph::edges() +{ + return _edges; +} + Node *Graph::addNode() { Node *n = new Node(this); - nodes << n; + _nodes << n; return n; } |