676 Commits

Author SHA1 Message Date
John Beard
e016dc52fd Pcbnew: Add concept of a 'point'
This is a zero-dimensional object that can be used for snapping
and documentation of useful, but non-physical features on a
board or footprint. They do not correspond to any physical
output in exports or plots.

Points do have a "size", but this is a graphical property only
and determines how large they are drawn on the board.

They also have a layer, which allows them to be selected and
made visible according to layer filters.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/4691
2025-09-01 23:44:21 +08:00
jean-pierre charras
5b31b11731 SHAPE_RECT: add Normalize method to assure width or height > 0
ROUNDRECT: add option to normalize the rectangle on creation

if the created rectangle has a negative size(width or height) there are issues
when drawing it.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21613
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21610
2025-09-01 11:56:56 +02:00
Seth Hillbrand
8acf5c1a25 ADDED: Rounded Rectangles
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4742
2025-08-29 17:37:30 -07:00
Seth Hillbrand
eb753b8a1b Old-skool THT colors
Simple option for plain-jane THT pad stacks to color them like the via
holes.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21531
2025-08-24 13:31:50 -07:00
Seth Hillbrand
3ef862f7b6 Specialize the pad wall drawing
Avoids slowdown when zoom/pan with many THTs as everything remains
cached.  Still slow in Cairo but this is expected

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20506
2025-08-24 11:25:50 -07:00
John Beard
6bdfe2bce6 Pcbnew: fix outline drawing of PTH pads
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/21448
2025-08-07 22:48:22 +08:00
Jeff Young
55097b9539 Formatting. 2025-08-03 12:51:34 +01:00
Jeff Young
e230d5164d Honour renderSettings' default font.
This still leaves a few things out in the cold,
such as hit-testing and polygon generation.
But at least it allows us to plot with a default
font.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19031
2025-07-17 09:35:21 +01:00
Jeff Young
c758a2fbaf Don't sequence layers when order doesn't matter. 2025-07-14 19:12:44 +01:00
jean-pierre charras
96e4c8454a PCB_PAINTER: Do not draw board outlines area for FPHOLDER boards
Only the board editor has a board outlines area and controls to show/hide
this draw area.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21199
2025-06-27 09:50:16 +02:00
jean-pierre charras
01e67d78d6 board area fixes (jpc) 2025-06-19 18:26:39 +02:00
jean-pierre charras
ea12df80be make board area colored (from Ethan Chien) 2025-06-19 18:26:39 +02:00
Jeff Young
80d24d4720 Runtime cache for knockout text.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20711
2025-06-07 22:47:07 +01:00
Jeff Young
f58fc0b952 Rewrite GROUP undo based on uuids.
This also removes the GROUP/UNGROUP-specific undo actions.

This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.

This also fixes some undo bugs when dividing wires etc.

This also fixes some bugs with new sch items not
being created within an entered group.
2025-05-21 14:24:59 +01:00
Jeff Young
d384790d47 Don't use line styles for solder masks on shapes in 3D viewer.
Also convert hatched fills to solid for solder masks.

Also give track solder masks their specified
expansion when exporting to STEP.

