50 Commits

Author SHA1 Message Date
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
Marek Roszko
66e8931405 Remove IU_PER_MM thats standalone 2022-09-16 21:09:27 -04:00
Jeff Young
6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
Mario Luzeiro
ef4f0b49fc 3D-Viewer, raytracing: implement bevel edges on item layers 2022-05-25 00:11:46 +00:00
Mario Luzeiro
2aa56e2c86 3D-Viewer: assign correct copper material based on render plated option.
change plated material intensity.
2022-05-25 00:11:46 +00:00
Jeff Young
65185f53a1 Rotate fp zones before comparing with library versions.
Also includes some performance fixes to not copy around triangulation
data when it's not needed.

Fixes https://gitlab.com/kicad/code/kicad/issues/10143
2022-03-14 15:53:24 +00:00
Jeff Young
9582457fef Be explicit about literal wide-strings. 2022-02-05 20:40:21 +00:00
Jeff Young
5739505aa3 TextBoxes for PCBNew. 2022-01-31 20:00:47 +00:00
Jeff Young
abd3f5bc2b Move footprints to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Marek Roszko
2d1357dc54 Swap some of the 3d viewer to VECTOR2I 2021-12-29 14:20:40 -05:00
Jeff Young
b84a85f648 Cleanup dead code and stale TODOs. 2021-12-24 21:10:28 +00:00
Jeff Young
dabc75bee8 Source 3D dimensions from board stackup.
Also includes a performance improvemnt by caching the 3D model matrices.
2021-12-24 21:10:28 +00:00
Jeff Young
68d2630d08 Flatten a layer of indirection out of 3D config settings. 2021-12-24 13:08:54 +00:00
Mario Luzeiro
f81539cd41 3D-Viewer: do not change the z component of the normal on silkscreen material
Fixes https://gitlab.com/kicad/code/kicad/issues/9823
2021-12-13 12:49:18 +00:00
Mikolaj Wielgus
c3b792592b Remove uncommented dead code in 3D viewer 2021-11-20 02:45:57 +01:00
Mikolaj Wielgus
cf3a979711 3D Viewer: Fix zoom limit calculations
Fixes https://gitlab.com/kicad/code/kicad/issues/9407

Fixes https://gitlab.com/kicad/code/kicad/issues/8805
2021-10-24 18:14:49 +00:00
Mikolaj Wielgus
363214d252 Fix incorrect behavior of BBOX_3D::GetMaxDimension() 2021-10-24 18:14:49 +00:00
Jeff Young
6c0110ecd3 Naming conventions.
There's nothing "legacy" about the OpenGL 3D renderer.
2021-10-21 14:30:03 +01:00