Commit Graph

1238 Commits

Author SHA1 Message Date
Seth Hillbrand 3e815882c1 Threading additional 3d transform
Transforming solid areas to polygons can be time-intensive for some
boards.  This threads the transformation to all simultaneous builds in
different layers
2021-07-22 12:12:27 -07:00
jean-pierre charras e00f609bdd 3D viewer: add a bit more activity messages during 3D scene building. 2021-07-22 16:13:38 +02:00
Jeff Young 0fb864d596 Pull some name changes back from 7.0 to ease merging. 2021-07-21 20:58:59 +01:00
jean-pierre charras 396213fa30 3D viewer: shows 3D shapes hide/show option in main menubar (Preferences)
Although these options are already in Preferences/Preferences/3D Viewer,
a direct access is useful because it avoid rebuilding the 3D scene, not needed
to hide/show 3D shapes.
2021-07-21 17:55:27 +02:00
jean-pierre charras 0525d50c58 3D viewer: avoid recreating the 3D scene when not needed. 2021-07-21 12:37:44 +02:00
jean-pierre charras 1c1f7ac07e 3D viewer: fix a Coverity warning and add more messages when loading a board. 2021-07-19 08:27:01 +02:00
jean-pierre charras a43ca978df 3D viewer: do not build the board 3D data during 3D frame creation, but after.
Building the 3D data is time consuming, so creating the data after the 3D
frame is shown is better, and the build activity is visible, especially on Linux.
2021-07-18 17:55:40 +02:00
Marek Roszko c794a6ce7a Add pdb install option for msvc 2021-07-14 23:42:45 -04:00
Wayne Stambaugh 01515680b3 Code cleaning. 2021-07-14 15:47:32 -04:00
Marek Roszko 9162013132 Add advanced cfg to force reloading memory cached 3d models 2021-07-11 00:35:38 -04:00
Marek Roszko 7cb0f8f808 Add ADVANCED_CFG to always reload cached 3d models in memory 2021-07-11 00:31:06 -04:00
Marek Roszko 79b90813ec Add ADVANCED_CFG to skip caching 3d models to file 2021-07-11 00:00:06 -04:00
jean-pierre charras 289a35ad81 3D viewer, PANEL_3D_RAYTRACING_OPTIONS: use our DIALOG_COLOR_PICKER to select colors.
Fixes #8689
https://gitlab.com/kicad/code/kicad/issues/8689
2021-07-05 21:01:12 +02:00
Jeff Young ea6769b702 The REPORTER interface is inherently line-based.
Also fixes a bunch of error messages that were similar but not
identical (which just increases translation burden).

Fixes https://gitlab.com/kicad/code/kicad/issues/8723
2021-07-05 13:41:06 +01:00
Jeff Young c11ee69499 Save 3D prefs after editing, and load some of them into FP Props.
Fixes https://gitlab.com/kicad/code/kicad/issues/8712
2021-07-04 13:20:55 +01:00
Marek Roszko eff75b630f Get rid of anonymous struct typedefs
We are using C++14 where there is no reason for this and is banned in C++20 under P1766R1. MSVC generates a warning under C++14 as a reminder.
2021-07-01 18:28:41 -04:00
Wayne Stambaugh b579d004ad 3D Viewer: minor display options panel layout improvements. 2021-06-29 15:49:00 -04:00
Maurice d9a11c30ef 3d viewer fix for 3d single material object Diffuse Only opacity 2021-06-28 20:32:03 +00:00
Jeff Young 3347531f70 Better zoom defaults for 3D viewer.
Also includes a fix for 3D model viewer in the file dialog for Retina
(and possibly other HIDPI) displays.

Fixes https://gitlab.com/kicad/code/kicad/issues/6144
2021-06-28 19:08:23 +01:00
Jeff Young 73b91a1a92 More sensible zoom defaults for 3D viewers.
Also fixes a bug where the model viewer in the file picker was using
only 1/4 of the screen on HIDPI displays.
2021-06-28 19:08:23 +01:00
Jeff Young 4aa8318dc2 More error message regularization. 2021-06-27 14:24:02 +01:00
Jeff Young 5c21f93803 Consistency in progress and error messages. 2021-06-26 13:23:43 +01:00
Jeff Young 89718dd3ba Naming conventions. 2021-06-19 19:36:53 +01:00
Jeff Young 16047b7419 3D preferences bug fixes.
1) Make sure prefs get saved when closing parent frame.
2) Add camera projection mode to settings.

Fixes https://gitlab.com/kicad/code/kicad/issues/8110

