X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=moebius2.git;a=blobdiff_plain;f=mgraph.c;h=46c7533827b1445c2498773106301e2898a94f47;hp=4b708e5bd12c247ca21e78e6a1d082217908702d;hb=fcb05a81ecead2dcd3375c6d4ceb528ca6e181c0;hpb=7968bc4aca3306473e7ab0a55d4bdc721a3eacd5 diff --git a/mgraph.c b/mgraph.c index 4b708e5..46c7533 100644 --- 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; - y= (v1 & YMASK) + dy[e]; + y= (v1 & ~XMASK) + dy[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 flip; + int flip, eprime; 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; }