Ian McInerney
99dcadf7e6
Introduce new KI_FALLTHROUGH macro
...
Annotate purposeful fallthroughs in switch statements with the
KI_FALLTHROUGH macro.
2020-04-25 00:44:09 +01:00
Ian McInerney
ff67d6300d
Hide more OpenGL deprecation warnings on OSX
2020-04-24 23:28:31 +01:00
jean-pierre charras
cf66aac15d
3d viewer: fix compil issue (missing include in c3d_render_ogl_legacy.cpp)
2020-04-24 08:24:59 +02:00
Mario Luzeiro
b0bf9f7b57
3D-Viewer: use wxStaticBoxSizer for options, fix coding style
2020-04-23 17:28:56 +01:00
Mario Luzeiro
67fe304f1f
change the default display tab
2020-04-23 09:29:39 +00:00
Mario Luzeiro
00da17bc7d
3D-Viewer: Add new options: Anti-aliasing quality, "While moving"
...
Create new window options with tabs for 3D-Viewer. Remove
"showCopperThickness" option from menus and place it on OpenGL options.
2020-04-23 09:29:39 +00:00
Mario Luzeiro
656efc8d62
3D-Viewer: disable AA while moving
...
disable AA for Raytracing
Fixes #4007
2020-04-23 09:29:38 +00:00
Emery Burhan
b1ac504fcd
3d_viewer: Fix bottom view image being too dark when floor+shadows are enabled
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2083
2020-04-22 23:00:15 +00:00
Jeff Young
c08a6adb2a
Implement GUI and file R/W for 3D model opacity.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2087
2020-04-19 18:24:39 +01:00
Ian McInerney
e528769637
Move TOOLS_HOLDER into tools/ folder
...
Also clean up some compiler warnings
2020-04-19 01:51:49 +01:00
Ian McInerney
7bda8178d1
Move library includes to main CMake file
...
Placing them behind the SYSTEM directive tells CMake to tell
the compiler they are system libraries, so it shouldn't show
warnings created from them.
2020-04-19 01:11:56 +01:00
Jeff Young
2b6089240a
Change super/subscript syntax to ^{foo} and _{foo}.
2020-04-18 21:04:41 +01:00
Oleg Endo
ae6fbc9c60
Improve 3D viewer rendering performance
...
* Use GL vertex buffers and index buffers for 3D model rendering
* Use material or average vertex color for bounding boxes instead of red
* Reinstate bounding box rendering with GL vertex/index buffers
* Use compact vertex/index data representation
- 8-bit normals
- 8-bit colors
- 16-bit or 32-bit indices, depending on model size
This should improve performance a bit on lower end GPUs with less memory
and bandwidth.
Fixes #4112
2020-04-17 16:10:04 +00:00
Jeff Young
9c8941e040
Remove a bunch of globals.
2020-04-16 17:34:46 +01:00
Simon Richter
99c1d7cf96
Add noexcept to some functions in the 3d viewer.
2020-04-16 16:11:21 +00:00
Jeff Young
6e800bddae
Rationalize penWidth processing as first step in removing some globals.
2020-04-13 20:58:13 +01:00
Jeff Young
174856bac5
Promote 3D model "preview" flag to a persisted "show" flag.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2061
2020-04-10 22:49:56 +01:00
Jeff Young
191d4daf53
Fix crash on OSX. (It appears the DC isn't used anyway.)
2020-04-10 22:49:56 +01:00
jean-pierre charras
2c8ada42a0
Arc shaped track segments: fix 3D viewer and track to polygon converter.
2020-04-09 10:37:17 +02:00
jean-pierre charras
2401917776
Fix a bug I added in commit b1b8a320
.
...
Fixes #4170
https://gitlab.com/kicad/code/kicad/issues/4170
2020-04-07 16:36:38 +02:00
Ian McInerney
cb380cda0c
Fix some build warnings
2020-04-06 00:31:45 +01:00
Jeff Young
cc9ac37a0e
Add text variable support to envVar processing.
2020-04-05 20:52:26 +01:00
jean-pierre charras
b1b8a32078
fix a few Coverity warnings and compil minor warnings.
2020-04-03 09:54:47 +02:00
jean-pierre charras
00d9e77e7f
3D viewer: fix a minor problem: to many rotations when typing Shift+z or Shift+y
...
more than once.
Fixes #4135
https://gitlab.com/kicad/code/kicad/issues/4135
2020-03-31 17:35:45 +02:00
Jeff Young
42a876d963
Fix a duplicate definition of the TOOL_DISPATCHER.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4110
2020-03-28 18:44:34 +00:00
Jeff Young
5134856f18
Rationalise 3D settings data-structure.
...
Move the camera out to its own so that everything else is board-
related, and then rename BOARD_ADAPTER.
At some point the flags should probably be moved out too, and they
can have the EDA_3D_SETTINGS name.
2020-03-28 16:09:40 +00:00
jean-pierre charras
04d6ea982d
3D viewer: fix an issue with solder paste layer having negative clearance.
...
The code tried to draw outlines with segments having a negative thickness.
It happens mainly on solder paste layers.
Fixes #4090
https://gitlab.com/kicad/code/kicad/issues/4090
2020-03-26 13:46:14 +01:00
Jeff Young
ba36fc0009
Fix some Coverity issues.
2020-03-25 14:38:43 +00:00
jean-pierre charras
5f7bcb9c34
3D viewer: fix a minor issue in solder paste rect pads:
...
the solder paste mask clearance was no taken in account for rect and trap shapes.
2020-03-25 13:04:30 +01:00
Jeff Young
d69ebfae49
Push tool framework base down into TOOL_HOLDER.
...
This allows us to use it outside of EDA_BASE_FRAMEs (in this case, in
PANEL_PREVIEW_3D.)
2020-03-24 19:00:25 +00:00
jean-pierre charras
cc47062b17
Fix a few Coverity issues
2020-03-23 16:17:22 +01:00
Wayne Stambaugh
d8e99dc5be
3D Viewer: fix broken check for write image permission check.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4081
2020-03-21 16:19:55 -04:00
Jeff Young
103b0c18de
Hook up a few more 3D commands missed in last commit.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4074
2020-03-21 01:29:30 +00:00
Jeff Young
55e56c6cc1
Don't let 3DViewer steal other tools' hotkeys.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4074
2020-03-20 20:35:52 +00:00
Jeff Young
e9cd9ee8ff
Actionize the rest of the 3D viewer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2228
2020-03-19 15:10:32 +00:00
Wayne Stambaugh
fc20f9f0b2
3D viewer: fix double warning attempting to save screen shot file.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4028 .
2020-03-16 12:45:09 -04:00
Jon Evans
0df2191663
Fix missing changes from last commit
2020-03-07 16:17:25 -05:00
jean-pierre charras
b7cd0c54c2
Fix compil issues, especially on Windows:
...
Replace SEVERITY_ERROR by RPT_SEVERITY_ERROR to avoid collision with a system definition.
Replace other SEVERITY_XXX by RPT_SEVERITY_XX for consistency.
Fix compil warnings and some other compil issues.
2020-03-04 10:48:18 +01:00
Jeff Young
85c2e0d23a
Add user-defined severities, exclusions and colors to DRC markers.
...
Exclusions are currently persisted in the project file.
Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-04 00:39:28 +00:00
Jon Evans
e59a3d981e
Implement a new settings framework across all of KiCad
...
CHANGED: Settings are now stored in versioned sub-directories
ADDED: First-run dialog for migrating settings from a previous version
CHANGED: Settings are now stored as JSON files instead of wxConfig-style INI files
CHANGED: Color settings are now all stored in a separate settings file
CHANGED: The symbol editor and footprint editor now have their own settings files
CHANGED: Color settings are no longer exposed through BOARD object
CHANGED: Page layout editor now uses Eeschema's color scheme
Settings are now managed through a central SETTINGS_MANAGER held by PGM_BASE.
Existing settings will be migrated from the wxConfig format on first run of each application.
Per-application settings are now stored in one class for each application.
2020-02-19 23:44:56 -05:00
Ian McInerney
34e5b76c5f
Add virtual constructors to some classes that should have them
...
This is more for safety from undefined deletion behavior than
anything else (it also silences the Clang -Wnon-virtual-dtor warning).
2020-02-05 22:19:14 +00:00
jean-pierre charras
0049185d06
Eeschema: Speed up global changes in DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS.
...
Previously, OnModify() was called for a lot of items, even when not modified.
For large schematics, the calculation time was unreasonable ( several minutes)
It is now called only a few times.
2020-02-04 14:04:11 +01:00
Ian McInerney
5053f58bfc
Move 3d viewer board outline warning to the status bar
...
This is less intrusive than a dialog that is constantly opening
whenever the 3d view is refreshed.
2020-02-03 22:09:14 +00:00
Mario Luzeiro
970a0a593a
3d-viewer, add an option to subtract Mask from Silk
...
Remove holes on Silk layer by default so the behaviour is the same
on OpenGL and Raytracing.
Fixes #1836
Fix raytracing shadow offset issue.
Some codestyle fix.
2020-01-29 16:00:05 +00:00
Ian McInerney
c5a9479953
Only get 3D viewer colors when launched from the PCb editor
...
When launched from CVPCB or the footprint editor/viewer the stackup
isn't user-editable, so it just gives its default colors.
2020-01-22 22:48:20 +00:00
Fabien Corona
183bbf6914
3d-viewer : synchronise colours with board stackup.
...
ADDED: 3d-viewer can now look up colours defined in board properties
Fixes https://gitlab.com/kicad/code/kicad/issues/2261
2020-01-22 22:38:30 +00:00
Ian McInerney
39b1f0e1ff
Replace wxCriticalSection with std::mutex
2020-01-15 23:42:16 +00:00
Ian McInerney
56f6b529c8
Simplify 3D object cache class structure
...
Remove the CACHE_WRAPPER whose sole purpose was to allow the
cache to be stored in the project, and instead just have the cache
inherit the proper class.
2020-01-15 23:32:05 +00:00
Ian McInerney
bc6139359b
Smoothen rotation in 3D viewer when crossing the 0-2pi line
...
Rotating to 0 when above pi would result in the board spinning back
through pi to get there. This led to jarring motion.
Also fix an issue added in b6f64815
where the board would rotate
2pi when crossing over the 0-2pi boundary.
2020-01-15 18:10:05 +00:00
jean-pierre charras
b6f64815f4
3D viewer: normalize rotation angles between -2_PI and 2_PI.
...
Fixes #3761
https://gitlab.com/kicad/code/kicad/issues/3761
2020-01-13 14:30:49 +01:00
Ian McInerney
f896043067
Fix comments for switch statement fall throughs
...
This cleans up all GCC warnings (-Wimplicit-fallthrough=2) about
implicitly falling through switch cases.
2020-01-11 19:16:32 +00:00
Seth Hillbrand
7c28c3838a
Comment-only changes
...
Makes class comments conform to coding standards
2020-01-10 16:43:01 -08:00
Ian McInerney
13b6028e1b
Refactor all math into a new kimath library
...
* Split up the thirdparty code into the thirdparty folder (#3637 )
* Create a new kimath static library containing all the math functions
This is part of cleaning the build system for #1906 .
2020-01-07 17:12:59 +00:00
Mario Luzeiro
2c00540ad6
3d-viewer, make ortho projection zoom similar as prespective projection
...
Fixes #1843
Fixes reload of Raytracing when the projection button is pressed.
2020-01-07 03:29:36 +00:00
Mario Luzeiro
518c1df81b
3d-viewer, ray-tracing, do not add coincident segments
...
Fixes #1946 (lp 1852970)
2020-01-06 14:11:02 +00:00
Seth Hillbrand
84048262bd
Descope KB defines
...
The 3d viewer is the last component to not use the action framework, so
we descope the common defines to its canvas. Once the 3d viewer is
converted, we can remove these entirely.
2020-01-06 05:43:18 -08:00
Mario Luzeiro
37c3e34486
3D-viewer: raytracing, implement multiple shape board.
...
Fixes #1879 (lp:1820099)
Fixes #2126 (lp:1764039)
2020-01-04 20:50:37 +00:00
Mark Roszko
b11d52eda1
Scope 3d viewer enums
...
Also fix one rogue character in a gerbview file that wasn't proper UTF8.
2019-12-30 13:01:06 +00:00
Ian McInerney
c21e96bcf9
Add virtual destructor to CMATERIAL
...
CMATERIAL is a base class, so it should have a virtual constructor
to prevent undefined behavior (and silence warnings).
2019-12-28 16:44:28 +00:00
Ian McInerney
6faa2188ed
Silence warnings on MacOS about OpenGL deprecation
...
Apple has apparently deprecated OpenGL and replaced it with
their Metal API. It still works for now though.
2019-12-28 16:05:03 +00:00
Jeff Young
9d0198bade
Easier control of zoom in 3D viewer.
...
Go to 3 steps per doubling (instead of 2), and start at 2/3 instead
of 1/2.
2019-12-28 11:58:33 +00:00
Mark Roszko
19ceb11ae7
Change more enums over to scoped enums
2019-12-28 00:55:11 +00:00
Mark Roszko
11ff16be4e
Switch to scoped enums
2019-12-20 14:11:39 +00:00
Mark Roszko
ae785194ce
Silence/fix double to float conversion warnings
2019-12-12 21:51:21 +00:00
Seth Hillbrand
eb3d32f967
SHAPE_LINE_CHAIN: Unify constructors
...
Keeps the multi element SHAPE_LINE_CHAIN constructors in a single
routine using std::vector and implicit construction.
2019-12-12 13:54:48 +00:00
Seth Hillbrand
6983c56cf8
Use const references where possible
...
This avoids copy cost on local vars where we only read.
2019-12-05 14:40:22 -08:00
Seth Hillbrand
c6f5df134c
Minor speed cleanup
...
This adjusts iterators to use const reference when only used for
copy. It also ensures pre-allocation of vectors when size is known
ahead of time.
2019-12-05 14:20:59 -08:00
Seth Hillbrand
b5f021ff9f
Cleanup: Replace push_back with emplace_back
...
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
Seth Hillbrand
4d2e953f42
Cleanup: Replace C-only deprecated headers
...
This replaces headers deprecated by C++14 with their equivalent
replacement
2019-12-05 11:03:15 -08:00
Seth Hillbrand
79972a3867
3d: Fix initialization call
...
The vector duplication call was invalid as growing the vector
invalidates the iterators.
2019-11-07 04:45:46 -08:00
jean-pierre charras
9f156aa115
3D viewer: do not translate Ctrl and Shift hotkey modifiers: Translations do not always work
2019-09-24 09:41:05 +02:00
jean-pierre charras
06a50751e8
3d viewer: Fix duplicate hotkeys/accelerator keys.
...
keys X, Y, Z were used both to rotate view and to force left/right view, front/back view, top/bottom view
Now rotate view uses Ctrl+ X,Y,Z keys
2019-09-23 18:51:18 +02:00
Michal Jahelka
ae79a2bdcf
c3d_render_ogl_legacy.cpp: initialize m_Emissive member of SMATERIAL to be sure it is set to 0, 0, 0
2019-09-10 17:39:48 +02:00
Jeff Young
8dd8740fa3
Performance enhancement for pad drawing.
...
Fixes: lp:1843065
* https://bugs.launchpad.net/kicad/+bug/1843065
2019-09-09 13:45:06 +01:00
Jeff Young
a25368cc6b
Improve spelling.
...
The groundwork here is thanks to kunda1.
Fixes: lp:1831510
* https://bugs.launchpad.net/kicad/+bug/1831510
2019-08-20 19:14:05 +01:00
Jeff Young
baeb3689b5
Improve SNR (and spelling).
2019-08-20 18:02:28 +01:00
Seth Hillbrand
4fcfd266e0
3d: Disable floor rendering by default
...
The floor render in raytracing creates interesting shadow effects but
significantly increasing the processing time for renders and has the
side effect of making the bottom of the board very dark if you simply
flip it over. Making this option off by default, we allow power users
to turn it on if needed for their renders while speeding up the default
raytrace and preventing new user confusion.
2019-08-16 11:39:36 -07:00
Seth Hillbrand
59ed9f086f
3d-viewer: Remove dead code
...
The 2d-bbox of the 3d viewer was calculated and set but never used
2019-08-16 10:56:32 -07:00
Simon Schubert
0823692dda
3d: min dot needs to be square
...
Given that we compare the dot product (square of length) to s_min_dot,
it means that s_min_dot also needs to be square, or we wind up
converting line segments into circles that are visually distinct from
circles, leading to gaps in polylines.
2019-08-15 14:02:00 -07:00
Simon Schubert
e01348cccc
3d canvas: use radius, not width for circles
2019-08-15 14:02:00 -07:00
Ian McInerney
8493daf9ff
Unify menu item creation for closing a window
...
* Push a function into CONDITIONAL_MENU that adds the item
* Modify the tooltip for close and exit items to have the
program name
Fixes: lp:1835454
* https://bugs.launchpad.net/kicad/+bug/1835454
2019-08-14 09:35:15 +01:00
Jeff Young
17d015ed5d
Strip illegal chars from 3D filepath and change rotation increment to 90deg.
...
Fixes: lp:1823559
* https://bugs.launchpad.net/kicad/+bug/1823559
2019-08-08 23:02:37 +01:00
Jeff Young
4399a52ad3
Work around a wxWidgets bug that loses the preferences item from the menu.
...
Fixes: lp:1839148
* https://bugs.launchpad.net/kicad/+bug/1839148
2019-08-06 11:50:19 -06:00
Jeff Young
6069263beb
Add ctrl-W to 3D viewer.
...
Fixes: lp:1835454
* https://bugs.launchpad.net/kicad/+bug/1835454
2019-08-05 16:48:18 -06:00
jean-pierre charras
d4e9ddc14c
3D viewer: fix check state of some menuitems not correctly updated.
...
Fixes: lp:1837950
https://bugs.launchpad.net/kicad/+bug/1837950
2019-07-31 09:19:44 +02:00
Michael Kavanagh
300fb43a38
Fix a couple more lost menubar separators
...
Fixes: lp:1838422
https://bugs.launchpad.net/kicad/+bug/1838422
2019-07-30 20:05:36 +02:00
jean-pierre charras
9b6c8c885b
3D viewer: fix preferences/grid issues: grid menuitems always disabled.
2019-07-30 19:12:34 +02:00
Jeff Young
37af3adffb
Add preference for flip axis.
...
Fixes: lp:1836267
* https://bugs.launchpad.net/kicad/+bug/1836267
2019-07-14 10:36:48 +01:00
Jeff Young
2d17d2b91f
Cleanup and commenting.
2019-07-14 10:36:48 +01:00
Jeff Young
f088d4d762
Add env-var setting to CommonSettingsChanged().
...
Fixes: lp:1804925
* https://bugs.launchpad.net/kicad/+bug/1804925
2019-06-25 11:34:28 +01:00
Jeff Young
65821f747d
Bring 3D viewer in line with Pcbnew's solder mask rendering.
2019-06-25 11:34:28 +01:00
Seth Hillbrand
98124e68c7
Update exit strategy to match UI guidelines
...
In singletop mode, all frames show the "Quit" option in the file menu
and will quit on Ctrl-Q. When launched from the main KiCad interface,
sub-programs show the "Close" option instead and will close with Ctrl-W.
In this mode, Ctrl-Q will instruct the main program to exit.
Fixes: lp:1779938
* https://bugs.launchpad.net/kicad/+bug/1779938
2019-06-24 21:46:42 -07:00
Seth Hillbrand
d132cf37e0
Allow null path in 3d model
...
This allows a setting where the path is not one of the options. This
permits the user to select once to go to any path option (rather than
off the current and then back to currect) when the filetree doesn't
match the dropdown. This also selects the drop down item if it matches
the tree.
(cherry picked from commit f5284ced54
)
2019-06-20 20:15:40 -07:00
Seth Hillbrand
77cefe0c16
Normalize line endings
...
A few files snuck in with CRLF for the line endings. These make it hard
to look at diffs as every line appears to have changed. This commit
makes only line ending changes, so can be ignored
2019-06-19 15:18:30 -07:00
Jeff Young
0f0323da5a
Make sure all menus get Resolve() called for GTK.
...
Fixes: lp:1833274
* https://bugs.launchpad.net/kicad/+bug/1833274
2019-06-18 20:24:15 +01:00
Wayne Stambaugh
2f2c358aef
Set about dialog name for 3D viewer frame.
2019-06-18 15:13:08 -04:00
Jeff Young
e6d5110ccf
Implement I18N for ACTIONs.
...
It's a bit of a hack because they're statically initialized and
so we can't make use of the _() macro. We do still want it in the
code, however, because the string harvesting is based off of it.
Fixes: lp:1833000
* https://bugs.launchpad.net/kicad/+bug/1833000
2019-06-17 10:45:23 +01:00
Jeff Young
a3f3fb39de
Convert 3DViewer to new hotkey architecture.
2019-06-10 23:46:01 +01:00
Jeff Young
5e49517781
Move hotkeys to ACTION architecture.
2019-06-10 23:46:00 +01:00
Jeff Young
64b18ea06a
Use qualified window names when searching for 3D viewers.
...
Just searching in children didn't work because the windows aren't
actually in the child window lists.
Fixes: lp:1831774
* https://bugs.launchpad.net/kicad/+bug/1831774
2019-06-05 21:23:41 +01:00