Commit Graph

94 Commits

Author SHA1 Message Date
Jeff Young 04fec5016b Add keepout zones set to keepout footprints to footprint courtyard checker.
(This is for the move tool, not DRC.  DRC uses more sophisticated keepout
processing which is too slow for the move tool, and doesn't let us know which
keepout area collided for collision highlighting.)

Fixes https://gitlab.com/kicad/code/kicad/issues/12594
2022-10-07 22:23:37 +01:00
Jeff Young 97d4df4154 Better thread safety for zone boundingbox caches. 2022-10-02 19:30:43 +01:00
Jeff Young e49de68a59 Implement a more durable zone bounding box caching strategy.
Fixes https://gitlab.com/kicad/code/kicad/issues/10821
2022-10-01 22:10:43 +01:00
Jeff Young 897135a4f0 Support mirroring on the board too.
Also fixes a few bugs in FP item mirroring.

Fixes https://gitlab.com/kicad/code/kicad/issues/2168
2022-09-22 15:05:58 +01:00
Marek Roszko 1b962a1660 Expand zone info a little
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12479
2022-09-20 22:16:50 -04:00
Seth Hillbrand 0295090135 Zone Fill performance for overlapping zones
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.
2022-09-19 10:11:06 -07:00
Jeff Young 64a6fc0fd4 Push UNITS_PROVIDER down into a low-level mixin.
This allows us to also construct cheap UNIT_PROVIDERs for specific
tasks when necessary.
2022-09-19 17:10:59 +01:00
Jeff Young 45d6b4a9fc Readability improvements. 2022-09-19 11:18:20 +01:00
Marek Roszko a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04:00
Jeff Young 90bc5c19cf Performance enhancement for zone filling. 2022-09-16 19:16:15 +01:00
Mark Roszko b00178adb3 Nuke base_units from orbit 2022-09-16 04:38:10 +00:00
Jeff Young f17a865593 Move EDA_ITEM hitTest to BOX2I. 2022-08-31 17:18:45 +01:00
Jeff Young 2dc6300501 Move EDA_ITEM bounding boxes to BOX2I. 2022-08-31 10:16:55 +01:00
Jeff Young 5679b9dbdc Remove a few EDA_RECT instances. 2022-08-31 01:22:49 +01:00
Seth Hillbrand ee95224517 Ensure that teardrops always get filled first
Teardrops are, by definition, higher priority than standard zones, so
ensure that they cannot be overriden
2022-08-25 08:54:34 -07:00
Maciej Suminski af71d42307 Renamed PROPERTY_TYPE enum names to avoid a conflict on MSYS2 2022-08-22 21:32:32 -04:00
Maciej Suminski 95fd58b25a Properties meta-data for pcbnew classes 2022-08-22 21:32:00 -04:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
Seth Hillbrand 9fbf9973be Remove obsolete IsKeepout and KeepoutAll functions
These are superceded by IsRuleArea and the individual keepouts
2022-08-01 08:05:09 -07:00
Jeff Young f41af10007 Clean up hole shapes for safety (smart pointer) and consistency. 2022-07-22 23:06:07 +01:00
Jeff Young b727bfc16d Performance: avoid sqrt at all costs. 2022-07-16 18:42:32 +01:00
Seth Hillbrand 3081023b5e ADDED: Minimum copper connection width DRC check
Checks all copper connections in each net/layer for minimum width
setting.

