summaryrefslogtreecommitdiff
path: root/tikzit/src/data/graph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tikzit/src/data/graph.cpp')
-rw-r--r--tikzit/src/data/graph.cpp172
1 files changed, 0 insertions, 172 deletions
diff --git a/tikzit/src/data/graph.cpp b/tikzit/src/data/graph.cpp
deleted file mode 100644
index ba9a4c6..0000000
--- a/tikzit/src/data/graph.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-#include "graph.h"
-
-#include <QTextStream>
-#include <QSet>
-#include <QtAlgorithms>
-#include <QDebug>
-#include <algorithm>
-
-Graph::Graph(QObject *parent) : QObject(parent)
-{
- _data = new GraphElementData(this);
- _bbox = QRectF(0,0,0,0);
-}
-
-Graph::~Graph()
-{
-}
-
-// add a node. The graph claims ownership.
-void Graph::addNode(Node *n) {
- n->setParent(this);
- _nodes << n;
-}
-
-void Graph::addNode(Node *n, int index)
-{
- n->setParent(this);
- _nodes.insert(index, n);
-}
-
-void Graph::removeNode(Node *n) {
- // the node itself is not deleted, as it may still be referenced in an undo command. It will
- // be deleted when graph is, via QObject memory management.
- _nodes.removeOne(n);
-}
-
-
-void Graph::addEdge(Edge *e)
-{
- e->setParent(this);
- _edges << e;
-}
-
-void Graph::addEdge(Edge *e, int index)
-{
- e->setParent(this);
- _edges.insert(index, e);
-}
-
-void Graph::removeEdge(Edge *e)
-{
- // the edge itself is not deleted, as it may still be referenced in an undo command. It will
- // be deleted when graph is, via QObject memory management.
- _edges.removeOne(e);
-}
-
-GraphElementData *Graph::data() const
-{
- return _data;
-}
-
-void Graph::setData(GraphElementData *data)
-{
- delete _data;
- _data = data;
-}
-
-const QVector<Node*> &Graph::nodes()
-{
- return _nodes;
-}
-
-const QVector<Edge*> &Graph::edges()
-{
- return _edges;
-}
-
-QRectF Graph::bbox() const
-{
- return _bbox;
-}
-
-bool Graph::hasBbox() {
- return !(_bbox == QRectF(0,0,0,0));
-}
-
-void Graph::clearBbox() {
- _bbox = QRectF(0,0,0,0);
-}
-
-QString Graph::tikz()
-{
- QString str;
- QTextStream code(&str);
-
- code << "\\begin{tikzpicture}" << _data->tikz() << "\n";
- if (hasBbox()) {
- code << "\t\\path [use as bounding box] ("
- << _bbox.topLeft().x() << "," << _bbox.topLeft().y()
- << ") rectangle ("
- << _bbox.bottomRight().x() << "," << _bbox.bottomRight().y()
- << ");\n";
- }
-
- if (!_nodes.isEmpty())
- code << "\t\\begin{pgfonlayer}{nodelayer}\n";
-
- Node *n;
- foreach (n, _nodes) {
- code << "\t\t\\node ";
-
- if (!n->data()->isEmpty())
- code << n->data()->tikz() << " ";
-
- code << "(" << n->name() << ") at ("
- << n->point().x() << ", " << n->point().y()
- << ") {" << n->label() << "};\n";
- }
-
- if (!_nodes.isEmpty())
- code << "\t\\end{pgfonlayer}\n";
-
- if (!_edges.isEmpty())
- code << "\t\\begin{pgfonlayer}{edgelayer}\n";
-
-
- Edge *e;
- foreach (e, _edges) {
- code << "\t\t\\draw ";
-
- if (!e->data()->isEmpty())
- code << e->data()->tikz() << " ";
-
- code << "(" << e->source()->name();
- if (e->sourceAnchor() != "")
- code << "." << e->sourceAnchor();
- code << ") to ";
-
- if (e->hasEdgeNode()) {
- code << "node ";
- if (!e->edgeNode()->data()->isEmpty())
- code << e->edgeNode()->data()->tikz() << " ";
- code << "{" << e->edgeNode()->label() << "} ";
- }
-
- if (e->source() == e->target()) {
- code << "()";
- } else {
- code << "(" << e->target()->name();
- if (e->targetAnchor() != "")
- code << "." << e->targetAnchor();
- code << ")";
- }
-
- code << ";\n";
- }
-
- if (!_edges.isEmpty())
- code << "\t\\end{pgfonlayer}\n";
-
- code << "\\end{tikzpicture}\n";
-
- code.flush();
- return str;
-}
-
-void Graph::setBbox(const QRectF &bbox)
-{
- _bbox = bbox;
-}
-
-