Wayne Stambaugh
b5eee9dd7e
Coverity warning fixes.
2023-10-16 17:04:14 -04:00
Jeff Young
d5d07e64c9
Use IsShownOnScreen(), not IsShown(), if you really want to know if its visible.
2023-10-14 23:51:37 +01:00
Jeff Young
62d959ed0e
Don't assume an error location for PAD::GetEffectivePolygon().
...
While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.
Also reverts part of the change to always use polygons for PNS::SOLIDs. A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-13 13:59:26 +01:00
Alex Shvartzkop
d7863b09c5
Move CORNER_STRATEGY out of SHAPE_POLY_SET.
2023-10-06 15:42:50 +03:00
Jeff Young
6136c2438d
Make sure sorts are deterministic.
2023-10-04 18:43:36 +01:00
Jeff Young
0d51729537
Make sure sort is deterministic.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15336
2023-10-04 18:06:26 +01:00
Marek Roszko
6b12a12b3e
On second thought rename PROJECT_PCBNEW to PROJECT_PCB
2023-09-27 23:15:54 -04:00
Marek Roszko
7e8b18035f
Eliminate the conditional pcbnew/cvpcb definition of PROJECT
2023-09-27 20:53:46 -04:00
Jeff Young
51f6d38d08
Title case for menus.
2023-09-26 13:19:41 +01:00
Jeff Young
7835b8ddc7
Bring various appearance managers into line over preset editing.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15726
2023-09-25 12:35:54 +01:00
Marek Roszko
121ea99824
Move the settings path to PATHS to allow shifting other classes into kicommon
2023-09-23 20:06:58 -04:00
Marek Roszko
37479c4154
HIDPI_GL_3D_CANVAS needs CAMERA so move it over
2023-09-23 20:06:57 -04:00
Marek Roszko
669f9d795f
Trim the camera includes
2023-09-23 20:06:57 -04:00
Marek Roszko
f8e33be07f
Break out the boundary violating parts of gal into common through subclassing
2023-09-23 09:37:47 -04:00
Jeff Young
da1405ec6a
Draw off-board pads when drawing off-board silk.
2023-09-22 20:57:31 +01:00
Jeff Young
c1a988e3ff
Handle plated vs non-plated copper for copper other than pads.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5569
2023-09-22 18:48:29 +01:00
Jeff Young
cce366bc1d
Tidy up 3D renderer display options.
2023-09-22 18:48:29 +01:00
Jeff Young
78f70b45e6
Minor readability improvements.
2023-09-22 18:48:29 +01:00
Jeff Young
4bfebb4744
Use standard names.
2023-09-22 18:48:29 +01:00
Jeff Young
a954c1d93c
Conversion safety.
2023-09-22 18:48:29 +01:00
jean-pierre charras
1f99a5caa6
3D viewer: do not rebuild the board 3D shape when footprint 3D models visibility
...
has changed: the 3D models visibility does not change the board shape.
2023-09-22 18:32:20 +02:00
Jeff Young
8d06a794f4
Simplify code.
...
DrawAllCameraCulled() can handle up to 4 knockout lists, and any
of them can be null, so don't dance around how we call it.
2023-09-21 14:02:23 +01:00
jean-pierre charras
b1ed0529d7
3D viewer: Simplify polygons before triangulation.
...
It reduce the risk to create bad triangulation.
Fixes #15706
https://gitlab.com/kicad/code/kicad/-/issues/15706
2023-09-21 11:32:32 +02:00
Jeff Young
f97af9f254
Experimental feature to render off-board-footprint's pads to silk.
2023-09-20 23:28:50 +01:00
Jeff Young
87af115ee0
Make better use of method overrides.
2023-09-20 23:28:50 +01:00
Jeff Young
0126841c44
ADDED: 3D appearance setting for off-board silk.
2023-09-20 23:28:50 +01:00
Jeff Young
c0ce543464
Use standard KiCad abbreviations for TH and NPTH.
2023-09-20 14:27:57 +01:00
Jeff Young
7e70ceaa03
Don't trim non-physical layers to board-outline.
...
If the user wants a realistic render, then they'll turn off
non-physical layers entirely.
2023-09-20 13:43:23 +01:00
Marek Roszko
ee91b550d8
gl_context_mgr and gl_util belong in the gal folder
2023-09-19 23:06:44 -04:00
jean-pierre charras
a7b1448ccd
Fix a compil warning.
...
Fix also an incorrect comment.
2023-09-14 15:19:46 +02:00
Jeff Young
8cf291e423
Overhaul 3D degenerate shape protection.
2023-09-14 12:33:54 +01:00
Jeff Young
47dc86c1e2
Run filled-test before degenerate-ring-test.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15642
2023-09-13 23:34:25 +01:00
jean-pierre charras
2c10d5e3a0
Pcbnew: fix some issues with very small arcs (size a few internal units)
...
these very small arcs do not allow to calculate a reliable center position,
and therefore a reliable radius.
So seeing them as a very small segment fix plotting/drawing issues.
Fixes #15639
https://gitlab.com/kicad/code/kicad/-/issues/15639
2023-09-13 17:54:57 +02:00
Marek Roszko
11de95778b
Unwrap the FROM_UTF8 macro in favor of direct function
...
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Marek Roszko
7505fd0f37
Profile can live in core
2023-09-07 07:47:01 -04:00
Marek Roszko
454c5e8eca
3d-viewer should depend on common directly
2023-09-06 20:33:28 -04:00
Marek Roszko
a6a20bf8dc
Evict the Pgm() dependency in GAL
2023-09-06 20:13:46 -04:00
Jeff Young
70bbaae670
Don't attempt to render degenerate 3D shapes.
...
Sentry KICAD-382
2023-09-04 22:10:47 +01:00
Jeff Young
4eb51be0a2
Streamline fetching topLevelParent.
2023-09-04 11:12:34 +01:00
Josue Huaroto
4d84bee6f6
Add Zoom level to the 3D viewer in PCB
2023-09-01 17:51:50 +00:00
jean-pierre charras
fe18a9bf97
3d_rendering/raytracing/create_scene.cpp: add test missing in commit 22256c97
...
Fixes #15560
https://gitlab.com/kicad/code/kicad/-/issues/15560
2023-09-01 15:47:02 +02:00
Marek Roszko
60af0448c5
Add missing if intending to border check
2023-08-30 22:51:08 -04:00
Marek Roszko
2e58f4ea60
Fix three spots it always failed to check if the border was enabled
2023-08-30 22:39:07 -04:00
Jeff Young
22256c97f3
Fix logic errors in handling board body visibility.
...
Also fixes a bug where models were placed above the silk when the
solder paste layer was shown, but on the solder paste layer when
it wasn't shown.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15510
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6770
2023-08-26 17:33:57 +01:00
Jeff Young
725840654f
Fix copy/pasta.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15509
2023-08-26 16:35:28 +01:00
Ian McInerney
72daeddca3
Get translation for 3d viewer appearance manager tooltips later
...
The translation database isn't setup during static variable
initialization, so we can't do translations until just before the
strings are used.
2023-08-23 23:49:44 +01:00
Seth Hillbrand
db8e15ce88
Require wxWidgets 3.2
...
Removes old defines and work arounds for earlier wx versions and adds a
CMake requirement to use at least 3.2 (or the minimum matching wxPython
version)
2023-08-23 22:02:56 +00:00
Jeff Young
0c37e3c443
Remove realistic-mode (and duplicated settings from preferences).
...
Most of these settings are now available in the appearances panel.
It was concluded in a Zulip discussion that any missing items can
be added back in time if people find they need them (ie: complain).
Also hooks up 3DViewer to the common language framework.
2023-08-23 14:07:58 +01:00
Ian McInerney
2d8b707a3a
Remove dummy pad from group before deleting
...
The dummy pad doesn't need group information, and it asserts when it has
it and is deleted.
Fixes KICAD-3B9
2023-08-21 10:32:50 +01:00
Jeff Young
ab06f277c5
Hook up 3D Viewer preferences menu to commands.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15445
2023-08-20 18:10:28 +01:00
Rastersoft
43fe1eec84
Unify mouse movements
2023-08-17 18:20:22 +00:00
jean-pierre charras
53b2fda184
Fix some minor compil and Coverity warnings.
2023-08-17 10:06:17 +02:00
Jeff Young
686704bb31
ADDED: plot control over FP text.
...
(Also adds said control to "Follow Plot Settings" in 3D viewer.)
2023-08-15 16:56:46 +01:00
Marek Roszko
2e5430a874
Fix MSVC build
2023-08-14 18:33:57 -04:00
Jeff Young
f45760062b
ADDED: appearances manager for 3D viewer.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12413
2023-08-14 18:08:36 +01:00
Ian McInerney
a3a701a95e
Move preferences to an action instead of a wx event
2023-08-08 00:51:22 +01:00
Jeff Young
5e112ca78e
ADDED: parameterize font metrics and allow customization of overbar height.
2023-08-06 20:57:41 +01:00
Jeff Young
0413270012
ADDED: Move Corner To... and Move Midpoint To...
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5012
2023-08-05 16:43:55 +01:00
jean-pierre charras
a16ab0aae1
Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name
...
issue with a Windows header on msys2.
Change very similar to the commit 9a47b344
about class PAD_SHAPE.
No actual code change
2023-07-25 09:11:55 +02:00
Seth Hillbrand
32ad42a435
Add 3dconnexion driver version check
...
Re-enable 3dconnexion driver by default as we are able to gate the
driver versions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13362
2023-07-24 18:09:52 +00:00
Josue Huaroto
8a407756c1
Change min and max zoom values
2023-07-22 14:52:54 +00:00
jean-pierre charras
619ec2a559
PANEL_PREVIEW_3D_MODEL: Always shows the footprint not flipped, and rot 0.
...
Otherwise, setting the 3D shapes rotation/position is not so easy.
2023-07-20 17:33:03 +02:00
jean-pierre charras
d7e470dbcc
PANEL_PREVIEW_3D_MODEL: add an option and fix an issue:
...
- added option: display board body or just copper layers
(useful to set the 3D model position)
- fix a bug: do not use 3D viewer settings, and do not modify 3D viewer settings
2023-07-19 12:30:42 +02:00
Jeff Young
a85a2b9cbc
Add via solder mask to 3D viewer rendering.
...
(Of course, only when vias are not tented.)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15164
2023-07-12 18:28:02 +01:00
Alex Shvartzkop
e43c8fcf6b
Non-Windows uses libs3d_plugin prefix for S3D plugins.
...
https://gitlab.com/kicad/code/kicad/-/issues/12871
2023-07-10 20:16:38 +05:00
Alex Shvartzkop
0781d8c175
Filter S3D plugins by name when running from build dir.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12871
2023-07-10 09:32:22 +05:00
Jeff Young
df63ca0189
Save a bit of space in FP 3D preview by moving board thickness to dlg.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13896
2023-07-09 20:36:55 +01:00
Ian McInerney
2fb6f19a84
Separate immediate and delayed action dispatch
...
Using a boolean argument just leads to a lot of trailing booleans in the
function calls and is not user friendly. Instead, introduce PostAction()
to send an action that runs after the coroutine (equivalent to passing
false or the default argument), and leave RunAction as the immediate
execution function.
2023-06-27 00:57:59 +01:00
Jeff Young
300a60e88e
Eradicate a bunch of calls to dyn_cast.
2023-06-25 11:10:05 +01:00
Ian McInerney
6a2dcd1936
Refactor 3D viewer view into enum class
2023-06-20 21:52:50 +01:00
Ian McInerney
b04e54dbea
Switch TOOL_EVENT and TOOL_ACTION to have a std::any parameter
...
Using std::any from C++17 allows for proper type handling in the
parameter field, removing the need for casting to void* and then casting
the void* to the desired type.
2023-06-20 21:52:50 +01:00
Mike Williams
993bb84240
PCB_FIELD: bug fixes
2023-06-20 18:34:52 +00:00
Mike Williams
37837dc392
PCB: introduce PCB_FIELD_T
2023-06-20 18:34:52 +00:00
Jon Evans
55c00f1845
ADDED: Initial support for importing Solidworks PCB files
2023-06-19 11:57:33 -04:00
Alex Shvartzkop
d3be62f644
Adapt panels to PAGED_DIALOG sizing algorithm.
...
Also some cosmetic fixes (GTK).
2023-06-16 19:12:37 +03:00
Jeff Young
5875f89531
Centralize text size clamping.
...
Also introduces alg::clamp to improve readability of
std::max( min, std::max( value, max ) )
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14876
2023-06-03 20:29:51 +01:00
Jeff Young
b53bc1ae38
Trim solder paste (and other layers) to holes.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8484
2023-05-30 00:02:27 +01:00
Jeff Young
cb7f314f4b
Handle through-hole via walls along with pads.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14757
2023-05-29 21:59:20 +01:00
Jeff Young
65e53b8ecd
Move SHAPE_POLY_SET::Inflate's error spec from a seg-count to a max-deviation.
...
1) Also reorders parameters to make sure the compiler helps out.
2) This also makes it harder to mess up the discrepency between
BOX2I/wxRECT/etc::Inflate() and SHAPE_POLY_SET::Inflate.
3) Also fixes a couple of bugs where the corner strategy was passed
in as a segCount.
4) Also fixes a couple of bugs where the error wasn't forced to the
outside to match the ERROR_LOCATION.
5) Also fixes a couple of bugs where the seg count was specified
without regard to an already passed-in max deviation
2023-05-29 15:29:03 +01:00
Jeff Young
c71cf21e2f
Use rendered text to generate bounding box for knockout text.
...
Don't open-code knockout text shape generation in several different
places.
Make sure triangulated knockout text gets clearance added when
specified.
Collapse duplicated footprint text item plot routine (they're no
longer any different from plotting pcb text items).
2023-05-28 17:20:11 +01:00
Marek Roszko
8a7044c3fb
Fix some more warnings
2023-05-20 08:00:16 -04:00
jean-pierre charras
66651327bd
STEP export: in board outlines, export Circles as Cylinders, round 2.
...
Other arcs (not 360 deg arcs) are still exported as polylines
2023-05-16 13:39:16 +02:00
jean-pierre charras
94bd1c6025
Fix a few Coverity warnings.
2023-05-12 18:53:55 +02:00
jean-pierre charras
484acd4246
BOARD_ADAPTER::addText() do not call Fracture twice: it is useless.
2023-05-09 09:18:20 +02:00
Jeff Young
b41d446f58
Fix a bunch more issues with sheetpaths and allowExtraText.
...
A sheetpath is required to correctly resolve text variables.
Depending on currentSheet is rife with bugs.
There are many places where we do *not* want to be prepending
field names to the field values, such as netlisting,
building PDF hypertext menus, etc.
Also, Find/Replace needs to work on unresolved text, as
that's what we're going to display (and if replace nuked
your variable references you wouldn't be happy).
2023-05-05 17:23:52 +01:00
jean-pierre charras
6618cda214
3D viewer: use the right color theme (the one used in the board editor)
...
Fixes #14616
https://gitlab.com/kicad/code/kicad/issues/14616
2023-05-01 16:51:27 +02:00
jean-pierre charras
1406341d2d
Fix a few doxygen errors (no actual code change)
2023-04-19 16:20:24 +02:00
qu1ck
a6d10c8e97
Enable warnings on msvc
2023-04-11 00:17:50 +00:00
Mike Williams
32eb1ef77e
Sch->PCB: propagate DNP from symbols to footprints attributes
...
Also add a 3D viewer toggle.
2023-04-10 13:11:21 -04:00
Jeff Young
3b63d70d01
Centralize NPTH has-annulus processing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13437
2023-04-08 15:06:49 +01:00
Seth Hillbrand
2cd854af14
Move Spacemouse to advanced config
...
The spacemouse driver, particularly on Mac, is extremely unstable and
causes crashes even when not being used. This places the interface
behind an advanced config flag to ensure that users can affirmatively
opt-in to the potential for crashes
2023-04-07 10:08:43 -07:00
Ian McInerney
ea62b145ff
Introduce core interface library
...
This library is meant to move non-EDA items (language extensions,
library extensions, etc.) into the lowest-level of our dependency chain.
This library should never depend on anyother non-thirdparty code in the
kicad codebase.
2023-04-06 15:01:18 +01:00
Jeff Young
bbd6c80507
Collapse FP_* down into their PCB_* equivalents.
2023-03-31 22:57:46 +01:00
jean-pierre charras
e0e2bcf20a
Ensure 3D shapes are always shown in footprint settings dialog.
...
Fixes #14371
https://gitlab.com/kicad/code/kicad/issues/14371
2023-03-22 08:47:42 +01:00
Seth Hillbrand
72ebe5a429
Avoid drawing null-arcs in 3d viewer
...
An arc with no radius or no angle is not visible and should be avoided
Fixes https://gitlab.com/kicad/code/kicad/issues/14271
2023-03-13 11:48:05 -07:00
Wayne Stambaugh
66f6168163
Fix mode-less dialog issues.
...
Don't assume the dialog is mode-less and call Destroy() from within a
dialog method. This will most assuredly crash if the dialog is shown
modally or quasi-modally.
Don't leak memory for mode-less dialogs created on the stack. Make sure
when the parent frame window is closed that all mode-less dialog memory
is cleaned up. Dialogs are not child windows like controls and toolbars
so their memory does not automatically get cleaned up when the parent
window is destroyed.
Do not directly access frame parent window's pointer in dialog destructors.
Apparently the tear down order when destroying mode-less dialogs is not
guaranteed so the parent window may get deleted before the dialog causing
a crash when accessing the parent window pointer from the dialog dtor.
Do not close mode-less dialogs in the parent frame's destructor. This
doesn't guarantee that the dialog(s) will be destroyed before the parent
but it may reduce some careless mode-less dialog event handling in the
future.
2023-03-13 12:04:01 -04:00
Seth Hillbrand
d7a6875b0b
3dviewer: Show footprint board regardless of proj
...
The settings for the project in terms of visibility should not impact
our ability to preview the 3d model of a footprint
Fixes https://gitlab.com/kicad/code/kicad/issues/14246
2023-03-10 15:18:45 -08:00
Ian McInerney
56b7d570f9
Remove uses of climits header/defines
...
2 of the 3 includes never used it, and the other could be switched to
the C++ numeric_limits class.
2023-03-10 17:08:56 +00:00
Ian McInerney
a6ebd60c3b
CMake: Modernize Boost import to use imported targets
2023-03-10 16:38:35 +00:00
Jeff Young
6a5f305684
Allow others to also process units changed event.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14156
2023-03-05 16:06:31 +00:00