Jeff Young
d01b29ab37
Cleanup pad geometry handling.
...
There were a lot of plotters, exporters, etc. that were rolling their
own implementations.
This also introduces a lazily-built set of SHAPE objects for doing
collision detection and some forms of rendering (and later DRC).
2020-06-22 22:28:37 +01:00
Ian McInerney
d46f9a5273
Give the 3D viewer an infobar & Infobar upgrades
...
ADDED: Infobar warning in 3d viewer for board outline issues
2020-06-04 00:13:27 +01:00
Mario Luzeiro
94ed433f64
3D-Viewer: Fixes #4432
...
Set default transparency of model from the assigned material.
2020-05-22 13:28:04 +00:00
jean-pierre charras
3b84653591
3D viewer: avoid crash in raytracing (null pointer use) if layer mask is
...
not shown and must be removed from silk screen layer.
Fixes #4430
https://gitlab.com/kicad/code/kicad/issues/4430
2020-05-14 11:50:12 +02:00
Simon Richter
632494cba7
Add missing includes
...
A few more instances of missing <algorithm> for std::max
2020-05-10 00:24:11 +02:00
Jon Evans
7ca069e63e
A few formatting fixes
2020-05-08 17:32:06 -04:00
Mario Luzeiro
9446a9166d
3D-Viewer: implement opacity in raytracing
...
fix opacity implementation on OpenGL
2020-05-08 21:28:16 +00:00
Mario Luzeiro
5a7f875602
3D-Viewer: implements opacity property for 3D models
...
fixes #2087
2020-05-08 21:28:16 +00:00
Jon Evans
4923d993a7
Factor out raytracing background color calculation
2020-05-07 18:40:06 -04:00
Emery Burhan
6c3cc0cfd4
3d_viewer: Ceiling plane: fixed formatting.
2020-05-07 18:00:55 -04:00
Emery Burhan
c665bf69b6
3d_viewer: Added a ceiling plane, similar to the floor plane.
2020-05-07 18:00:55 -04:00
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
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
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
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
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
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
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
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
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
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
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
Mark Roszko
19ceb11ae7
Change more enums over to scoped enums
2019-12-28 00:55:11 +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
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
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
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
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