Jeff Young
ee1d9c561c
Improve zone & rule area reporting.
...
Also removes a bunch of "wxEmptyString" where it was degrading readability.
Also fixes a bug where footprint zones were getting sorted incorrectly
due to rotation of coordinates.
Fixes https://gitlab.com/kicad/code/kicad/issues/14322
2023-03-17 13:28:29 +00:00
Seth Hillbrand
9146e38af4
Handle fully-nested zones
...
The logic to handle divots needs to account for fully nested, same net
zones. The process of subtracting led to us considering the inner zone
to be a zone knock-out (negative polygon). To avoid this, we need to
check if the inner, higher priority zone has any connection to the outer
zone. If it does not, then we can treat it as an isolated zone without
worrying about divots to the outer zone.
2023-03-08 10:36:53 -08:00
Seth Hillbrand
ffcc0e50b7
Handle excessively large values when hatching
...
While unusual, ensure that hatched zones don't break KiCad if they are
close to the integer limit
Fixes https://gitlab.com/kicad/code/kicad/issues/14066
2023-02-23 14:40:57 -08:00
Jeff Young
362d85ef50
Special selection mode when in high-contrast with courtyard layer active.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13521
2023-02-11 21:11:07 +00:00
Jon Evans
eb240fda9a
Properties: introduce validators; re-enable zone hatch settings
2023-02-11 11:44:58 -05:00
Jon Evans
254168c788
Properties: introduce method chaining for initialization
2023-02-11 11:44:58 -05:00
Jon Evans
e066454c61
Zones: use metric defaults and limits instead of mixed units
...
Update testcases to reflect new defaults
2023-02-11 07:39:29 -05:00
Jon Evans
92a61b187f
Properties: Hide zone fill type settings for now
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13811
2023-02-08 21:56:15 -05:00
jean-pierre charras
737318a24d
struct ZONE_DESC: ensure ENUM_MAP<PCB_LAYER_ID> is initialized before use it.
...
ENUM_MAP<PCB_LAYER_ID> is tested initialized in some other XXX_DESC,
but not in ZONE_DESC
Fixes #13699
https://gitlab.com/kicad/code/kicad/issues/13699
2023-02-02 09:11:27 +01:00
Jeff Young
bf4b9ef6e2
Remove sorting by priority before filling.
...
We can't fill lower-priority zones until the higher-priority ones
have been tesselated, and as the tesselation step always gets pushed
to the back of the queue after the fill finishes having them sorted
by priority accomplishes little. (We're also going to push all other
layers of the high-priority zone to the back as the first layer will
have the lock, further degrading the usefulness of sorting.)
2023-01-15 15:52:24 +00:00
Jon Evans
c530bdb5a1
Rename GetSelectMenuText to GetItemDescription
...
This descriptive text is used for many more things than
just the select menu these days.
2023-01-11 22:27:44 -05:00
qu1ck
2654279678
Cleanup zone bbox cache in destructor
2023-01-12 00:21:51 +00:00
Jon Evans
5eb3f5d3e7
Use correct translation macro for group names
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13277
2022-12-26 20:11:20 -05:00
Jon Evans
fbaf4af489
Properties: Allow dynamic update of read-only state
2022-12-25 20:35:44 -05:00
Jon Evans
435651237c
Properties: Support overridden availability functions
2022-12-08 00:09:51 -05:00
Jon Evans
4134db3c47
GCC fixes
2022-12-02 22:38:15 -05:00
Jon Evans
050d282c12
Properties: Hide some copper-only properties from non-copper zones
2022-12-02 21:59:17 -05:00
Jon Evans
3b25fdc212
Properties: Fix zones stomping on position props for other items
2022-12-01 16:55:12 -05:00
Jon Evans
757b73e50e
Hide some unusable zone properties
2022-11-30 23:36:53 -05:00
Jon Evans
b2b3f5752f
Properties: Add grouping and sorting by creation order
2022-11-27 22:40:23 -05:00
Jon Evans
74a2e4cad9
Properties: Add support for zone connection style
2022-11-25 18:44:02 -05:00
Jon Evans
220ef6fb44
Properties: Add some missing footprint properties; cleanup
...
Add concept of "internal" properties that will be accessible from
Python/DRC but not shown in the Properties Manager
2022-11-25 12:37:47 -05:00
Simon Richter
fbc321c4c1
Fix initialization order
...
This avoids a conditional branch on an uninitialized value in valgrind.
2022-11-25 16:00:23 +00:00
Jeff Young
c1510f07d8
Fix some issues with group bounding boxes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12958
2022-11-20 23:57:36 +00:00
Jeff Young
03ba14c6d3
Tighten lifecycle management of parent group pointers.
...
Also adds some debugging to try to catch dangling pointers.
Also adds a cache for group bounding boxes (which will be expensive
to calculate for large groups).
Fixes https://gitlab.com/kicad/code/kicad/issues/12875
2022-11-11 17:27:28 +00:00
Jeff Young
25f06eed8c
Move zone borders back to their "host" layer.
...
Zone borders shouldn't be affected by zone-opacity control; we always
draw them in full layer opacity.
Fixes https://gitlab.com/kicad/code/kicad/issues/12438
2022-11-05 16:50:54 +00:00
Jeff Young
e33c611488
Replace collision calls with ones that work.
...
I'm not sure why the old calls didn't work, but they reported "no
collision" between two overlapping zones.
2022-11-03 17:19:59 +00:00
Jeff Young
1f4e51b008
Be careful of interveneing priority zones when doing divot prevention.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12797
2022-11-01 23:33:44 +00:00
Jeff Young
ce2dbdec75
Formatting and a bit of cleanup.
2022-10-21 18:41:39 +01:00
Jeff Young
d16b23d16e
Name shortening and line-break reduction.
2022-10-21 18:41:39 +01:00
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