Also implement solder masks for shapes when
exporting to STEP.
2025-04-28 21:46:10 +01:00
Jeff Young
6873a75313 Solder masks for teardrops on tracks with solder masks.
Also moves teardrops away from the zone UI: they
are now always filled and their borders never
drawn.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20744
2025-04-25 12:23:23 +01:00
jean-pierre charras
57102b87ce PCB_PAINTER, mirrored view, texts on non paired layers: keep position
Depending on their horizontal justification, the texts wee moved when
flipping the board view.
2025-04-22 09:28:47 +02:00
Jeff Young
45abc90885 Be explicit about table highlight colors.
(Unsurprisingly, the previous hack had side effects.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20606
2025-04-10 17:32:00 +01:00
Jeff Young
7232a98b65 Remove redundant performance changes.
(Alex had already moved these to const char, which
avoids wxString's c'tor.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20506
2025-04-10 11:40:37 +01:00
Jeff Young
1d45de0d1d Performance.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20506
2025-04-09 18:21:15 +01:00
Jeff Young
661d002234 CHANGED: moved footprint lock shadows to children.
A full bounding hull wash gets overwhelming on
boards with lots of mechanically-constrained
objects.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14007
2025-04-03 14:38:14 +01:00
Jeff Young
93ea523eec De-duplicate table border drawing code.
Also cleans up a misconception about table header borders,
and renames the getter/setter to be clearer.

Also makes sure that table cells are updated when the table
layer changes.

And another bug where we were writing the grey color value
back to the cell for hidden cells.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20319
2025-03-13 13:15:47 +00:00
Jeff Young
b7ef57a97d Apply Damjan's rotated table fixes to PCB_TABLE::GetEffectiveShape().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20143
2025-03-11 20:12:32 +00:00
Damjan
b419058df3 pcbnew: Plotting tables with non-90 degree rotation angles is not working 2025-03-04 12:08:18 +00:00
Jeff Young
f951497a4f Code brevity. 2025-03-01 21:58:31 +00:00
JamesJCode
93549a649b Fix unused variable compiler warnings 2025-03-01 18:32:18 +00:00
jean-pierre charras
00dca4edb3 Pcbnew, hatched fill shapes: fix 2 issues:
- Ensure the hatched fill polygon is fractured in all cases
- ensure the filled polygon only, not the outline, is drawn
2025-03-01 16:59:09 +01:00
Jeff Young
3f15b0d75b ADDED: hatched fills for shapes. 2025-02-24 11:08:29 +00:00
Jeff Young
675624b926 ADDED: Knockout text boxes. 2025-02-24 11:08:29 +00:00
Damjan
5771467ca3 pcbnew: Table Rotation 2025-02-24 11:00:29 +00:00
Seth Hillbrand
b02a449be8 Limit the size of the PTH hole walls
Should always be at least 2px thick but no larger than the minimum
thickness of the pad (walls do not extend beyond the pad itself)
2025-02-22 14:53:59 -08:00
Jeff Young
42acb62f6e Don't disable line styles on filled shapes.
It's too much trouble to figure out what the
user wants, and not always right even then.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19946
2025-02-19 23:43:53 +00:00
Jeff Young
5edae8250d Finish eradication of visibility flag on text items.
Import/read previously-hidden symbol/footprint
text items as hidden fields.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19875
2025-02-19 23:43:52 +00:00
Mark Roszko
e765ad0c2f Kill unused var warning 2025-01-31 11:00:07 -05:00
Jon Evans
e417b209a0 Don't paint clearance layers as copper
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19764
2025-01-27 18:16:58 -05:00
Jon Evans
1d1b4bf60f Use fill, not stroke, for holewall painting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19473
2025-01-03 20:35:30 -05:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
John Beard
f7aded00c7 Pcbnew: draw clearance lines on their own GAL layers
This tidies up quite a performance hit on layer change
caused by repainting vias, pads and tracks for their
clearances.

Instead, on a layer change, just disable any old clearance
layer and enable the new one (if any).

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19404
2024-12-31 00:53:10 +08:00
John Beard
ca5a88dbb4 Pcbnew: minor refactor in pad painter
Break a big loop content to a lambda, so the 'outer' drawing logic is
more compact. And allows to handle the shape by ref since we know it's
not null.
2024-12-30 20:23:16 +08:00
John Beard
e384628478 Pcbnew: Fix pad/via clearance lines
After 4eb68c2840, we need to check the actual copper
layer represented by aLayer (i..e copperLayer), not
aLayer itself.
2024-12-29 02:43:43 +08:00
Jon Evans
c77426cc12 Fix a few issues with via and pad rendering
The refactor of VIEW::SortLayers broke it, but this
was hard to notice until my recent changes.
2024-12-28 12:42:52 -05:00
Jon Evans
4eb68c2840 Fix pad and via opacity handling
With new rendering style, these need unique VIEW layers per copper layer
2024-12-28 10:50:58 -05:00
Jon Evans
78f83b5a39 Update PTH/Via rendering
- Add separate hole wall and net name color for vias
- Overemphasize hole wall thickness to make objects more visible
2024-12-28 10:02:11 -05:00
Seth Hillbrand
e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
Jeff Young
2926db778c Bug fixes for rotated tables. 2024-12-16 13:26:48 +00:00
Seth Hillbrand
bf6a255a3e Move more elements from fixed size arrays
Refactor layer data storage from compile-time array sizes to run-time
map storage
2024-12-03 13:25:11 -08:00
John Beard
c0db57ea93 Pcbnew: fix last row/col table painting
Use the exact same logic as in eeschema, where this already work
perfectly.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19226
2024-11-30 18:56:02 +08:00
John Beard
013f66adb4 Pcbnew: remove accidental logging inclusion 2024-11-28 22:37:24 +08:00
John Beard
0896367753 Pcbnew: only show point editor chamfer where useful
The chamfer corner action is only meaningful for polygons
and zones, so only enable it there.

Also move some static logic out of of the interface
of PCB_POINT_EDITOR and use SELECTION_CONDITIONS
like other similar code.
2024-11-28 20:18:00 +08:00
Jon Evans
3b1f6a4f36 Load SMD pad net name colors from appropriate copper layer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19168
2024-11-20 17:33:35 -05:00