Marek Roszko
382dca4e6f
Fix uninitialized member warnings
Based on PVS Studio report
4 years ago
Jeff Young
e93e9fa3e5
Add rudimentary type checking to rule eval with reporter.
Also cleaned up existing error reporting to not expend CPU cycles
when there was no reporter.
Fixes https://gitlab.com/kicad/code/kicad/issues/8438
4 years ago
Tomasz Wlostowski
939b5e1932
PCB_EXPR_EVALUATOR: don't use string comparison to check for undefined enum values
5 years ago
Marek Roszko
03cf2b517f
Enum class PAD_ATTR_T
Renamed such that python stays the same
5 years ago
Jon Evans
ae113ea299
DRC: inDiffPair should return false if the coupled net is missing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8268
5 years ago
Jeff Young
a2ffb45698
Update diff pair rule syntax to be clearer.
Fixes https://gitlab.com/kicad/code/kicad/issues/8010
5 years ago
Ian McInerney
a94a481574
Fix compile warnings
Some simple warnings and also a deprecation warning from wx
because they felt that a function should be renamed...
5 years ago
Jeff Young
fe196771d8
Implement isCoupledDiffPair() DRC rule function.
Fixes https://gitlab.com/kicad/code/kicad/issues/7975
5 years ago
Jeff Young
ce46fe6581
Add insideFrontCourtyard and insideBackCourtyard DRC functions.
Fixes https://gitlab.com/kicad/code/kicad/issues/7972
5 years ago
Jeff Young
47145d349b
Don't run insideArea on ruleAreas.
Fixes https://gitlab.com/kicad/code/kicad/issues/7826
5 years ago
Jon Evans
cd7a2cd807
Fix shadowing fix that caused logic bug and different shadowing
5 years ago
Jon Evans
65531accf6
DRC: allow testing against particular diff pair membership
5 years ago
Jeff Young
3538c8a963
Thread safety for new caches (which are also used during zone fill).
Fixes https://gitlab.com/kicad/code/kicad/issues/7749
5 years ago
Wayne Stambaugh
5ca25a609e
Pcbnew: fix shadow variable in expression evaluator.
5 years ago
Jeff Young
4ede4e061e
More DRC performance work.
Push DRC zone RTrees into BOARD so that they can also be used by
insideArea.
All these caches are a bit of an encapsulation leak, but they make a
significant impact on performance.
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
5 years ago
Jeff Young
f226373324
Add cache for insideArea() and insideCourtyard().
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
5 years ago
Jeff Young
c7a71b44e5
Zones must be entirely inside for insideCourtyard.
This is a huge performance win as otherwise we're doing *lots* of
shape collisions with ground planes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
5 years ago
Seth Hillbrand
bac7b3e77a
Protect against dynamic_cast
Items might not be FOOTPRINT, in which case the dynamic_cast will return
nullptr. Check for this in the subfunction
5 years ago
Jeff Young
ba2d0cdd62
Nullptr safety.
5 years ago
Jeff Young
a1f09befe0
Vias are plated holes too....
5 years ago
Jeff Young
199ef61cdc
A footprint isn't "inside" itself.
Fixes https://gitlab.com/kicad/code/kicad/issues/7549
5 years ago
Jeff Young
7b9700d871
Convert insideArea test for zones to be "any copper inside".
The test used to be "entire zone inside", but that didn't work when
we use it to implement "copper pour" keepout areas.
Fixes https://gitlab.com/kicad/code/kicad/issues/7420
5 years ago
Jeff Young
beab68db13
Fix bone-headed error in rules optimization.
5 years ago
Jeff Young
63e2046eb0
Performance improvements for DRC rules.
5 years ago
Jeff Young
81aa91ce2a
Run insideCouryard on all matching footprints, not just the first.
Fixes https://gitlab.com/kicad/code/kicad/issues/6945
5 years ago
Jeff Young
a9d4d9d7f0
Modify insideArea() to return true for zones only when fully inside.
Intersections is enough for other objects.
This is also a bit of a DRC performance improvement.
Fixes https://gitlab.com/kicad/code/kicad/issues/6934
5 years ago
Jeff Young
f691828c8f
Nullptr safety.
Fixes https://gitlab.com/kicad/code/kicad/issues/6862
5 years ago
Jeff Young
b123318cf6
Encourage use of full DRC for board & footprint malformed outlines.
It shows much more detail. Removes some nag dialogs and places
hypertext links in others.
Also fixes the auto-layer-showing to correctly show Edge.Cuts or
F.CrtYd or B.CrtYd for errors relating to them.
Fixes https://gitlab.com/kicad/code/kicad/issues/6446
5 years ago
Jeff Young
1ce1e493d6
A rule zone is not really a BOARD_CONNECTED_ITEM.
Or at least it shouldn't always be treated as one.
Fixes https://gitlab.com/kicad/code/kicad/issues/6382
5 years ago
Jeff Young
bdbb68f813
MODULE -> FOOTPRINT.
5 years ago
Jeff Young
3451ac3088
PCB_MODULE_T -> PCB_FOOTPRINT_T
5 years ago
Jeff Young
522d64968e
Yet more module -> footprint.
5 years ago
Jeff Young
52a46341db
More module -> footprint.
5 years ago
Jeff Young
f5443de7f9
D_PAD -> PAD.
5 years ago
Jeff Young
84dd5108ba
Remove some "class_" prefixes from files.
5 years ago
Jeff Young
f7333ad64a
Update some classnames including archaic zone names.
5 years ago
Werni
a7d5d1f091
Add more consts all over the place
5 years ago
Ian McInerney
31e626f279
Cleanup creation of all our smart pointers
5 years ago
Jeff Young
8c93fc76ae
Don't require keepout zones to be named.
insideArea() now takes A, B, a UUID or a zone name. (Only the UUID
is new.)
5 years ago
Jeff Young
386cefbe84
Do footprint keepouts by courtyard.
Fixes https://gitlab.com/kicad/code/kicad/issues/6162
5 years ago
Wayne Stambaugh
8185a416b9
Fix broken build on Linux with gcc.
5 years ago
Jeff Young
9ff49277e1
Add implicit rule generation for keepout areas.
Also implements collision detection for SHAPE_POLY_SET.
Fixes https://gitlab.com/kicad/code/kicad/issues/6105
5 years ago
Jeff Young
948036372e
Ban unitless numbers in DRC rules.
Fixes https://gitlab.com/kicad/code/kicad/issues/6029
5 years ago
Jeff Young
ebd5dc81cc
Fix some more cases of malformed syntax crashing the compiler.
Fixes https://gitlab.com/kicad/code/kicad/issues/6016
5 years ago
Jeff Young
1703729269
Require explicit decl of maxError and errorLocations.
This should reduce both performance issues and clearance issues.
5 years ago
Jeff Young
fdeb340d21
Defensive code against missing nets.
Also adds net re-parenting code to Repair Board.
Fixes https://gitlab.com/kicad/code/kicad/issues/5935
5 years ago
Tomasz Wlostowski
b5fa523a11
PCB_EXPR_EVALUATOR: added isDiffPair() API method
5 years ago
Mikolaj Wielgus
d14761bee6
Fix inches being sometimes used instead of mils
5 years ago
Mikolaj Wielgus
400c15b8eb
Add mils to units, remove useMils variables
5 years ago
Seth Hillbrand
bf3cb0b1d0
Standardize pad type enums
5 years ago