Fixes https://gitlab.com/kicad/code/kicad/issues/9870
2022-07-11 19:26:56 +00:00
luz paz af6ba1a16e Fix typos in pcbnew sub-directory
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`
2022-06-30 09:39:45 -04:00
Jeff Young 82ebc247b8 More performance enhancements for DRC. 2022-06-18 19:47:11 +01:00
Jeff Young 155620cc9a Move H/V/45 mode from zone properties to toolbar.
Fixes https://gitlab.com/kicad/code/kicad/issues/8587
2022-05-29 21:30:15 +01:00
Jeff Young dbee441328 We've probably smoked out enough of the GetLayer() issues.
... and GetProperty() can query GetLayer() in user scripts.
2022-04-14 17:09:27 +01:00
Jeff Young cf611f1742 Better safety around layersets. 2022-03-21 18:19:00 +00:00
Seth Hillbrand 442aae19d9 Separate flashing check for connectivity
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
2022-03-16 17:30:01 -07:00
Jeff Young 65185f53a1 Rotate fp zones before comparing with library versions.
Also includes some performance fixes to not copy around triangulation
data when it's not needed.

Fixes https://gitlab.com/kicad/code/kicad/issues/10143
2022-03-14 15:53:24 +00:00
jean-pierre charras 878c70c1ab Pcbnew: fix erroneous IslandRemovalMode default mode in board files.
The default is ISLAND_REMOVAL_MODE::ALWAYS in *.kicad_pcb files
2022-03-09 13:17:18 +01:00
Jeff Young e4b56ab7f1 Performance fixes for the board from hell.... 2022-03-08 23:54:34 +00:00
Jeff Young 878c4d2f6b Must clear arcs before calling Clipper. 2022-03-05 18:59:53 +00:00
jean-pierre charras 3bb1fd8311 Teardrops: fixes and enhancements:
- 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 #11040
https://gitlab.com/kicad/code/kicad/issues/11040
2022-03-05 17:18:42 +01:00
Seth Hillbrand 8218f9ab44 Finally found the intermittant QA crash
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
2022-03-04 11:37:49 -08:00
jean-pierre charras 006e1be69c ZONE: display number of vertices on the info panel (regression fix)
This is a useful info because the calculation time depend on this number.
2022-03-04 10:42:32 +01:00
Jeff Young 843a56c4e4 Implement two-staged zone priority: assigned priority followed by UUID. 2022-03-01 14:53:35 +00:00
Jeff Young e6c617b74d Respect ERROR_OUTSIDE when inflating polygons.
Fixes https://gitlab.com/kicad/code/kicad/issues/10896
2022-02-21 15:19:46 +00:00
Jeff Young 5efa354f0f Add asserts to flush out incorrect uses of GetLayer(). 2022-02-18 12:14:38 +00:00
Jeff Young 8f670552a6 Allow Rule Areas on all physical layers.
Required to do things like modify silk_clearance rules.
2022-02-17 23:59:09 +00:00
Jeff Young 327ddad79f Performance: get rid of rawPolys / finalPolys distinction.
(The final fractured polys are required, and we don't really ever use
the raw polys anyway, so they were removed.)
2022-02-16 15:33:12 +00:00
Jeff Young 2172810600 Performance: better sharing of zone fills. 2022-02-15 19:19:03 +00:00
jean-pierre charras d553d620c1 DIALOG_COPPER_ZONE: add option to set the pitch of hatches around the zone outlines
This parameter exists since the beginning, but never show in this dialog
2022-02-12 18:57:02 +01:00
Jeff Young 300ee022fa Drop unsupported fills. No reason to keep them around.
Also removes the long-dead segment fill data structures.
2022-02-11 22:09:22 +00:00
Jeff Young 3deaf902bb Retire the V5 zone fill algorithm.
Fixes https://gitlab.com/kicad/code/kicad/issues/10578
2022-02-11 13:10:52 +00:00
Jeff Young 7ccac79192 More wxString wide literals. 2022-02-05 21:29:34 +00:00
Jeff Young 4eac8d7c66 Remove unit-less angles from geometry lib APIs. 2022-01-20 21:10:04 +00:00
Jeff Young 8c758aeeb5 Use superclass's copy c'tor from within subclass copy c'tor.
Fixes https://gitlab.com/kicad/code/kicad/issues/10481
2022-01-18 18:40:55 +00:00
Jeff Young e61144d45a Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
Jeff Young 07013d00e1 More EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young c9487bad18 Move BOARD_ITEM::Rotate() to EDA_ANGLE. 2022-01-14 16:08:19 +00:00