Fixes https://gitlab.com/kicad/code/kicad/issues/8626
2021-06-17 12:22:18 +01:00
Seth Hillbrand 3269ca3201 Fix compile error on BSD
The cast here should actually be from '0' and not 'NULL' as we are
getting an integer value of 0 for the bbox_idx_count

Fixes https://gitlab.com/kicad/code/kicad/issues/8580
2021-06-16 09:19:39 -07:00
Jeff Young 5d9c1dd75a Better names for 3D material properties rendering modes.
(Also restores the legacy behaviour of ignoring transparency in
diffuse mode.)

Fixes https://gitlab.com/kicad/code/kicad/issues/8437
2021-06-12 23:01:41 +01:00
Jeff Young 096e342386 Prefix TRACK, ARC and VIA. 2021-06-11 22:07:02 +01:00
Jeff Young 16b0147af8 Prefix DIMENSION types. 2021-06-11 17:59:44 +01:00
jean-pierre charras 6ab995d6a4 3d-viewer preferences: fix incorrect parent of a panel. 2021-06-11 16:09:00 +02:00
Jeff Young 44086ff2b2 Pull 3D preferences into KiCad preferences architecture.
Fixes https://gitlab.com/kicad/code/kicad/issues/5187
2021-06-11 11:19:40 +01:00
jean-pierre charras 1c3df973d6 Coverity warnings fixes. 2021-06-10 13:45:02 +02:00
luz paz 5f1e9bc8a7 Fix typos in source code 2021-06-10 01:24:15 +00:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Marek Roszko d946d6e68f Cleanup some pgm_base.h includes 2021-06-08 21:56:00 -04:00
Marek Roszko 8377ebb0e1 Fix msvc warnings 2021-06-06 15:30:31 -04:00
Marek Roszko 10e60acf34 Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
Ian McInerney dc27079b71 cleanup tool event and tool action includes 2021-06-06 18:26:26 +01:00
Marek Roszko 4712d7a918 Remove a leaky wx/msgdlg.h include 2021-06-06 08:45:38 -04:00
Jon Evans c9a660a80c Rework JSON integration to speed up build 2021-06-05 17:08:38 -04:00
david-beinder 86add3bb85 Fix MSVC C4312 warnings when casting 32bit ints to pointer types on 64bit builds 2021-06-05 02:57:51 +00:00
Marek Roszko 25678ee00d Fix msvc 16.10 build error 2021-06-03 23:13:39 -04:00
Marek Roszko 4df3cb912d Remove another leaky wx/log.h header 2021-06-03 08:11:15 -04:00
Marek Roszko 24cb0e77eb Fix MSVC builds after recent changes 2021-06-02 23:57:45 -04:00
Ian McInerney d56251fdac Remove universal include of wx.h in 3d viewer OpenGL file 2021-06-03 02:29:09 +01:00
jean-pierre charras a06f965ffa 3Dviewer: fix incorrect drawing of a 3d model hovered by the mouse pointer.
Was due to a recent change in 3D code.
2021-05-22 20:23:43 +02:00
jean-pierre charras d1061b9683 3D viewer: Fix broken handling of text thickness, thus creating erroneous item positions
Especially, texts having a not centered justification were shown with artifacts.
2021-05-15 13:18:06 +02:00
Jeff Young 7bcd524fbd Fix typo. 2021-05-11 23:14:43 +01:00
Jeff Young ac58a3f9f0 Add preference for 3d-model-highlight-on-rollover.
Fixes https://gitlab.com/kicad/code/kicad/issues/8349
2021-05-11 20:53:53 +01:00
Wayne Stambaugh d2a7f81b10 Debugging improvements and clean up.
* Remove unused wxLogDebug calls.
* Add add application level character tracing to detect unhandled key
  events.
* Catch unhandled exceptions in KiCad main event loop like single top
  applications.
