especially around the extraction code. Extraction is now
more or less working, although the original known issues
around areas where split tiles contain two regions has not
yet been addressed.
and forcing it to be passed as an argument to all the callback
functions for the search routines that require it. Magic now
compiles and runs with the new code, but there are a number of
known issues that need to be fixed up. Committing now so that
I can rebase on the last update to the master branch.
improperly messed with during a commit back in August. At the
time I was unsure of what to do with those lines, but now I'm
quite sure they were correct to have been commented out. I
have now removed them so that they should not cause trouble in
the future. Quick explanation: After a non-Manhattan tile
4-way split, merging should be done to the left conditionally
on the merge flags (the latter part of that being the August
1 fix), but merging should never be done to the right because
the right side is still fractured and has yet to be visited.
The merging will eventually get handled. Whether the merge
flag has been set or not does not matter.
Manhattan tiles. After splitting a non-Manhattan tile crossing
a search area to paint, the routine was automatically merging
tiles to the right. This is incorrect for tiles inside the search
area, as it can cause the search algorithm to miss unvisited tiles
whose origins are to the left of the split tile, resulting in part
of the area not getting painted.
one is an "off_grid" DRC type, which can be used to check geometry
that is below the manufacturing grid. Normally magic prevents the
grid from being subdivided below the manufacturing grid, but this
limit can be removed and replaced by DRC checks to check for such
errors in a GDS file of unknown origin. The second version looks
for interactions between subcells that end up with intersections
of non-manhattan geometry landing on points that are not on the
database internal grid. Such errors cannot be seen by magic's DRC
engine by definition, and so must be detected while flattening
geometry for the DRC checks.