chiark / gitweb /
compiles and most output facets are right; needs debugging
[moebius2.git] / mgraph.c
index 4b708e5bd12c247ca21e78e6a1d082217908702d..46c7533827b1445c2498773106301e2898a94f47 100644 (file)
--- a/mgraph.c
+++ b/mgraph.c
@@ -11,7 +11,7 @@ static const unsigned dx[2][V6]= {{  +1,   0,  -1,  -1,  -1,   0  },
 int edge_end2(unsigned v1, int e) {
   unsigned x, y;
 
 int edge_end2(unsigned v1, int e) {
   unsigned x, y;
 
-  y= (v1 & YMASK) + dy[e];
+  y= (v1 & ~XMASK) + dy[e];
   if (y >= Y*Y1) return -1;
 
   x= (v1 & XMASK) + dx[(v1 >> YSHIFT) & 1][e];
   if (y >= Y*Y1) return -1;
 
   x= (v1 & XMASK) + dx[(v1 >> YSHIFT) & 1][e];
@@ -30,9 +30,19 @@ static const unsigned reverse[2][V6]= {{ 3, 4, 5, 0, 1, 2 },
 
 int edge_reverse(int v1, int e) {
   unsigned x2;
 
 int edge_reverse(int v1, int e) {
   unsigned x2;
-  int flip;
+  int flip, eprime;
 
   x2= (v1 & XMASK) + dx[(v1 >> YSHIFT) & 1][e];
   flip= !!(x2 & ~XMASK);
 
   x2= (v1 & XMASK) + dx[(v1 >> YSHIFT) & 1][e];
   flip= !!(x2 & ~XMASK);
-  return reverse[flip][e];
+  eprime= reverse[flip][e];
+//  printf("%60s %02x -%d->,<-%d- (%02x) [x2=%x flip=%d]\n","",
+//      v1,e,eprime, EDGE_END2(v1,e), x2,flip);
+  return eprime;
+}
+
+int vertices_span_join_p(int v0, int v1) {
+  int v0x= v0 & XMASK;
+  int v1x= v1 & XMASK;
+  int diff= v0x-v1x;
+  return diff < -2 || diff > 2;
 }
 }