2021-05-03 18:08:15 -04:00
jean-pierre charras 0427bda768 Remove useless wx/wx.h include, that create sometimes compil warnings on msys.
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming
2021-05-01 19:32:15 +02:00
Marek Roszko 03cf2b517f Enum class PAD_ATTR_T
Renamed such that python stays the same
2021-05-01 10:51:54 -04:00
Marek Roszko b243c2280d enum class PAD_SHAPE_T 2021-05-01 08:22:35 -04:00
Marek Roszko 21fde9b629 enum class PCB_SHAPE_TYPE_T 2021-04-30 22:36:12 -04:00
Marek Roszko a69256e15b Remove extraneous #include 2021-04-30 21:55:48 -04:00
Ian McInerney ecd9bf696e Be consistent about using nullptr instead of 0
0 can be too easily overloaded into an int, so ensure we use nullptr
when we mean pointers.
2021-04-22 22:20:34 +01:00
Mario Luzeiro e92dc96767 3D-Viewer: fix issue with solder mask
Fixes https://gitlab.com/kicad/code/kicad/issues/8272
2021-04-22 06:26:04 +00:00
Mario Luzeiro cdc8fd3804 3D-Viewer: improve edge texture clamping of end segments
Fixes https://gitlab.com/kicad/code/kicad/issues/8245
2021-04-21 06:34:19 +00:00
david-beinder e0f69ad28b 3D viewer: Fix gap between plating and annulus copper
Hide transition by ending layer copper withing the annulus of the cylinder. Also always use hole wall thickness and set more realistic solder mask thickness
2021-04-19 13:19:32 +00:00
Wayne Stambaugh 2ae264751f Rename class_board_stackup.{h|cpp} to board_stackup.{h|cpp}. 2021-04-16 17:07:06 -04:00
Mikolaj Wielgus 744e70df36 3D Viewer: Fix mouse panning in orthographic projection mode
Fixes https://gitlab.com/kicad/code/kicad/issues/5561
2021-04-10 17:58:50 +00:00
Jon Evans c1573744be Lock project files when opening; open locked projects read-only
Also clean up an include-what-you-use problem

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8037
2021-04-02 19:29:56 -04:00
Ian McInerney 0a0935e0f3 Remove ACTIONS::TranslateLegacyId and TOOL_DISPATCHER::DispatchWxCommand
After commit 9535153f9e there were no more IDs inside the legacy ID
system. Therefore the entire system for dispatching and looking up
the legacy ideas and handling those events can now be removed and
the tool dispatcher simplified (it no longer needs to know about
the ACTIONS class).
2021-03-30 23:20:22 +00:00
jean-pierre charras 23667fc4c4 3D viewer: make solder paste layer thickness bigger than the mask layer.
Some specific footprints need shapes on paste layer covering the mask layer,
so ensure these shapes are visible.
Fixes #8041
https://gitlab.com/kicad/code/kicad/issues/8041
2021-03-26 18:02:30 +01:00
Jon Evans c04e19f9ac Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
jean-pierre charras c08f74168c 3D viewer: BOARD_ADAPTER::createPadWithClearance() add missing handling of SH_ARC shape. 2021-03-20 14:15:47 +01:00
Jon Evans 18037e2f65 Rework bitmap system to load from archived PNGs
Bitmaps are now identified by an enum class instead of by pointers.
Bitmap loading and caching is now handled by a class in common, and
we no longer compile most bitmaps into the binary, so there is no
longer a bitmaps static library.

Instead, bitmaps are archived to a .tar.gz file which is installed
in ${KICAD_DATA}/resources/images.tar.gz

The source PNGs are checked in to Git as the original CPP files were,
so that people can build without the required dependencies to convert
SVGs to PNGs.

Initial support is also added for dark theme icons, although this
is not yet exposed in the GUI.

Stubs are present for multi-resolution image resources, but this is
not fully-baked yet and could use some refinement.
2021-03-11 08:37:35 -05:00
jean-pierre charras fe02155b5a 3D viewer, DIALOG_3D_VIEW_OPTIONS_BASE: fix minor wxWidgets alerts and Add
minor cosmetic changes.
Fixes #7846
https://gitlab.com/kicad/code/kicad/issues/7846
2021-03-09 11:23:33 +01:00
Dominik Wernberger e2aa7be4b3 Added a lot of consts and refactored a few lines 2021-03-08 12:49:48 -08:00
Jon Evans 720147d272 Remove transitive inclusion of bitmaps.h 2021-03-07 16:08:57 -05:00
Seth Hillbrand 283d176cdc Use std::locale::classic() globally
This is a better alternative when imbuing streams
2021-02-26 17:21:55 -08:00
kamp 0a9a9d625e Fix BBOX_3D documentation 2021-02-24 17:45:53 +00:00
Marek Roszko 907e282347 Silence some msvc warnings
- exception variables that were unused
- RAYSEG2D improperly foward declared with class instead of struct
- unused vars
2021-02-20 11:58:55 -05:00
Jeff Young 66b33834b5 Always enable save; move dirty bit to asterisk in title bar.
Also unifies PCB Editor and Schematic Editor names with other
locations in the GUI (which were still Pcbnew and Eeschema).

Fixes https://gitlab.com/kicad/code/kicad/issues/7587

