Commit Graph

43243 Commits

Author SHA1 Message Date
Alex Shvartzkop c40708c051 Optimize TEARDROP_PARAMETERS memory layout.
56 -> 40 bytes.
2024-06-20 15:05:45 +03:00
Alex Shvartzkop b143ffb797 Reduce KIID size from 20 to 16 bytes.
Removes separate legacy timestamp value.
2024-06-20 13:59:15 +03:00
Alex Shvartzkop f5be388acd Don't call GetSide in FOOTPRINT::GetBoundingBox when not needed.
CPU usage: -13% when moving a board.
2024-06-20 06:02:11 +03:00
Alex Shvartzkop 48f6f837a1 Optimize BOARD_ITEM::GetParentFootprint.
CPU -8% when panning a board.
2024-06-20 04:25:33 +03:00
Alex Shvartzkop ec271c20db Slightly optimize SEG::NearestPoint. 2024-06-20 04:25:33 +03:00
Alex Shvartzkop 62fb5697b4 Optimize redrawNetnames.
Using RTree is slower in this case.

RTree: 25 ms when moving cursor
This method: 5 ms when panning/zooming
2024-06-19 20:55:33 +03:00
Jeff Young 31ab276aaf Ease-of-use for un-commented ERC/DRC exclusions.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18220
2024-06-19 17:07:50 +01:00
Jeff Young 8e349eedf0 Bug fixes for PCB_TABLES.
In particular, rotated tables and tables in rotated
footprints.
2024-06-19 12:39:22 +01:00
Jeff Young 251ed2ee54 Formatting and "auto" reduction. 2024-06-19 12:39:22 +01:00
Marek Roszko 7c35139505 std::sqrt is not constexpr until C++26 2024-06-19 07:34:58 -04:00
Seth Hillbrand cde153c75f Avoid some overflows in KiROUND 2024-06-18 21:37:00 -07:00
Seth Hillbrand 9aba808366 Altium import
- Handle intermediate Altium version with some fields but not others
- Ensure that we are properly moving text that is not a box and not a
  field
2024-06-18 21:35:41 -07:00
Seth Hillbrand bf68b11ff9 Cleanup unused vars 2024-06-18 21:35:32 -07:00
Seth Hillbrand bcf6b620a8 Large rework of BEZIER_POLY
Add direct handling of quadratic beziers to save compute time and number
of points.  Update cubic interpolation to reduce number of points
generated for a given smoothness

Cache data on open and used cached data to avoid multiple re-calcs

Remove minimum line length and number of segments and replace with
standard max error level.  Allows us to specify the tolerance of bezier
interpolation
2024-06-18 17:55:41 -07:00
Seth Hillbrand 0d2c4c91fd Properly initialize fonttype for older Altium files 2024-06-18 17:55:31 -07:00
Jon Evans 81a1e9e83e Don't write out non-explicit tenting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18230
2024-06-18 17:52:42 -04:00
Jon Evans 1a1083def6 Revert "Tented usually means that there is no soldermask"
This reverts commit 021f251efd.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18230
2024-06-18 17:52:42 -04:00
dsa-t c5056beeb3 Fix crash in wxSocketBase when the event handler has been destroyed.
Fixes KICAD-37B
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18234


(cherry picked from commit ebdfeb4c0a)

Co-authored-by: Alex Shvartzkop <dudesuchamazing@gmail.com>
2024-06-18 21:50:18 +00:00
Jon Evans 02502342a5 Try harder to keep searchable text hidden in SVG exports 2024-06-18 12:01:15 -04:00
Seth Hillbrand 7e561acf53 Altium: Handle textboxes
Also, corrects a minor issue with the text width calculation where
Altium calculates centerline to centerline but KiCad text heights are to
the edge of the stroke font.  Need to still do better adjustments for
the various altium stroke fonts

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9468
2024-06-16 17:20:59 -07:00
Seth Hillbrand b11e030f8f Cleanup Altium text import
Handle inverted text
Correct location for flags
Add mechanics to detect inverted_rect (like text boxes)
2024-06-16 17:20:59 -07:00
Seth Hillbrand 5c699e3c1e Handle not found fonts reliably
Check if the font isn't found when selecting (we seem to always have a
selection even if we fail on GTK) and properly set the index of the
final <not found> font name
2024-06-16 17:20:58 -07:00
Jeff Young 90cd3286fa Remove cover types. 2024-06-16 10:47:48 +01:00
Jeff Young 5a9b681009 Clear timestamp when clearing cache.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17913
2024-06-16 10:46:36 +01:00
Seth Hillbrand e3231e6996 Rework VECTOR2D promotion rules
VECTOR + scalar = vector type (KiROUND when VECTOR is integral and
scalar is float)
VECTOR + VECTOR = common type vector

