Seth Hillbrand
bccf365380
Isolate thread pool loops
...
Now that we are threading things in different frames, we need to watch
that we are not waiting for a process to complete in one frame while
working in another. To accomplish this, we only wait for our own loop
results
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20572
2025-04-07 12:17:11 -07:00
Jeff Young
6307f0aee8
Use board layer names when available.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20360
2025-03-17 21:23:56 +00:00
Jeff Young
f33f10bb38
User-defined layers for 3D viewer.
2025-03-15 16:14:33 +00:00
Ian McInerney
e4ea479cf0
Don't show hidden models in raytracing view
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19836
2025-02-04 15:53:20 +00:00
Alex Shvartzkop
0118d7fb38
Raytracing: use all lights in preview mode.
...
It's not significantly slower, but looks much better.
Related: https://gitlab.com/kicad/code/kicad/-/issues/17354
2025-01-19 23:52:02 +03:00
Alex Shvartzkop
6b3396ea2d
Raytracing: convert from linear RGB to sRGB in preview mode.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17354
2025-01-19 23:52:02 +03:00
Alex Shvartzkop
87c42db898
Raytracing: fix orthogonal camera frustum normal calculations.
...
Normal values were very close to 0 in orthogonal camera projection,
causing issues on the arm64/macOS platform.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18207
2025-01-19 23:52:02 +03:00
Seth Hillbrand
bc12591449
Use proper indexing for board poly
...
In rare cases the fracture call will reduce the outline count, leading
to crashes when we dereference them.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19664
2025-01-16 20:26:53 -08:00
Wayne Stambaugh
42a1d1cf0b
Include folder and 3D viewer code housekeeping.
2025-01-11 07:25:14 -05:00
Seth Hillbrand
452e69de85
Move thread pool into true singleton
...
Thread pool needs to be stored in a single location for all of KiCad
otherwise each kiface will spin up its own pool of persistent threads
2025-01-09 09:03:08 -08:00
Seth Hillbrand
074e6df3bc
Revert "Move thread pool to singleton class"
...
This reverts commit 361f61a02380881efb59b1cebfdc3e73322b3d3c.
2025-01-03 21:22:44 -08:00
Seth Hillbrand
361f61a023
Move thread pool to singleton class
...
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started. Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.
The singleton class can be extended to provide single instance
guarantee for any element across kifaces
2025-01-03 13:51:11 -08:00
Seth Hillbrand
0b2d4d4879
Revise Copyright statement to align with TLF
...
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Seth Hillbrand
e9bc8cfe9d
Give Clipper1 a Viking funeral
...
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
Seth Hillbrand
b99a43bec2
Make 3d raytracing a bit more pleasing to watch
...
The circle out render is a bit tedious
2024-09-06 16:00:49 -07:00
Jeff Young
94f995c49e
Reduce dependency on dynamic_cast.
...
(Especially where it is no-worky on MacOS.)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17245
2024-09-04 17:24:49 +01:00
Seth Hillbrand
8516cf6fe0
Prevent assertion on invalid opacities.
...
Instead, just clamp the value
2024-08-21 15:30:06 -07:00
Alex Shvartzkop
8e4f6889d5
Use standard types instead of GL types in 3D raytracing renderer.
2024-08-09 21:26:37 +03:00
Seth Hillbrand
77797103f7
Add ability to embed files in various elements
...
Schematics, symbols, boards and footprints all get the ability to store
files inside their file structures. File lookups now have a
kicad-embed:// URI to allow various parts of KiCad to refer to files
stored in this manner.
kicad-embed://datasheet.pdf references the file named "datasheet.pdf"
embedded in the document. Embeds are allowed in schematics, boards,
symbols and footprints. Currently supported embeddings are Datasheets,
3D Models and drawingsheets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6918
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2376
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17827
2024-07-15 16:06:55 -07:00
Alex Shvartzkop
16e3692e71
Build time optimizations.
2024-04-27 23:49:13 +03:00
Alex Shvartzkop
4596a11da2
Raytracing 3D renderer: don't reflect sky background when reflections are on.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17690
2024-04-26 16:01:36 +03:00
Alex Shvartzkop
f6f0b9a661
ADDED: PCB 3D image raytracing rendering from CLI.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3691
2024-03-08 14:38:18 +00:00
Alex Shvartzkop
fb089a182b
3D viewer: support transparent background in Raytracing mode.
2024-03-04 15:09:31 +03:00
Alex Shvartzkop
85b1978408
Use 64-bit type to represent microseconds.
...
int and long are 32-bit on Windows, causing overflows.
2024-03-03 21:40:26 +03:00
Alex Shvartzkop
80457d5871
Support transparent background in 3D viewer PNG/clipboard export.
...
Only really works with realtime renderer currently.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12060
2024-02-29 17:11:53 +03:00
Jeff Young
fef404352d
Remove stale TODOs.
2024-02-05 15:49:57 +00:00
Alex Shvartzkop
4defa6b58f
Reduce editing timeout in 3D viewer raytracing.
2023-11-20 21:57:43 +03:00
Jeff Young
6136c2438d
Make sure sorts are deterministic.
2023-10-04 18:43:36 +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
Marek Roszko
37479c4154
HIDPI_GL_3D_CANVAS needs CAMERA so move it over
2023-09-23 20:06:57 -04: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
78f70b45e6
Minor readability improvements.
2023-09-22 18:48:29 +01:00
Jeff Young
c0ce543464
Use standard KiCad abbreviations for TH and NPTH.
2023-09-20 14:27:57 +01:00
Jeff Young
8cf291e423
Overhaul 3D degenerate shape protection.
2023-09-14 12:33:54 +01:00
Marek Roszko
7505fd0f37
Profile can live in core
2023-09-07 07:47:01 -04: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
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
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
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
Josue Huaroto
8a407756c1
Change min and max zoom values
2023-07-22 14:52:54 +00:00
Marek Roszko
8a7044c3fb
Fix some more warnings
2023-05-20 08:00:16 -04: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
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
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
Mario Luzeiro
7bc976f3f4
3D-Viewer: sort models and material models when rendering in transparent
...
Also enables transparency on model preview and small optimizations fixes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14005
2023-03-02 22:29:08 +00:00
Alex
1dd25dd196
3d-viewer: prevent max zoom+frustum from growing infinitely at reload.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13381
2023-01-11 03:30:48 +05:00
jean-pierre charras
5b8cf96736
3D viewer: catch an exception thrown when a fp library is not found in table,
...
when the 3D viewer try to rebuild the 3D shape of a footprint.
Fixes #12524
https://gitlab.com/kicad/code/kicad/issues/12524
2022-09-27 18:32:48 +02:00
Marek Roszko
c50b4fb04f
Add relative to footprint 3d model path resolution
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2073
2022-09-25 22:56:16 -04:00