chiark / gitweb /
wip make output (STL generator) compile
[moebius2.git] / mgraph.h
index 85f1a3c8d0ef621e8417a2715c1af014df187e91..4ab020585b8e57609cbff0808aedbc2f1dc54d27 100644 (file)
--- a/mgraph.h
+++ b/mgraph.h
@@ -92,7 +92,7 @@
 #define FOR_VERTEX(v) \
   for ((v)=0; (v)<N; (v)++)
 
-#define FOR_VPEDGE(v,e) \
+#define FOR_VPEDGE(e) \
   for ((e)=0; (e)<V6; (e)++)
 
 int edge_end2(unsigned v1, int e);
@@ -107,7 +107,7 @@ int edge_reverse(int v1, int e);
 #define RIM_VERTEX_P(v) (((v) & ~XMASK) == 0 || ((v) & ~XMASK) == (Y-1)*Y1)
 
 #define FOR_VEDGE_X(v1,e,v2,init,otherwise)    \
-  FOR_VPEDGE((v1),(e))                         \
+  FOR_VPEDGE((e))                              \
     if (((v2)= EDGE_END2((v1),(e)),            \
         (init),                                \
         (v2)) < 0) { otherwise; } else
@@ -125,6 +125,10 @@ int edge_reverse(int v1, int e);
   for ((vy)=0; (vy)<Y; (vy)+=Y-1)                              \
     for ((vx)=0; (v)= (vy)<<YSHIFT | (vx), (vx)<X; (vx)++)
 
+#define VERTICES_SPAN_JOIN_P(v0,v1)            \
+  /* v0 and v1 must be (nearly) adjacent */    \
+  (!!((v0) ^ (v1) ^ (1<<(XBITS-1))))
+
 typedef double Vertices[N][D3];
 struct Vertices { Vertices a; };