Implemented with concepts in template rules - SWIG compatible
2024-06-15 13:41:07 -07:00
Jeff Young 5ba2896968 enclosedByArea test for zone needs to be outline-based.
(Otherwise it's order-specific when filling, which
is pretty unpredictable.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18202
2024-06-15 17:52:15 +01:00
Jeff Young eae85742cc Don't report reasonable solder mask bridges in a net-tie footprint. 2024-06-15 15:57:13 +01:00
Jon Evans fa235116f7 Import Altium via tenting settings 2024-06-15 09:36:25 -04:00
jean-pierre charras 16e708a0e7 Fix minor compil and Coverity warnings. 2024-06-15 11:20:21 +02:00
Seth Hillbrand 3e16359b4f Update golden master for Altium import
The altium footprint being imported has vias that were ignored before,
so now we need to have the correct golden master with vias
2024-06-14 17:41:44 -07:00
Seth Hillbrand f7450e5b37 Fix SWIG compile
SWIG doesn't like a lot of the new C++20 elements, so fall back to basic
cast that should get almost every case
2024-06-14 17:41:05 -07:00
Seth Hillbrand 6df16d053e Add specialization for unsigned scalar add/sub
Adding/subtracting an unsigned scalar to a signed vector should maintain
the same signed vector

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18212
2024-06-14 17:27:59 -07:00
Seth Hillbrand 7ea013b96c Altium: Handle footprint vias
These are treated as pads in KiCad

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18194
2024-06-14 16:49:56 -07:00
Seth Hillbrand 021f251efd Tented usually means that there is no soldermask
Probably was a typo
2024-06-14 16:49:56 -07:00
Seth Hillbrand d21eba4021 Unselected tree before syncing
On GTK, the selected item is checked for its parent when being
unselected.  This breaks if the parent has been removed by the Sync()
call, so we need to ensure that the unselect all call happens prior
2024-06-14 16:49:56 -07:00
Seth Hillbrand 9f4dfe77cb Freeze the adapter to avoid invalid deref
GTK tries to get the parent item of selected elements when unselecting.
If we don't freeze, we run the risk of crashing if a selected item is
removed before being unselected.  This causes a wx warning but a) this
is suppressed in release and b) warning message is better than crash.
See next commit for fix to avoid common case of the error
2024-06-14 16:49:56 -07:00
Jeff Young db9f0a0358 Report footprint parent of shape when in board editor.
While the user can't select these, we do report them
in DRC messages and the like, where it's handy to
know what they're from.
2024-06-14 23:19:26 +01:00
Jeff Young 8cddd40fc9 Check mask apertures on the mask layer.
(Otherwise testing A:B and B:A will add items to the
m_maskApertureNetMap cache on different layers.)
2024-06-14 22:55:40 +01:00
Jeff Young b2588e0bbf Footprint Editor doesn't have nets.
(Copper shapes, on the other hand, can.  Since we use
GetItemDescription() to report DRC errors and the like,
it's better to have it report the net even when it's
<no net>.)
2024-06-14 22:46:29 +01:00
Jeff Young 0f8d543172 Consistent capitalization. 2024-06-14 22:02:08 +01:00
Jeff Young ac576d7e0a Normalize phase angles. 2024-06-14 19:03:55 +01:00
jean-pierre charras a2cbd1ff21 Fix QA tests compatibility 2024-06-14 19:14:09 +02:00
Jeff Young c633ac26eb Don't lose value of cursor checkboxes when running sim.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18205
2024-06-14 16:37:49 +01:00
Jeff Young 4eb048bba2 Don't assume AC gains will always be voltages.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18205
2024-06-14 16:37:49 +01:00
Jeff Young 300313ce73 Correctly write phase/gain signals to workbook.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18205
2024-06-14 16:37:49 +01:00
Jeff Young 5a3bad51d0 Don't use SI prefixes with degrees when auto-ranging.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18205
2024-06-14 16:37:49 +01:00
Jeff Young 7b63429fe1 Current gain is the first Y axis, not the second.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18205
2024-06-14 16:37:49 +01:00
jean-pierre charras d778cb6647 Schematic editor: fix some issues that can crash the editor on closing.
- Add a test to be sure a SCHEMATIC exists before trying to use it
- Delete items in Repeat list and undo/redo list before deleting the schematic
- Delete also these items when loading a new schematic (the repeat list was
not cleaned previously)
Before these fixes I see a use after delete issue due to dangling pointers
stored in Repeat list.
2024-06-14 16:57:57 +02:00
Jeff Young 7fef6e8d83 Use view's RTree for redrawing netnames. 2024-06-14 00:20:37 +01:00
Jeff Young c9ddcd618d Make sure to reset the cached viewport. 2024-06-12 23:35:06 +01:00