When multiple zones overlap each other, we need to synchronize the
filling. This should not wait for all zones to try to fill before
restarting. Instead, zones that cannot be filled because the depend on
another zone finishing are immediately re-inserted into the fill queue.
Found via `codespell -q 3 -S *.po,./thirdparty,./Documentation/changelogs -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,ba,busses,dout,einstance,leaded,modul,ontext,ot,overide,serie,te,,tesselate,tesselator,tht`
When building the connectivity database, we should not be using the
connectivity to check for shapes.
To make this deterministic, we introduce two flags (ALWAYS_FLASH and
NEVER_FLASH) that are used with connectivity building to determine
whether a pad is flashed for connectivity or not. ZONE <-> PAD/VIA
connectivity will be checked with ALWAYS_FLASHED and all other
connectivity will be checked with NEVER_FLASHED if they are marked for
potential annular ring removal. If they are not marked for removal,
they will be checked ALWAYS_FLASHED.
Fixes https://gitlab.com/kicad/code/kicad/issues/11114
- do not allow smoothing outlines: outlines are already optimized.
- do not allow settings incompatible with teardrop area (grid, thermal relief)
- DIALOG_COPPER_ZONE: export zone settings to similar zones only.
Fixes#11040https://gitlab.com/kicad/code/kicad/issues/11040
When loading footprints/zones in parallel, we cannot reference a static
vector that gets cleared by other threads.
It is unclear why this element was ever static to begin with (premature
optimization?) but it has been this way for a long time. We never
noticed until we threaded load cycles, which gave the hatch a chance to
override itself and cause crashes
Fixes https://gitlab.com/kicad/code/kicad/issues/9888
The algo used to calculate a focus point on a zone can be *extremely* time
consuming when using the filled areas in zone (can be matter of minutes and more).
So we use now only the zone outlines usually having not a lot of vertices.