Fixes https://gitlab.com/kicad/code/kicad/issues/7594
2021-02-18 16:05:42 +00:00
Jeff Young b6a7981e62 Write changes back to grid after using file explorer.
Fixes https://gitlab.com/kicad/code/kicad/issues/7361
2021-02-17 14:08:53 +00:00
Marek Roszko b609c7dcd6 Kick the osx specific path helpers into PATHS 2021-02-16 23:29:26 -05:00
Marek Roszko 2370ca1b0e Minor code clean, standard "new" does not need to be null checked
Because it will bad_alloc exception you instead :D
Silence PVS Studio V668 Warnings
2021-02-16 18:24:59 -05:00
Marek Roszko f2552d7bc1 Tweak the reported last render message slightly 2021-02-15 17:47:43 -05:00
Marek Roszko f88be65825 Remove mention of FPS
We are not a real time rendering engine
2021-02-15 17:00:00 -05:00
Marek Roszko 36d8ca7954 Fix statusbar conflict in 3d viewer
Fix #7544
2021-02-15 17:00:00 -05:00
Marek Roszko 872184fe8b Revert "Bump minimum required CMake version to 3.10"
This reverts commit a475f45753.
2021-02-09 18:46:13 -05:00
Simon Richter a475f45753 Bump minimum required CMake version to 3.10
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00
Seth Hillbrand 624a231cc0 Remove unused line width option
You had to set the line width in the SVG export dialog in order to
change the displayed line width in the 3d viewer.  The line width did
not affect the SVG export.  Removing in favor of the Board design
settings for line widths
2021-02-06 06:44:53 -08:00
Roberto Fernandez Bautista 9aedeae5c3 Don't log error messages when using the clipboard
wxClipboard::GetData()and wxClipboard::SetData() both log a "wxLogSysError" error-level message (see for example:  https://github.com/wxWidgets/wxWidgets/blob/v3.1.4/src/msw/clipbrd.cpp#L703 ). This logged message gets displayed as a messagebox to the user.

The logging can be disabled temporarily by creating a wxLogNull object. See https://docs.wxwidgets.org/3.0/classwx_log_null.html

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6956
2021-02-03 01:55:05 +00:00
Marek Roszko bf2e7215a5 const SGPOINT::GetPoint args 2021-02-01 08:13:00 -05:00
Jeff Young e72262a007 Don't render un-enabled layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/7313
2021-01-30 16:31:27 +00:00
Marek Roszko 914568f1a0 Fix macos using the wrong 3d plugins path 2021-01-27 19:12:19 -05:00
Marek Roszko daf9c4f319 Centralize the 3d cache path 2021-01-27 19:12:19 -05:00
Marek Roszko 7b5397f81f Move PLUGINDIR to the make config.h 2021-01-27 19:12:19 -05:00
Marek Roszko 14327f3708 Cleanup the 3d plugins paths a little bit 2021-01-27 19:12:18 -05:00
Wayne Stambaugh 6ab1144ea3 Fix broken Doxygen comment specifiers.
Please note, ///> is not a valid Doxygen comment specifier.  ///< is the
correct specifier to use for single line or short Doxygen comments.
2021-01-25 07:42:36 -05:00
Michael Kavanagh b90eabd68b Icons: out with the old, in with the new
+ remove icons where they dont make sense or are duplicated within the
same context
2021-01-19 22:57:24 +00:00
Michael Kavanagh 50e22de3ba Remove empty option from 3D Viewer dropdown 2021-01-17 23:11:29 +00:00
Roberto Fernandez Bautista 49f454e32b Line width already factored into polygon shapes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7130
2021-01-16 08:39:20 +00:00
Jeff Young ee6ec2c35c Line width already factored in to rectangle polygon.
Fixes https://gitlab.com/kicad/code/kicad/issues/7113
2021-01-14 16:54:20 +00:00
Wayne Stambaugh 2d64613bbb Coverity fixes.
Reports 314745, 316271, and 316269.
2021-01-13 11:23:09 -05:00
Wayne Stambaugh 6f0319e29f Fix potential bug in 3D model selection dialog.
Calling EndModal or EndQuasiModal will cause KiCad to hang if the dialog
was not opened in the same manor.  The modality of the dialog must be
checked and the appropriate end method must be called or emulate a button
click which allows the default dialog close method to be called to handle
shutting down the dialog correctly.
2021-01-13 09:20:23 -05:00
Seth Hillbrand 26524ef41e Select model on double-click
Fixes https://gitlab.com/kicad/code/kicad/issues/7070
2021-01-12 15:21:29 -08:00
Jeff Young 751fdbf278 Simplify layout & terminology in 3D settings dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/6659
2021-01-09 20:53:24 +00:00
Wayne Stambaugh 926cc3a00d 3D Viewer: more code cleaning and naming improvements. 2021-01-07 14:33:43 -05:00
jean-pierre charras 86be755c83 Fix compil warning: do not use class instead of struct in forward declarations 2021-01-06 09:29:03 +01:00