new gridf almost working
[imago.git] / new_geometry.py
index a9b8bdc..ab62210 100644 (file)
@@ -27,8 +27,7 @@ def fill(l1, l2, lh, n):
         return (fill(l1, lm, (lh1, lhc), n / 2) +
                 [lm] +
                 fill(lm, l2, (lhc, lh2), n / 2))
-    elif n == 2:
-        # TODO fine tune this
+    elif n == 2 or n == 8:
         nlt = intersection((lh1, l21), (l11, l22))
         nlb = intersection((lh1, l22), (l12, l21))
         nrt = intersection((lh2, l11), (l12, l21))
@@ -37,7 +36,20 @@ def fill(l1, l2, lh, n):
               intersection((l12, l22), (nlt, nlb)))
         nr = (intersection((l11, l21), (nrt, nrb)),
               intersection((l12, l22), (nrt, nrb)))
-        return [nl, nr]
+        if n == 2:
+            return [nl, nr]
+        elif n == 8:
+            return (fill(l1, nl, 
+                         (intersection(l1, lh),
+                          intersection(nl, lh)), 2) +
+                    [nl] +
+                    fill(nl, nr, 
+                         (intersection(nl, lh),
+                          intersection(nr, lh)), 2) +
+                    [nr] +
+                    fill(nr, l2, 
+                         (intersection(nr, lh),
+                          intersection(l2, lh)), 2))
         
 def expand_right(grid, middle):
     return expand(grid[-2], grid[-1],