From d5f3c3776a22bb9663127e3cbad1ffa68a06fc0b Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Thu, 30 Aug 2018 16:05:52 +0200 Subject: [PATCH] make sure that mirror placement treats vertices differently --- archimedean.cpp | 4 ++++ complex.cpp | 1 + 2 files changed, 5 insertions(+) diff --git a/archimedean.cpp b/archimedean.cpp index 580b6a65..0d050329 100644 --- a/archimedean.cpp +++ b/archimedean.cpp @@ -1205,6 +1205,10 @@ int degree(heptagon *h) { return isize(current.adjacent[id_of(h)]); } +bool is_vertex(heptagon *h) { + return id_of(h) >= 2 * current.N; + } + int valence() { if(PURE) return arcm::current.N; if(BITRUNCATED) return 3; diff --git a/complex.cpp b/complex.cpp index 10a7e9a3..5f8097ca 100644 --- a/complex.cpp +++ b/complex.cpp @@ -1141,6 +1141,7 @@ namespace mirror { // we go by heptagons in Archimedean, bool equal(heptspin h1, heptspin h2, int lev) { if(h1.at->degree() != h2.at->degree()) return false; + if(arcm::is_vertex(h1.at) != arcm::is_vertex(h2.at)) return false; if(lev) for(int i=0; idegree(); i++) { heptspin h11 = h1 + i + wstep; heptspin h21 = h2 + i + wstep;