In this paper, we present a new algorithm for all-quad meshing of
non-convex domains, with connected regions. Our method starts with a strongly
balanced quadtree. In contrast to snapping the grid points onto the geometric
boundaries, we move points a slight distance away from the common boundaries.
Then we intersect the moved grid with the geometry. This allows us to avoid
creating any flat quads, and we are able to handle two-sided regions and more
complex topologies than prior methods. The algorithm is provably correct,
robust, and cleanup-free; meaning we have angle and edge length bounds, without
the use of any pillowing, swapping, or smoothing. Thus, our simple algorithm is
also more predictable than prior art.