summaryrefslogtreecommitdiff
path: root/lib/src/graph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src/graph.cpp')
-rw-r--r--lib/src/graph.cpp30
1 files changed, 25 insertions, 5 deletions
diff --git a/lib/src/graph.cpp b/lib/src/graph.cpp
index c75d466..1c770e9 100644
--- a/lib/src/graph.cpp
+++ b/lib/src/graph.cpp
@@ -445,14 +445,14 @@ void graph::helper(unsigned nv, std::mt19937& rng) {
jcv_diagram_free(&diagram);
}
-graph::coordinate reverse(const graph::coordinate& x) { return {x.y, x.x}; }
+coordinate reverse(const coordinate& x) { return {x.y, x.x}; }
graph const graph::rotate() {
graph g2(*this);
for (graph::vertex& v : g2.vertices) {
v.r = reverse(v.r);
- for (graph::coordinate& r : v.polygon) {
+ for (coordinate& r : v.polygon) {
r = reverse(r);
}
}
@@ -464,7 +464,7 @@ graph const graph::rotate() {
for (graph::vertex& v : g2.dual_vertices) {
v.r = reverse(v.r);
- for (graph::coordinate& r : v.polygon) {
+ for (coordinate& r : v.polygon) {
r = reverse(r);
}
}
@@ -490,7 +490,7 @@ std::string graph::write() const {
output += "},\"vp\"->{";
for (const graph::vertex &v : vertices) {
output += "{";
- for (const graph::coordinate &r : v.polygon) {
+ for (const coordinate &r : v.polygon) {
output += "{" + std::to_string(r.x) + "," + std::to_string(r.y) + "},";
}
output.pop_back();
@@ -505,7 +505,7 @@ std::string graph::write() const {
output += "},\"up\"->{";
for (const graph::vertex &v : dual_vertices) {
output += "{";
- for (const graph::coordinate &r : v.polygon) {
+ for (const coordinate &r : v.polygon) {
output += "{" + std::to_string(r.x) + "," + std::to_string(r.y) + "},";
}
output.pop_back();
@@ -536,3 +536,23 @@ std::string graph::write() const {
return output;
}
+
+coordinate graph::Δr(unsigned e) const {
+ coordinate tmp = dual_vertices[dual_edges[e].v[1]].r - dual_vertices[dual_edges[e].v[0]].r;
+ if (dual_edges[e].crossings[0]) {
+ if (tmp.x > 0) {
+ tmp.x -= L.x;
+ } else {
+ tmp.x += L.x;
+ }
+ }
+ if (dual_edges[e].crossings[1]) {
+ if (tmp.y > 0) {
+ tmp.y -= L.y;
+ } else {
+ tmp.y += L.y;
+ }
+ }
+
+ return tmp;
+}