Compare commits

...
Author SHA1 Message Date
SoftFever 4710ec274f Merge branch 'main' into feature/texdisp-help-links 2026-10-03 20:09:46 +08:00
a6dbf2502d Device tab blank for webui printers after switching language (#14547)
* Save device url in all cases and load printer url after hot-reload finishes

* Recreate web view from scratch as only URL fix seems not robust enough

* Add the same robust browser recreation for WebViewDialog

It should eliminate possible issue with blank Home and other pages
in the same way as Printer page

* Remove redundant fallback leftover

* Fix webview reset state and replay Project info on page reload

The first-show webview reset now runs only on Windows, reloads the last
printer URL and resets the Project page's ready state. The Project tab
replays its 3MF info whenever the page reloads, so it no longer goes
blank after a theme switch or a slow first load. The Device tab no longer
loads an extra time on first open, and the Home tab no longer navigates
twice. NeedsRecreateOnShow() logs is_recreating_gui so one language
switch shows whether the reset ever fires.

* Build plugin pages on first show

A language switch rebuilt every plugin page's browser while the main
window was being recreated, which left plugin tabs blank on Windows.
Plugin pages are now lazy pages, never prebuilt, and are removed left
to right so removing pages never builds one only to destroy it.

A plugin page's script now starts when its tab is first opened;
messages posted before that are dropped.

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com>
2026-10-03 20:06:50 +08:00
HanifKoh 8a6377f087 Add Missing Includes Across src/libslic3r (#16068)
* Add Missing Includes Across src/libslic3r

Every libslic3r source and header now directly includes the headers declaring what it uses, rather than relying on the precompiled header or transitive includes. Generated with clang-tidy misc-include-cleaner, with libslic3r headers spelled libslic3r/... so they resolve outside the library's private include paths. MultiMaterialSegmentation.hpp, Support/SupportParameters.hpp and Format/STEP.hpp are made self-contained by hand.

* Make the libslic3r Headers Compile on Their Own

Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Left out: I18N.hpp, which errors on purpose when included from GUI code, and VoxelizeCSGMesh.hpp and SLA/bicubic.h, which nothing includes and which no longer compile at all.

* Add the Includes Missing From the Hand-Fixed libslic3r Headers

clang-tidy would not edit these headers while they failed to compile on their own, so the first pass skipped them. With the headers now self-contained, a second pass adds the rest.

* Keep Windows Setup Ahead of the Added libslic3r Includes

Print.cpp and Thread.cpp open with a _WIN32 block that has to come first; without the precompiled header, Print.cpp otherwise reaches windows.h through OCCT with NONLS defined and boost/regex fails. OpenVDBUtils.cpp and SLA/SupportTreeBuilder.cpp had includes inside #ifndef NOMINMAX, which libslic3r defines on Windows, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory.

* Re-Add libslic3r Includes After the Clipper2 2.0.1 Migration

Rebasing onto main took main's version of the files the Clipper2 migration rewrote, so their added includes are restored here, along with includes for main's new code. Clipper2's individual headers are now ignored by clang-tidy: they only build the Z variant through clipper2_z.hpp, which defines USINGZ first, so including clipper.core.h and the like directly broke ClipperZUtils.cpp.
2026-10-03 15:31:11 +08:00
SoftFever c86e33db6d Make the orca-wxwidgets skill find the wx source on Windows and in worktrees 2026-10-03 14:11:21 +08:00
HanifKoh 84657ff11e Add Missing Includes Across the Remaining Sources and Tests (#16071)
* Ignore Clipper, libpng, mcut and Boost.Polygon Internals in clang-tidy

Each only works through a wrapper or umbrella header: libslic3r/clipper.hpp or clipper_z.hpp configure Clipper before including it, png.h pulls in libpng's config headers, and Boost.Polygon's headers only compile through polygon.hpp or voronoi.hpp.

* Ignore minilzo's Config Headers in clang-tidy

lzoconf.h and lzodefs.h are internal to minilzo.h, which is what the code includes.

* Add Missing Includes Across the Remaining Sources and Tests

Covers src/slic3r/Utils, src/slic3r/plugin, src/slic3r/Config, src/libvgcode, src/dev-utils, src/OrcaSlicer.cpp and tests/, the directories left after src/slic3r/GUI and src/libslic3r. Generated with clang-tidy misc-include-cleaner. libvgcode's own headers are included by relative path as in the rest of that library, and Catch2 and pybind11 with angle brackets as elsewhere in the repo.

* Make the GUI and Test Headers Compile on Their Own

Each now includes, or forward-declares, what it uses instead of relying on what its includers happened to include first. Headers that only compile on one platform, or that nothing built includes, are left alone.

* Keep Windows and nanosvg Setup Ahead of the Added Includes

OrcaSlicer.cpp and several tests set _WIN32_WINNT, WIN32_LEAN_AND_MEAN or NOMINMAX before including Windows.h, and the profile validator defines NANOSVG_IMPLEMENTATION before any libslic3r header. The added includes had landed above those blocks, which broke the Windows build.

* Add the GUI Includes the First Pass Missed

Covers headers that only became editable once they compiled on their own, and wx symbols whose suggested header changed as the clang-tidy ignore list grew after the src/slic3r/GUI pass.

* Keep the Added Test Includes Below the NOMINMAX Guard

test_marchingsquares.cpp and test_texture_displacement.cpp had includes inside #ifndef NOMINMAX, which the tests inherit as defined on Windows from libslic3r, so those were skipped there. .clang-tidy also ignores the MSVC STL and UCRT internals, Boost.Multiprecision's fwd.hpp and CPython's Windows include directory, as in #16068.
2026-10-03 13:45:21 +08:00
Kiss Lorandandyw4z 00bb4202fe Fix gizmo checkbox contrast; align Texture Displacement styling and panel refresh behavior (#16076)
* Fix gizmo checkbox styling and Texture Displacement resize

Use shared BBL checkboxes in Texture Displacement and restore white toolbar checkmarks so other gizmos keep proper checkbox contrast. Also fix Texture Displacement resizing only after mouse movement by requesting additional frames while its layout is still changing.

* Fix gizmo checkbox styling and Texture Displacement resize

Use shared BBL checkboxes in Texture Displacement and restore white toolbar checkmarks so other gizmos keep proper checkbox contrast. Also fix Texture Displacement resizing only after mouse movement by requesting additional frames while its layout is still changing.

* Update GLGizmoTextureDisplacement.cpp

---------

Co-authored-by: yw4z <ywsyildiz@gmail.com>
2026-10-03 03:12:31 +03:00
Kiss Lorand 1241dd5521 Fix per-plate bed type handling (#15916) 2026-10-02 21:02:36 -03:00
Kris Austin eb30ea1eb8 perf: speed up G-code export by 3-9% via cached config lookups (#16028) 2026-10-02 19:34:47 -03:00
SoftFever 019f6677b9 Merge branch 'main' into feature/texdisp-help-links 2026-10-02 20:20:06 +08:00
ExPikaPaka 561c9e38e0 Reserve header width for the two new icons 2026-10-02 09:10:46 +02:00
ExPikaPaka 92de8d3eae Link the texture displacement guide and wiki from the gizmo panel
Finding either piece of documentation currently means knowing it exists and
going looking for it outside the application, which is the hardest moment to
do that: the panel has a lot of controls and the feature is new.

Add two borderless icon buttons to the panel header, next to the dock toggle,
opening the video walkthrough and the wiki page in the default browser. Both
icons follow the set's existing convention of a grey outline with a teal
accent, so they read as part of the same panel.
2026-10-02 09:05:35 +02:00
903 changed files with 6996 additions and 176 deletions
+21 -3
View File
@@ -7,9 +7,17 @@ CheckOptions:
misc-include-cleaner.UnusedIncludes: false misc-include-cleaner.UnusedIncludes: false
# Headers that declare a symbol but are not the one to include: per-platform # Headers that declare a symbol but are not the one to include: per-platform
# implementations of wxWidgets and Boost.Thread (a Linux run would suggest the # implementations of wxWidgets and Boost.Thread (a Linux run would suggest the
# GTK or pthread one), library internals and forward declarations, CPython's # GTK or pthread one), library internals and forward declarations (MSVC's STL
# headers behind Python.h, curl's behind curl.h, oneTBB's behind tbb/, and # __msvc_* and the Windows UCRT's corecrt_* included), CPython's headers behind
# Python.h (python3.x/ on Linux and macOS, libpython/include/ on Windows),
# curl's behind curl.h, oneTBB's behind tbb/, and
# admesh's stl.h, which the include path also exposes without its directory. # admesh's stl.h, which the include path also exposes without its directory.
# Clipper's own clipper.hpp is only included through libslic3r/clipper.hpp or
# clipper_z.hpp, which configure it first, and Boost.Polygon's headers only
# work through boost/polygon/polygon.hpp or voronoi.hpp. Clipper2's headers
# are included through clipper2/clipper.h, or clipper2_z.hpp, which defines
# USINGZ first. minilzo's config
# headers are internal to minilzo.h.
# FFmpeg's C headers are left alone because they are only included inside # FFmpeg's C headers are left alone because they are only included inside
# extern "C", which an inserted include would miss. OS-specific headers (GLib, # extern "C", which an inserted include would miss. OS-specific headers (GLib,
# GTK, D-Bus, POSIX, the Windows SDK) are only used inside platform #if blocks, # GTK, D-Bus, POSIX, the Windows SDK) are only used inside platform #if blocks,
@@ -23,7 +31,11 @@ CheckOptions:
.*[/\\]impl[/\\].*; .*[/\\]impl[/\\].*;
.*_fwd\.hpp; .*_fwd\.hpp;
python3\.[0-9]+[/\\].*; python3\.[0-9]+[/\\].*;
libpython[/\\]include[/\\].*;
bits[/\\].*; bits[/\\].*;
corecrt_.*\.h;
__msvc_.*\.hpp;
boost[/\\]multiprecision[/\\]fwd\.hpp;
imconfig\.h; imconfig\.h;
expat_external\.h; expat_external\.h;
admesh[/\\]stl\.h; admesh[/\\]stl\.h;
@@ -44,4 +56,10 @@ CheckOptions:
fcntl\.h; fcntl\.h;
termios\.h; termios\.h;
[/\\](um|shared)[/\\].*; [/\\](um|shared)[/\\].*;
sal\.h sal\.h;
clipper[/\\]clipper\.hpp;
png(lib)?conf\.h;
mcut[/\\]platform\.h;
boost[/\\]polygon[/\\].*;
clipper2[/\\]clipper\.(core|engine|offset|minkowski|rectclip|export|triangulation|version)\.h;
lzo(conf|defs)\.h
+10 -2
View File
@@ -30,8 +30,9 @@ how you read the wx docs:
Look things up in the source the app is built from — it beats memory, and 3.3 changed real behaviour: Look things up in the source the app is built from — it beats memory, and 3.3 changed real behaviour:
```bash ```bash
WX=$(find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' | head -1) WX=$(find -L deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets' 2>/dev/null | head -1)
# macOS: deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets Linux: deps/build/dep_wxWidgets-prefix/... # macOS: deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets Linux, Windows: deps/<tree>/dep_wxWidgets-prefix/...
# -L follows a worktree's deps/<tree> symlinked to the main checkout. Not a glob: zsh aborts on one that matches nothing.
# If deps are not built: git clone --depth 1 -b v3.3.2 https://github.com/SoftFever/Orca-deps-wxWidgets # If deps are not built: git clone --depth 1 -b v3.3.2 https://github.com/SoftFever/Orca-deps-wxWidgets
grep -n "CaptureMouse" -A 30 $WX/interface/wx/window.h # documented contract (doxygen source) grep -n "CaptureMouse" -A 30 $WX/interface/wx/window.h # documented contract (doxygen source)
grep -rn "@onlyfor\|not implemented" $WX/interface/wx/popupwin.h # documented platform limits grep -rn "@onlyfor\|not implemented" $WX/interface/wx/popupwin.h # documented platform limits
@@ -40,6 +41,13 @@ grep -n "IsDark" $WX/docs/changes.txt # what changed in
grep -n "NotifyCaptureLost" -r $WX/src/osx $WX/src/gtk $WX/src/msw # what each port actually does grep -n "NotifyCaptureLost" -r $WX/src/osx $WX/src/gtk $WX/src/msw # what each port actually does
``` ```
On Windows these lookups are bash: run them from Git Bash. PowerShell has no `grep`, and its `find` is
Windows' text-search `find.exe`. To locate the wx tree from PowerShell:
```powershell
$WX = Resolve-Path deps\*\dep_wxWidgets-prefix\src\dep_wxWidgets, deps\*\*\dep_wxWidgets-prefix\src\dep_wxWidgets -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty Path
```
`interface/wx/<class>.h` is the documentation; `src/common` holds shared behaviour and `interface/wx/<class>.h` is the documentation; `src/common` holds shared behaviour and
`src/{msw,osx,gtk,unix,generic}` the per-port implementation. When the docs and the source disagree, `src/{msw,osx,gtk,unix,generic}` the per-port implementation. When the docs and the source disagree,
the source is what runs — the references mark such facts **[source]**. Orca-side design docs live in the source is what runs — the references mark such facts **[source]**. Orca-side design docs live in
@@ -331,6 +331,10 @@ OrcaSlicer: integer spinners are `::SpinInput` ([below](#spininput)); progress b
Contract: Contract:
- A page must be created with the book as its parent and added once; the book owns and deletes it - A page must be created with the book as its parent and added once; the book owns and deletes it
(`interface/wx/bookctrl.h:253-254, 273`). `RemovePage` detaches without deleting, and you then own it (`:324-330`). (`interface/wx/bookctrl.h:253-254, 273`). `RemovePage` detaches without deleting, and you then own it (`:324-330`).
- Removing the selected page selects the page before it (the new first page if it was first) through `SetSelection`,
so that page is shown and PAGE_CHANGING/CHANGED are sent; removing a page before the selection only shifts the
index. This is `wxBookCtrlBase::DoSetSelectionAfterRemoval` (`src/common/bookctrl.cpp:477-495` **[source]**),
called from `DoRemovePage` by `wxSimplebook`, `wxChoicebook`, `wxListbook`, `wxToolbook` and Orca's `Notebook`.
- `GetSelection()` inside a `PAGE_CHANGED` handler may return the old or the new page depending on the platform; use - `GetSelection()` inside a `PAGE_CHANGED` handler may return the old or the new page depending on the platform; use
`event.GetSelection()` (`interface/wx/bookctrl.h:160-166`). `event.GetSelection()` (`interface/wx/bookctrl.h:160-166`).
- `wxSimplebook` has no UI; switch with `ChangeSelection()`. `SetSelection()` sends PAGE_CHANGING/CHANGED - `wxSimplebook` has no UI; switch with `ChangeSelection()`. `SetSelection()` sends PAGE_CHANGING/CHANGED
@@ -10,7 +10,7 @@ wx asserts are compiled out in Orca (`wxDEBUG_LEVEL=0`), so every misuse below t
an assert fails silently. "GTK" means wxGTK3, Orca's Linux default (X11 and Wayland); GTK2 is only an assert fails silently. "GTK" means wxGTK3, Orca's Linux default (X11 and Wayland); GTK2 is only
an opt-out build (`-DDEP_WX_GTK3=OFF`), noted where it differs. Paths starting `interface/`, an opt-out build (`-DDEP_WX_GTK3=OFF`), noted where it differs. Paths starting `interface/`,
`include/`, `src/`, `docs/` are in the wx tree `include/`, `src/`, `docs/` are in the wx tree
(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`); Orca paths are (located as in `SKILL.md` §Ground truth); Orca paths are
relative to `src/slic3r/GUI/`. relative to `src/slic3r/GUI/`.
Contents: [Rules](#rules) · [Mouse capture](#mouse-capture) · [Mouse events](#mouse-events) · Contents: [Rules](#rules) · [Mouse capture](#mouse-capture) · [Mouse events](#mouse-events) ·
@@ -332,7 +332,9 @@ indices: pages come and go per printer and per feature flag.
pages depending on the printer and on `use_printer_agents`; a removed page stays registered but is pages depending on the printer and on `use_printer_agents`; a removed page stays registered but is
not prebuilt (its `LazyPage::in_book()` is false). not prebuilt (its `LazyPage::in_book()` is false).
- Plugin pages are appended by `PluginPages::initialize` (`plugin/host/PluginPages.hpp`) with - Plugin pages are appended by `PluginPages::initialize` (`plugin/host/PluginPages.hpp`) with
namespaced ids (`plugin.<plugin_key>.<name>`) that cannot collide with `TAB_ID_*`. namespaced ids (`plugin.<plugin_key>.<name>`) that cannot collide with `TAB_ID_*`. Each is a
`LazyPage<PluginPage>` with order −1, destroyed when its capability goes away.
→ [Deferred construction](#deferred-construction-lazy-lazypage-stagedbuild-idlescheduler)
### Preset tabs ### Preset tabs
@@ -529,6 +531,32 @@ the main frame does nothing to a panel after creating it.
m_idle.add(m_diff_dialog); m_idle.add(m_diff_dialog);
``` ```
Cite: `IdleScheduler::tick`, `docs/HLSD/deferred-page-construction.md`. Cite: `IdleScheduler::tick`, `docs/HLSD/deferred-page-construction.md`.
- **Rule:** A lazy page that can be destroyed while the main frame lives takes a negative order and
stays out of `m_lazy_pages`.
**Why:** `m_lazy_pages` and `PrebuildQueue` hold raw `LazyBase*` and nothing removes one
(`PrebuildQueue` has only `add` and `clear`). The queue calls `pending()` on every task each slice,
and `prebuild_pages_when_idle` reads every entry of `m_lazy_pages`, so a page destroyed while still
listed can be read after it is freed. A page only taken out of the book is fine: it stays registered
and its `pending()` is false (`MainFrame::show_device`).
```cpp
// Right (PluginPages::create_page): order -1, and no m_lazy_pages.push_back
auto* page = new GUI::LazyPage<PluginPage>(m_parent, name, -1, [capability](wxWindow* parent) {
return new PluginPage(parent, capability);
});
```
Cite: `PluginPages::create_page`, `PluginPages::remove_page`.
- **Rule:** Remove several lazy pages from a book left to right.
**Why:** removing the selected page selects and shows the page before it
(`references/controls-dataview.md` §Book controls), and showing an unbuilt `LazyPage` while the frame
is shown builds it. In any other order the page before the selected one can be one removed next,
built only to be destroyed; left to right it is one that stays (unless the selected page is the
book's first).
```cpp
// Right (PluginPages::shutdown): m_order is the tabs' left-to-right order
for (const PluginCapabilityId& id : std::vector<PluginCapabilityId>(m_order))
remove_page(id);
```
Cite: `PluginPages::shutdown`, `PluginPages::relayout`, `PluginPages::on_plugin_deregister`.
## Plater and Sidebar ## Plater and Sidebar
@@ -6,7 +6,7 @@ to write a custom control on the wx side and how to author an Orca widget on the
`StaticBox`/`StateHandler` foundation. Read it before writing or reviewing any `wxEVT_PAINT` `StaticBox`/`StateHandler` foundation. Read it before writing or reviewing any `wxEVT_PAINT`
handler, `render`/`doRender` method, `messureSize`, or a new class under `src/slic3r/GUI/Widgets/`. handler, `render`/`doRender` method, `messureSize`, or a new class under `src/slic3r/GUI/Widgets/`.
wx cites are relative to the pinned wx 3.3.2 tree (`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets`). wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth).
Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every
wx assert below is compiled out and `wxCHECK*` returns silently, so paint misuse shows up only as wx assert below is compiled out and `wxCHECK*` returns silently, so paint misuse shows up only as
wrong, missing or stale pixels, never as an assert dialog. wrong, missing or stale pixels, never as an assert dialog.
@@ -78,8 +78,9 @@ Contents: [Rules](#rules) · [The wx build Orca uses](#the-wx-build-orca-uses)
`references/colours-dark-mode.md`. `references/colours-dark-mode.md`.
- The checked-out source is the tree that every wx citation in this skill refers to: - The checked-out source is the tree that every wx citation in this skill refers to:
`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets` on macOS and `deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets` on macOS and
`deps/build/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux. Find it with `deps/<tree>/dep_wxWidgets-prefix/src/dep_wxWidgets` on Linux and Windows (`deps/build` for a
`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`. On macOS its release build; `build_win.bat` names the others). Locate it with the bash or PowerShell lookup in
`SKILL.md` §Ground truth. On macOS its
`src/osx/cocoa/colour.mm` already has the patch applied. `src/osx/cocoa/colour.mm` already has the patch applied.
- **Flatpak builds wx separately.** `deps/CMakeLists.txt` leaves `dep_wxWidgets` out of the deps - **Flatpak builds wx separately.** `deps/CMakeLists.txt` leaves `dep_wxWidgets` out of the deps
target when `FLATPAK` is set. Instead, `scripts/flatpak/com.orcaslicer.OrcaSlicer.yml` has its own target when `FLATPAK` is set. Instead, `scripts/flatpak/com.orcaslicer.OrcaSlicer.yml` has its own
@@ -5,7 +5,7 @@ How wx 3.3.2 popups and menus behave on each port, and the Orca wrappers built o
`append_menu_item`, `Plater::PopupMenu` and the macOS menubar versus `BBLTopbar`. Read it before you add `append_menu_item`, `Plater::PopupMenu` and the macOS menubar versus `BBLTopbar`. Read it before you add
or change anything that opens over other UI and must close by itself, or any context menu or menubar item. or change anything that opens over other UI and must close by itself, or any context menu or menubar item.
wx cites are relative to the wx tree root (`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets`). wx cites are relative to the wx tree root (located as in `SKILL.md` §Ground truth).
**[source]** marks behaviour derived from the implementation that the wx docs do not state or contradict. **[source]** marks behaviour derived from the implementation that the wx docs do not state or contradict.
Orca builds wx with `wxBUILD_DEBUG_LEVEL=0`, so every "asserts" below means "fails silently in Orca". Orca builds wx with `wxBUILD_DEBUG_LEVEL=0`, so every "asserts" below means "fails silently in Orca".
"GTK" means wxGTK3 (X11 and Wayland), the default Linux build; GTK2 is only an opt-out (`-DDEP_WX_GTK3=OFF`). "GTK" means wxGTK3 (X11 and Wayland), the default Linux build; GTK2 is only an opt-out (`-DDEP_WX_GTK3=OFF`).
@@ -7,7 +7,7 @@ yields and nested event loops, progress dialogs, startup, shutdown and exception
screen, and the access rules for `wxGetApp()` and `app_config`. Read it whenever code runs off the screen, and the access rules for `wxGetApp()` and `app_config`. Read it whenever code runs off the
main thread, defers work, starts a timer, yields, shows progress, or runs during startup or shutdown. main thread, defers work, starts a timer, yields, shows progress, or runs during startup or shutdown.
wx cites are relative to the pinned wx 3.3.2 tree (`deps/build/<arch>/dep_wxWidgets-prefix/src/dep_wxWidgets`). wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth).
Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`, so `wxASSERT` Orca builds wx with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`, so `wxASSERT`
is compiled out and `wxCHECK*` returns silently: a timer started off the main thread never fires on macOS, is compiled out and `wxCHECK*` returns silently: a timer started off the main thread never fires on macOS,
`Exit()` on a loop that is not the active one is ignored, `Start(0)` on macOS fails — all without `Exit()` on a loop that is not the active one is ignored, `Start(0)` on macOS fails — all without
@@ -6,10 +6,9 @@ port; what Orca's `DPIDialog`/`DPIFrame` add; the Orca dialog recipe; and the `M
Read it before writing or reviewing any dialog, frame, close handler, `Destroy()`/`delete`, or code Read it before writing or reviewing any dialog, frame, close handler, `Destroy()`/`delete`, or code
that keeps a pointer to a window across an event, a `CallAfter` or a modal loop. that keeps a pointer to a window across an event, a `CallAfter` or a modal loop.
wx cites are relative to the pinned wx 3.3.2 tree (`find deps -maxdepth 5 -type d -path wx cites are relative to the pinned wx 3.3.2 tree (located as in `SKILL.md` §Ground truth). wx is
'*dep_wxWidgets-prefix/src/dep_wxWidgets'`). wx is built with `wxBUILD_DEBUG_LEVEL=0` and built with `wxBUILD_DEBUG_LEVEL=0` and `libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert
`libslic3r_gui` with `wxDEBUG_LEVEL=0`: every wx assert quoted below is compiled out, so misuse quoted below is compiled out, so misuse fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below
fails silently (dropped call, stuck loop, freed memory), never with an assert dialog. "GTK" below
means wxGTK as Orca builds it on Linux: GTK3 by default (X11 or Wayland); GTK2 is only an opt-out. means wxGTK as Orca builds it on Linux: GTK3 by default (X11 or Wayland); GTK2 is only an opt-out.
Contents: [Rules](#rules) · [1 Creating and parenting](#1-creating-and-parenting-windows) · Contents: [Rules](#rules) · [1 Creating and parenting](#1-creating-and-parenting-windows) ·
@@ -14,7 +14,7 @@ Contents: [Rules](#rules) · [1 Reading the change logs](#1-reading-the-change-l
[8 Migration done in Orca](#8-migration-already-done-in-orca) [8 Migration done in Orca](#8-migration-already-done-in-orca)
All `docs/`, `interface/`, `include/`, `src/`, `build/` cites are relative to the pinned wx tree All `docs/`, `interface/`, `include/`, `src/`, `build/` cites are relative to the pinned wx tree
(`find deps -maxdepth 5 -type d -path '*dep_wxWidgets-prefix/src/dep_wxWidgets'`), except paths (located as in `SKILL.md` §Ground truth), except paths
explicitly called Orca's (`deps/…`, Orca's `src/CMakeLists.txt`) and bare Orca file + symbol cites. explicitly called Orca's (`deps/…`, Orca's `src/CMakeLists.txt`) and bare Orca file + symbol cites.
## Rules ## Rules
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><rect x="0.5" y="2.5" width="15" height="11" rx="2.5" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M6.5 5.5l4.5 2.5-4.5 2.5z" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/></svg>

After

Width:  |  Height:  |  Size: 334 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M1.5 2.5h4a2 2 0 0 1 2 2v9a1.5 1.5 0 0 0-1.5-1.5h-4.5zM14.5 2.5h-4a2 2 0 0 0-2 2v9a1.5 1.5 0 0 1 1.5-1.5h4.5z" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M10.5 5.5h2.5M10.5 7.5h2.5M3 5.5h2.5M3 7.5h2.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/></svg>

After

Width:  |  Height:  |  Size: 421 B

+43
View File
@@ -20,6 +20,49 @@
#endif /* SLIC3R_GUI */ #endif /* SLIC3R_GUI */
#endif /* WIN32 */ #endif /* WIN32 */
#include <map>
#include <vector>
#include "libslic3r/PrintBase.hpp"
#include "slic3r/Utils/json_diff.hpp"
#include <boost/date_time/posix_time/posix_time_duration.hpp>
#include <cerrno>
#include <utility>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp>
#include "libslic3r/LocalesUtils.hpp"
#include <fstream>
#include <exception>
#include <set>
#include "libslic3r/Color.hpp"
#include "libslic3r/TriangleSelector.hpp"
#include <algorithm>
#include "libslic3r/Format/bbs_3mf.hpp"
#include <cstdlib>
#include <stdlib.h>
#include <stdexcept>
#include "libslic3r/Point.hpp"
#include "libslic3r_version.h"
#include "libslic3r/Semver.hpp"
#include "libslic3r/PrintConfig.hpp"
#include "libslic3r/BoundingBox.hpp"
#include "libslic3r/CustomGCode.hpp"
#include <memory>
#include <sstream>
#include <iomanip>
#include <iterator>
#include "libslic3r/ClipperUtils.hpp"
#include "libslic3r/GCode/WipeTowerEstimate.hpp"
#include "slic3r/GUI/Gizmos/GLGizmoBase.hpp"
#include <functional>
#include "libslic3r/Arrange.hpp"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/GCode/ThumbnailData.hpp"
#include "slic3r/GUI/3DScene.hpp"
#include "slic3r/GUI/GLShader.hpp"
#include <cassert>
#include <boost/filesystem/exception.hpp>
#include <signal.h>
#include <cstdio> #include <cstdio>
#include <string> #include <string>
#include <cstring> #include <cstring>
+7
View File
@@ -1,7 +1,14 @@
#ifndef SLIC3R_HPP #ifndef SLIC3R_HPP
#define SLIC3R_HPP #define SLIC3R_HPP
#include <map>
#include "libslic3r/BoundingBox.hpp"
#include "libslic3r/PrintConfig.hpp"
#include "libslic3r/Format/bbs_3mf.hpp"
#include "libslic3r/GCode/ThumbnailData.hpp"
#include <set> #include <set>
#include <string>
#include <vector>
#include "libslic3r/Config.hpp" #include "libslic3r/Config.hpp"
#include "libslic3r/Model.hpp" #include "libslic3r/Model.hpp"
@@ -8,6 +8,28 @@
#define NANOSVGRAST_IMPLEMENTATION #define NANOSVGRAST_IMPLEMENTATION
#include "nanosvg/nanosvgrast.h" #include "nanosvg/nanosvgrast.h"
#include <vector>
#include <boost/filesystem/path.hpp>
#include <map>
#include "libslic3r/Point.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/PrintConfig.hpp"
#include <utility>
#include "libslic3r/CustomGCode.hpp"
#include <iterator>
#include <boost/smart_ptr/make_shared_object.hpp>
#include <boost/smart_ptr/shared_ptr.hpp>
#include <boost/log/core/record_view.hpp>
#include <boost/log/expressions/message.hpp>
#include <cstddef>
#include <exception>
#include "libslic3r/PlaceholderParser.hpp"
#include <boost/program_options/options_description.hpp>
#include <boost/program_options/value_semantic.hpp>
#include <boost/program_options/variables_map.hpp>
#include <boost/program_options/errors.hpp>
#include "libslic3r/BoundingBox.hpp" #include "libslic3r/BoundingBox.hpp"
#include "libslic3r/GCode.hpp" #include "libslic3r/GCode.hpp"
#include "libslic3r/GCode/WipeTower.hpp" #include "libslic3r/GCode/WipeTower.hpp"
+1
View File
@@ -1,3 +1,4 @@
#include <iosfwd>
#include <vector> #include <vector>
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
+10
View File
@@ -4,9 +4,19 @@
#include <boost/algorithm/string/predicate.hpp> #include <boost/algorithm/string/predicate.hpp>
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/directory.hpp>
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#include <boost/program_options.hpp> #include <boost/program_options.hpp>
#include <boost/program_options/options_description.hpp>
#include <boost/program_options/value_semantic.hpp>
#include <boost/program_options/variables_map.hpp>
#include <boost/program_options/errors.hpp>
#include <exception>
#include <cstddef>
#include <iostream> #include <iostream>
#include <memory>
#include "libslic3r/Config.hpp"
using namespace Slic3r; using namespace Slic3r;
namespace fs = boost::filesystem; namespace fs = boost::filesystem;
+6
View File
@@ -11,13 +11,19 @@
#include "libslic3r/Utils.hpp" #include "libslic3r/Utils.hpp"
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/nowide/fstream.hpp> #include <boost/nowide/fstream.hpp>
#include "nlohmann/json.hpp" #include "nlohmann/json.hpp"
#include <algorithm> #include <algorithm>
#include <cstddef>
#include <exception>
#include <iostream> #include <iostream>
#include "libslic3r/Config.hpp"
#include <map> #include <map>
#include <set> #include <set>
#include <stdexcept>
#include <string> #include <string>
#include <vector> #include <vector>
+9
View File
@@ -1,10 +1,19 @@
#include "AABBMesh.hpp" #include "AABBMesh.hpp"
#include "Point.hpp"
#include <Eigen/Core>
#include <Execution/ExecutionTBB.hpp> #include <Execution/ExecutionTBB.hpp>
#include <igl/Hit.h>
#include <cstddef>
#include <cassert>
#include <cmath>
#include <algorithm>
#include <libslic3r/AABBTreeIndirect.hpp> #include <libslic3r/AABBTreeIndirect.hpp>
#include <libslic3r/TriangleMesh.hpp> #include <libslic3r/TriangleMesh.hpp>
#include <limits>
#include <numeric> #include <numeric>
#include <vector>
#ifdef SLIC3R_HOLE_RAYCASTER #ifdef SLIC3R_HOLE_RAYCASTER
#include <libslic3r/SLA/Hollowing.hpp> #include <libslic3r/SLA/Hollowing.hpp>
+4
View File
@@ -1,6 +1,10 @@
#ifndef PRUSASLICER_AABBMESH_H #ifndef PRUSASLICER_AABBMESH_H
#define PRUSASLICER_AABBMESH_H #define PRUSASLICER_AABBMESH_H
#include <cstddef>
#include <limits>
#include <cmath>
#include <cassert>
#include <memory> #include <memory>
#include <vector> #include <vector>
+5
View File
@@ -6,15 +6,20 @@
#ifndef slic3r_AABBTreeIndirect_hpp_ #ifndef slic3r_AABBTreeIndirect_hpp_
#define slic3r_AABBTreeIndirect_hpp_ #define slic3r_AABBTreeIndirect_hpp_
#include <Eigen/Core>
#include <algorithm> #include <algorithm>
#include <cstddef>
#include <cassert>
#include <limits> #include <limits>
#include <type_traits> #include <type_traits>
#include <utility>
#include <vector> #include <vector>
#include <Eigen/Geometry> #include <Eigen/Geometry>
#include "BoundingBox.hpp" #include "BoundingBox.hpp"
#include "Utils.hpp" // for next_highest_power_of_2() #include "Utils.hpp" // for next_highest_power_of_2()
#include "libslic3r.h"
// Definition of the ray intersection hit structure. // Definition of the ray intersection hit structure.
#include <igl/Hit.h> #include <igl/Hit.h>
+6
View File
@@ -6,9 +6,15 @@
#include "libslic3r.h" #include "libslic3r.h"
#include "libslic3r/AABBTreeIndirect.hpp" #include "libslic3r/AABBTreeIndirect.hpp"
#include "libslic3r/Line.hpp" #include "libslic3r/Line.hpp"
#include <Eigen/Core>
#include <algorithm> #include <algorithm>
#include <cassert>
#include <cmath> #include <cmath>
#include <cstddef>
#include <tuple>
#include <limits>
#include <type_traits> #include <type_traits>
#include <utility>
#include <vector> #include <vector>
namespace Slic3r { namespace Slic3r {
+4
View File
@@ -1,7 +1,11 @@
#ifndef ASTAR_HPP #ifndef ASTAR_HPP
#define ASTAR_HPP #define ASTAR_HPP
#include <cassert>
#include <cmath> // std::isinf() is here #include <cmath> // std::isinf() is here
#include <type_traits>
#include <cstddef>
#include <limits>
#include <unordered_map> #include <unordered_map>
#include "libslic3r/MutablePriorityQueue.hpp" #include "libslic3r/MutablePriorityQueue.hpp"
+12
View File
@@ -1,8 +1,20 @@
#include "LineSplit.hpp" #include "LineSplit.hpp"
#include "AABBTreeLines.hpp" #include "AABBTreeLines.hpp"
#include "libslic3r/ClipperUtils.hpp"
#include "libslic3r/ClipperZUtils.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/Line.hpp"
#include "libslic3r/ExPolygon.hpp"
#include "SVG.hpp" #include "SVG.hpp"
#include "Utils.hpp" #include "Utils.hpp"
#include <limits>
#include "libslic3r/libslic3r.h"
#include <algorithm>
#include <cstddef>
#include <cassert>
#include <vector>
#include <utility>
//#define DEBUG_SPLIT_LINE //#define DEBUG_SPLIT_LINE
+6
View File
@@ -2,6 +2,12 @@
#define SRC_LIBSLIC3R_ALGORITHM_LINE_SPLIT_HPP_ #define SRC_LIBSLIC3R_ALGORITHM_LINE_SPLIT_HPP_
#include "ClipperZUtils.hpp" #include "ClipperZUtils.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Point.hpp"
#include <cstdint>
#include <cstddef>
#include <vector>
#include "libslic3r/ExPolygon.hpp"
namespace Slic3r { namespace Slic3r {
namespace Algorithm { namespace Algorithm {
@@ -1,11 +1,25 @@
#include "RegionExpansion.hpp" #include "RegionExpansion.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/ExPolygon.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Polyline.hpp"
#include "libslic3r/Polygon.hpp"
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cassert>
#include <iterator>
#include <cstdint>
#include <libslic3r/AABBTreeIndirect.hpp> #include <libslic3r/AABBTreeIndirect.hpp>
#include <libslic3r/ClipperZUtils.hpp> #include <libslic3r/ClipperZUtils.hpp>
#include <libslic3r/ClipperUtils.hpp> #include <libslic3r/ClipperUtils.hpp>
#include <libslic3r/Utils.hpp> #include <libslic3r/Utils.hpp>
#include <math.h>
#include <numeric> #include <numeric>
#include <vector>
#include <utility>
namespace Slic3r { namespace Slic3r {
namespace Algorithm { namespace Algorithm {
@@ -1,10 +1,12 @@
#ifndef SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_ #ifndef SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_
#define SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_ #define SRC_LIBSLIC3R_ALGORITHM_REGION_EXPANSION_HPP_
#include <cstddef>
#include <cstdint> #include <cstdint>
#include <libslic3r/Point.hpp> #include <libslic3r/Point.hpp>
#include <libslic3r/Polygon.hpp> #include <libslic3r/Polygon.hpp>
#include <libslic3r/ExPolygon.hpp> #include <libslic3r/ExPolygon.hpp>
#include <vector>
namespace Slic3r { namespace Slic3r {
namespace Algorithm { namespace Algorithm {
+1
View File
@@ -1,6 +1,7 @@
#ifndef ANYPTR_HPP #ifndef ANYPTR_HPP
#define ANYPTR_HPP #define ANYPTR_HPP
#include <boost/variant/variant.hpp>
#include <memory> #include <memory>
#include <type_traits> #include <type_traits>
#include <boost/variant.hpp> #include <boost/variant.hpp>
+14
View File
@@ -1,3 +1,8 @@
#include "Technologies.hpp"
#include "Config.hpp"
#include "PrintConfig.hpp"
#include "calib.hpp"
#include "Semver.hpp"
#include "libslic3r/libslic3r.h" #include "libslic3r/libslic3r.h"
#include "libslic3r/Utils.hpp" #include "libslic3r/Utils.hpp"
#include "libslic3r/Format/DRC.hpp" #include "libslic3r/Format/DRC.hpp"
@@ -9,9 +14,18 @@
#include "LocalesUtils.hpp" #include "LocalesUtils.hpp"
#include "Thread.hpp" #include "Thread.hpp"
#include "format.hpp" #include "format.hpp"
#include "libslic3r_version.h"
#include "nlohmann/json.hpp" #include "nlohmann/json.hpp"
#include <algorithm> #include <algorithm>
#include <string>
#include <exception>
#include <boost/none.hpp>
#include <cstddef>
#include <system_error>
#include <chrono>
#include <map>
#include <cstring>
#include <utility> #include <utility>
#include <vector> #include <vector>
#include <stdexcept> #include <stdexcept>
+3
View File
@@ -5,8 +5,11 @@
#include <chrono> #include <chrono>
#include <map> #include <map>
#include <string> #include <string>
#include "LocalesUtils.hpp"
#include "nlohmann/json.hpp" #include "nlohmann/json.hpp"
#include <boost/algorithm/string/trim_all.hpp> #include <boost/algorithm/string/trim_all.hpp>
#include <utility>
#include <vector>
#include "libslic3r/Config.hpp" #include "libslic3r/Config.hpp"
#include "libslic3r/Semver.hpp" #include "libslic3r/Semver.hpp"
@@ -2,7 +2,9 @@
//CuraEngine is released under the terms of the AGPLv3 or higher. //CuraEngine is released under the terms of the AGPLv3 or higher.
#include "BeadingStrategy.hpp" #include "BeadingStrategy.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Point.hpp" #include "libslic3r/Point.hpp"
#include <vector>
namespace Slic3r::Arachne namespace Slic3r::Arachne
{ {
@@ -12,6 +12,7 @@
#include "DistributedBeadingStrategy.hpp" #include "DistributedBeadingStrategy.hpp"
#include "RedistributeBeadingStrategy.hpp" #include "RedistributeBeadingStrategy.hpp"
#include "OuterWallInsetBeadingStrategy.hpp" #include "OuterWallInsetBeadingStrategy.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
namespace Slic3r::Arachne { namespace Slic3r::Arachne {
@@ -6,6 +6,7 @@
#include <cassert> #include <cassert>
#include "DistributedBeadingStrategy.hpp" #include "DistributedBeadingStrategy.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
namespace Slic3r::Arachne namespace Slic3r::Arachne
@@ -3,10 +3,12 @@
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#include <cassert> #include <cassert>
#include <string>
#include <utility> #include <utility>
#include <cstddef> #include <cstddef>
#include "LimitedBeadingStrategy.hpp" #include "LimitedBeadingStrategy.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Point.hpp" #include "libslic3r/Point.hpp"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
@@ -6,6 +6,7 @@
#include <algorithm> #include <algorithm>
#include <utility> #include <utility>
#include "libslic3r/libslic3r.h"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
namespace Slic3r::Arachne namespace Slic3r::Arachne
@@ -7,6 +7,7 @@
#include <numeric> #include <numeric>
#include <utility> #include <utility>
#include "libslic3r/libslic3r.h"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
namespace Slic3r::Arachne namespace Slic3r::Arachne
@@ -4,8 +4,11 @@
#include "WideningBeadingStrategy.hpp" #include "WideningBeadingStrategy.hpp"
#include <algorithm> #include <algorithm>
#include <string>
#include <utility> #include <utility>
#include <vector>
#include "libslic3r/libslic3r.h"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
namespace Slic3r::Arachne namespace Slic3r::Arachne
@@ -10,10 +10,18 @@
#include <cmath> #include <cmath>
#include <cstdint> #include <cstdint>
#include <limits> #include <limits>
#include <math.h>
#include <list>
#include <memory>
#include <utility> #include <utility>
#include <cassert> #include <cassert>
#include <cstdlib> #include <cstdlib>
#include <vector>
#include "libslic3r/Point.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
#include "libslic3r/Geometry/VoronoiUtils.hpp" #include "libslic3r/Geometry/VoronoiUtils.hpp"
#include "ankerl/unordered_dense.h" #include "ankerl/unordered_dense.h"
#include "libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp" #include "libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp"
@@ -4,10 +4,12 @@
#ifndef SKELETAL_TRAPEZOIDATION_EDGE_H #ifndef SKELETAL_TRAPEZOIDATION_EDGE_H
#define SKELETAL_TRAPEZOIDATION_EDGE_H #define SKELETAL_TRAPEZOIDATION_EDGE_H
#include <cassert>
#include <memory> // smart pointers #include <memory> // smart pointers
#include <list> #include <list>
#include <vector> #include <vector>
#include "libslic3r/libslic3r.h"
#include "utils/ExtrusionJunction.hpp" #include "utils/ExtrusionJunction.hpp"
namespace Slic3r::Arachne namespace Slic3r::Arachne
@@ -6,11 +6,17 @@
#include <ankerl/unordered_dense.h> #include <ankerl/unordered_dense.h>
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#include <algorithm> #include <algorithm>
#include <cstdint>
#include <iostream> #include <iostream>
#include <cassert> #include <cassert>
#include <cinttypes> #include <cinttypes>
#include <optional>
#include <utility>
#include "../Line.hpp" #include "../Line.hpp"
#include "libslic3r/Arachne/utils/HalfEdge.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Arachne/utils/HalfEdgeNode.hpp"
#include "libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp" #include "libslic3r/Arachne/SkeletalTrapezoidationEdge.hpp"
#include "libslic3r/Arachne/SkeletalTrapezoidationJoint.hpp" #include "libslic3r/Arachne/SkeletalTrapezoidationJoint.hpp"
#include "libslic3r/Point.hpp" #include "libslic3r/Point.hpp"
@@ -6,6 +6,7 @@
#include <memory> // smart pointers #include <memory> // smart pointers
#include "libslic3r/libslic3r.h"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp" #include "libslic3r/Arachne/BeadingStrategy/BeadingStrategy.hpp"
namespace Slic3r::Arachne namespace Slic3r::Arachne
+21
View File
@@ -2,12 +2,31 @@
// CuraEngine is released under the terms of the AGPLv3 or higher. // CuraEngine is released under the terms of the AGPLv3 or higher.
#include <algorithm> //For std::partition_copy and std::min_element. #include <algorithm> //For std::partition_copy and std::min_element.
#include <cstddef>
#include <cstdint>
#include <memory>
#include <cassert>
#include <cmath>
#include <math.h>
#include <limits>
#include <unordered_set> #include <unordered_set>
#include "WallToolPaths.hpp" #include "WallToolPaths.hpp"
#include "libslic3r/PrintConfig.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/Arachne/utils/ExtrusionLine.hpp"
#include "libslic3r/Line.hpp"
#include "libslic3r/Arachne/utils/PolygonsPointIndex.hpp"
#include "libslic3r/Flow.hpp"
#include "libslic3r/Arachne/BeadingStrategy/BeadingStrategyFactory.hpp"
#include "libslic3r/Arachne/utils/ExtrusionJunction.hpp"
#include "libslic3r/Arachne/utils/SparsePointGrid.hpp"
#include "libslic3r/Arachne/utils/SquareGrid.hpp"
#include "SkeletalTrapezoidation.hpp" #include "SkeletalTrapezoidation.hpp"
#include "../ClipperUtils.hpp" #include "../ClipperUtils.hpp"
#include "libslic3r/libslic3r.h"
#include "utils/linearAlg2D.hpp" #include "utils/linearAlg2D.hpp"
#include "EdgeGrid.hpp" #include "EdgeGrid.hpp"
#include "utils/SparseLineGrid.hpp" #include "utils/SparseLineGrid.hpp"
@@ -17,6 +36,8 @@
#include "Utils.hpp" #include "Utils.hpp"
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#include <utility>
#include <vector>
//#define ARACHNE_STITCH_PATCH_DEBUG //#define ARACHNE_STITCH_PATCH_DEBUG
+6
View File
@@ -4,10 +4,16 @@
#ifndef CURAENGINE_WALLTOOLPATHS_H #ifndef CURAENGINE_WALLTOOLPATHS_H
#define CURAENGINE_WALLTOOLPATHS_H #define CURAENGINE_WALLTOOLPATHS_H
#include <cstddef>
#include <boost/container_hash/hash.hpp>
#include <memory> #include <memory>
#include <ankerl/unordered_dense.h> #include <ankerl/unordered_dense.h>
#include <vector>
#include <utility>
#include "BeadingStrategy/BeadingStrategyFactory.hpp" #include "BeadingStrategy/BeadingStrategyFactory.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Point.hpp"
#include "utils/ExtrusionLine.hpp" #include "utils/ExtrusionLine.hpp"
#include "../Polygon.hpp" #include "../Polygon.hpp"
#include "../PrintConfig.hpp" #include "../PrintConfig.hpp"
@@ -6,6 +6,9 @@
#define UTILS_EXTRUSION_JUNCTION_H #define UTILS_EXTRUSION_JUNCTION_H
#include "../../Point.hpp" #include "../../Point.hpp"
#include "libslic3r/libslic3r.h"
#include <cstddef>
#include <vector>
namespace Slic3r::Arachne namespace Slic3r::Arachne
{ {
@@ -2,11 +2,17 @@
//CuraEngine is released under the terms of the AGPLv3 or higher. //CuraEngine is released under the terms of the AGPLv3 or higher.
#include <algorithm> #include <algorithm>
#include <cassert>
#include <cmath> #include <cmath>
#include <cstdint>
#include <cstdlib> #include <cstdlib>
#include <vector>
#include "ExtrusionLine.hpp" #include "ExtrusionLine.hpp"
#include "../../VariableWidth.hpp" #include "../../VariableWidth.hpp"
#include "libslic3r/ClipperZUtils.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Point.hpp"
#include "libslic3r/Arachne/utils/ExtrusionJunction.hpp" #include "libslic3r/Arachne/utils/ExtrusionJunction.hpp"
#include "libslic3r/BoundingBox.hpp" #include "libslic3r/BoundingBox.hpp"
#include "libslic3r/ExtrusionEntity.hpp" #include "libslic3r/ExtrusionEntity.hpp"
@@ -22,6 +22,7 @@
#include "../../BoundingBox.hpp" #include "../../BoundingBox.hpp"
#include "../../ExtrusionEntity.hpp" #include "../../ExtrusionEntity.hpp"
#include "../../Flow.hpp" #include "../../Flow.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Point.hpp" #include "libslic3r/Point.hpp"
namespace Slic3r { namespace Slic3r {
@@ -4,6 +4,9 @@
#ifndef UTILS_POLYGONS_POINT_INDEX_H #ifndef UTILS_POLYGONS_POINT_INDEX_H
#define UTILS_POLYGONS_POINT_INDEX_H #define UTILS_POLYGONS_POINT_INDEX_H
#include <utility>
#include <functional>
#include <cstddef>
#include <vector> #include <vector>
#include "../../Point.hpp" #include "../../Point.hpp"
@@ -6,7 +6,10 @@
#include <vector> #include <vector>
#include "libslic3r/Polygon.hpp"
#include "libslic3r/Point.hpp"
#include "PolygonsPointIndex.hpp" #include "PolygonsPointIndex.hpp"
#include "libslic3r/libslic3r.h"
namespace Slic3r::Arachne namespace Slic3r::Arachne
{ {
@@ -4,6 +4,7 @@
#include "PolylineStitcher.hpp" #include "PolylineStitcher.hpp"
#include "ExtrusionLine.hpp" #include "ExtrusionLine.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/Arachne/utils/PolygonsPointIndex.hpp" #include "libslic3r/Arachne/utils/PolygonsPointIndex.hpp"
#include "libslic3r/Polygon.hpp" #include "libslic3r/Polygon.hpp"
@@ -6,11 +6,14 @@
#define UTILS_SPARSE_GRID_H #define UTILS_SPARSE_GRID_H
#include <cassert> #include <cassert>
#include <unordered_map>
#include <cstddef>
#include <vector> #include <vector>
#include <functional> #include <functional>
#include "../../Point.hpp" #include "../../Point.hpp"
#include "SquareGrid.hpp" #include "SquareGrid.hpp"
#include "libslic3r/libslic3r.h"
namespace Slic3r::Arachne { namespace Slic3r::Arachne {
@@ -6,10 +6,15 @@
#define UTILS_SPARSE_LINE_GRID_H #define UTILS_SPARSE_LINE_GRID_H
#include <cassert> #include <cassert>
#include <cstddef>
#include <utility>
#include <unordered_map>
#include <vector> #include <vector>
#include <functional> #include <functional>
#include "libslic3r/Point.hpp"
#include "SparseGrid.hpp" #include "SparseGrid.hpp"
#include "libslic3r/libslic3r.h"
namespace Slic3r::Arachne { namespace Slic3r::Arachne {
@@ -6,9 +6,13 @@
#define UTILS_SPARSE_POINT_GRID_H #define UTILS_SPARSE_POINT_GRID_H
#include <cassert> #include <cassert>
#include <cstddef>
#include <cstdint>
#include <vector> #include <vector>
#include "libslic3r/Point.hpp"
#include "SparseGrid.hpp" #include "SparseGrid.hpp"
#include "libslic3r/libslic3r.h"
namespace Slic3r::Arachne { namespace Slic3r::Arachne {
@@ -4,7 +4,11 @@
#include "SquareGrid.hpp" #include "SquareGrid.hpp"
#include <cassert> #include <cassert>
#include <cstdint>
#include <utility>
#include <functional>
#include "libslic3r/libslic3r.h"
#include "libslic3r/Point.hpp" #include "libslic3r/Point.hpp"
using namespace Slic3r::Arachne; using namespace Slic3r::Arachne;
@@ -5,6 +5,9 @@
#define UTILS_LINEAR_ALG_2D_H #define UTILS_LINEAR_ALG_2D_H
#include "../../Point.hpp" #include "../../Point.hpp"
#include <cstdint>
#include <math.h>
#include <cmath>
namespace Slic3r::Arachne::LinearAlg2D namespace Slic3r::Arachne::LinearAlg2D
{ {
+6
View File
@@ -1,8 +1,14 @@
#include "ArcFitter.hpp" #include "ArcFitter.hpp"
#include "Point.hpp"
#include "Circle.hpp"
#include "MultiPoint.hpp"
#include "Polyline.hpp" #include "Polyline.hpp"
#include "libslic3r.h"
#include <cmath> #include <cmath>
#include <cassert> #include <cassert>
#include <vector>
#include <cstddef>
namespace Slic3r { namespace Slic3r {
+3
View File
@@ -2,6 +2,9 @@
#define slic3r_ArcFitter_hpp_ #define slic3r_ArcFitter_hpp_
#include "Circle.hpp" #include "Circle.hpp"
#include <cstddef>
#include "Point.hpp"
#include <vector>
namespace Slic3r { namespace Slic3r {
+24
View File
@@ -1,9 +1,28 @@
#include "Arrange.hpp" #include "Arrange.hpp"
#include "ExPolygon.hpp"
#include "Point.hpp"
#include "Print.hpp" #include "Print.hpp"
#include "BoundingBox.hpp" #include "BoundingBox.hpp"
#include "PrintConfig.hpp"
#include "libslic3r.h" #include "libslic3r.h"
#include <Eigen/Core>
#include <boost/geometry/index/parameters.hpp>
#include <functional>
#include <algorithm>
#include <cstdlib>
#include <cmath>
#include <cstddef>
#include <boost/geometry/algorithms/convert.hpp>
#include <array>
#include <boost/geometry/index/predicates.hpp>
#include <iterator>
#include <exception>
#include <libnest2d/backends/libslic3r/geometries.hpp> #include <libnest2d/backends/libslic3r/geometries.hpp>
#include "libnest2d/common.hpp"
#include "libnest2d/geometry_traits_nfp.hpp"
#include "libnest2d/nester.hpp"
#include "libnest2d/geometry_traits.hpp"
#include <libnest2d/optimizers/nlopt/subplex.hpp> #include <libnest2d/optimizers/nlopt/subplex.hpp>
#include <libnest2d/placers/nfpplacer.hpp> #include <libnest2d/placers/nfpplacer.hpp>
#include <libnest2d/selections/firstfit.hpp> #include <libnest2d/selections/firstfit.hpp>
@@ -13,6 +32,11 @@
#include <ClipperUtils.hpp> #include <ClipperUtils.hpp>
#include <boost/geometry/index/rtree.hpp> #include <boost/geometry/index/rtree.hpp>
#include <utility>
#include <vector>
#include <tuple>
#include <set>
#include <string>
#if defined(_MSC_VER) && defined(__clang__) #if defined(_MSC_VER) && defined(__clang__)
#define BOOST_NO_CXX17_HDR_STRING_VIEW #define BOOST_NO_CXX17_HDR_STRING_VIEW
+9
View File
@@ -2,8 +2,17 @@
#define ARRANGE_HPP #define ARRANGE_HPP
#include "ExPolygon.hpp" #include "ExPolygon.hpp"
#include "Point.hpp"
#include "Polygon.hpp"
#include "PrintConfig.hpp" #include "PrintConfig.hpp"
#include "Print.hpp" #include "Print.hpp"
#include <cmath>
#include "libslic3r.h"
#include <vector>
#include <string>
#include <functional>
#include <iostream>
#include <ostream>
#define BED_SHRINK_SEQ_PRINT 5 #define BED_SHRINK_SEQ_PRINT 5
+3
View File
@@ -1,5 +1,8 @@
#include "BoundingBox.hpp" #include "BoundingBox.hpp"
#include "Point.hpp"
#include "Polygon.hpp" #include "Polygon.hpp"
#include "libslic3r.h"
#include <Eigen/Core>
#include <algorithm> #include <algorithm>
#include <assert.h> #include <assert.h>
+3
View File
@@ -5,7 +5,10 @@
#include "Exception.hpp" #include "Exception.hpp"
#include "Point.hpp" #include "Point.hpp"
#include "Polygon.hpp" #include "Polygon.hpp"
#include <cassert>
#include <cstddef>
#include <ostream> #include <ostream>
#include <vector>
namespace Slic3r { namespace Slic3r {
+11
View File
@@ -1,7 +1,18 @@
#include "BridgeDetector.hpp" #include "BridgeDetector.hpp"
#include "BoundingBox.hpp"
#include "ClipperUtils.hpp" #include "ClipperUtils.hpp"
#include "ExPolygon.hpp"
#include "Geometry.hpp" #include "Geometry.hpp"
#include "libslic3r.h"
#include "Polygon.hpp"
#include "Line.hpp"
#include "Polyline.hpp"
#include "Point.hpp"
#include <algorithm> #include <algorithm>
#include <utility>
#include <vector>
#include <cstddef>
#include <cmath>
namespace Slic3r { namespace Slic3r {
+7
View File
@@ -9,7 +9,14 @@
#include "PrincipalComponents2D.hpp" #include "PrincipalComponents2D.hpp"
#include "libslic3r.h" #include "libslic3r.h"
#include "ExPolygon.hpp" #include "ExPolygon.hpp"
#include <cmath>
#include <cstdlib>
#include <limits>
#include <string> #include <string>
#include <vector>
#include <tuple>
#include <unordered_map>
#include <utility>
namespace Slic3r { namespace Slic3r {
+19
View File
@@ -1,18 +1,37 @@
#include "BoundingBox.hpp"
#include "BrimEarsPoint.hpp"
#include "ClipperUtils.hpp" #include "ClipperUtils.hpp"
#include "EdgeGrid.hpp" #include "EdgeGrid.hpp"
#include "ExPolygon.hpp"
#include "Flow.hpp"
#include "Geometry.hpp"
#include "ExtrusionEntity.hpp"
#include "Layer.hpp" #include "Layer.hpp"
#include "Point.hpp"
#include "ObjectID.hpp"
#include "Polygon.hpp"
#include "Line.hpp"
#include "MultiPoint.hpp"
#include "Polyline.hpp"
#include "Print.hpp" #include "Print.hpp"
#include "PrintBase.hpp"
#include "ShortestPath.hpp" #include "ShortestPath.hpp"
#include "libslic3r.h" #include "libslic3r.h"
#include "PrintConfig.hpp" #include "PrintConfig.hpp"
#include "MaterialType.hpp" #include "MaterialType.hpp"
#include "Model.hpp" #include "Model.hpp"
#include <algorithm> #include <algorithm>
#include <cstddef>
#include <cmath>
#include <cstdint> #include <cstdint>
#include <limits> #include <limits>
#include <map>
#include <string>
#include <tbb/parallel_for.h> #include <tbb/parallel_for.h>
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#include <utility>
#include <vector>
#ifndef NDEBUG #ifndef NDEBUG
// #define BRIM_DEBUG_TO_SVG // #define BRIM_DEBUG_TO_SVG
+2
View File
@@ -4,8 +4,10 @@
#include "ExPolygon.hpp" #include "ExPolygon.hpp"
#include "ObjectID.hpp" #include "ObjectID.hpp"
#include "Point.hpp" #include "Point.hpp"
#include "Polygon.hpp"
#include<map> #include<map>
#include <utility>
#include<vector> #include<vector>
namespace Slic3r { namespace Slic3r {
+3
View File
@@ -1,7 +1,10 @@
#ifndef BRIMEARSPOINT_HPP #ifndef BRIMEARSPOINT_HPP
#define BRIMEARSPOINT_HPP #define BRIMEARSPOINT_HPP
#include <cstdlib>
#include "libslic3r.h"
#include <libslic3r/Point.hpp> #include <libslic3r/Point.hpp>
#include <vector>
namespace Slic3r { namespace Slic3r {
+13
View File
@@ -1,11 +1,24 @@
#include "BuildVolume.hpp" #include "BuildVolume.hpp"
#include "BoundingBox.hpp"
#include "ClipperUtils.hpp" #include "ClipperUtils.hpp"
#include "Polygon.hpp"
#include "Geometry/Circle.hpp"
#include "ExtrusionEntity.hpp"
#include "TriangleMesh.hpp" #include "TriangleMesh.hpp"
#include "Geometry/ConvexHull.hpp" #include "Geometry/ConvexHull.hpp"
#include "GCode/GCodeProcessor.hpp" #include "GCode/GCodeProcessor.hpp"
#include "Point.hpp" #include "Point.hpp"
#include "libslic3r.h"
#include <algorithm>
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#include <vector>
#include <cassert>
#include <cstdlib>
#include <limits>
#include <utility>
#include <cstddef>
#include <string_view>
namespace Slic3r { namespace Slic3r {
+4
View File
@@ -5,9 +5,13 @@
#include "Geometry/Circle.hpp" #include "Geometry/Circle.hpp"
#include "Polygon.hpp" #include "Polygon.hpp"
#include "BoundingBox.hpp" #include "BoundingBox.hpp"
#include "libslic3r.h"
#include <admesh/stl.h> #include <admesh/stl.h>
#include <array>
#include <string_view> #include <string_view>
#include <vector>
#include <utility>
namespace Slic3r { namespace Slic3r {
+16
View File
@@ -1,8 +1,14 @@
#include "libslic3r/CAD/CadDocument.hpp" #include "libslic3r/CAD/CadDocument.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/CAD/SketchEngine.hpp"
#include "libslic3r/CAD/GeometryEngine.hpp"
#include "libslic3r/CAD/SketchConstraints.hpp" #include "libslic3r/CAD/SketchConstraints.hpp"
#include "libslic3r/CAD/SketchSolver.hpp" #include "libslic3r/CAD/SketchSolver.hpp"
#include "libslic3r/CAD/SketchImport.hpp" // transform_regions for imported art #include "libslic3r/CAD/SketchImport.hpp" // transform_regions for imported art
#include <Standard_Handle.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <Standard_TypeDef.hxx>
#include <array> #include <array>
#include <Standard_Failure.hxx> #include <Standard_Failure.hxx>
@@ -26,6 +32,10 @@
#include <BRepOffsetAPI_DraftAngle.hxx> #include <BRepOffsetAPI_DraftAngle.hxx>
#include <Bnd_Box.hxx> #include <Bnd_Box.hxx>
#include <BRepBndLib.hxx> #include <BRepBndLib.hxx>
#include <functional>
#include <exception>
#include <cstdint>
#include <cereal/cereal.hpp>
#include <gp_Pln.hxx> #include <gp_Pln.hxx>
#include <TopTools_ListOfShape.hxx> #include <TopTools_ListOfShape.hxx>
#include <BRepPrimAPI_MakeCylinder.hxx> #include <BRepPrimAPI_MakeCylinder.hxx>
@@ -69,12 +79,18 @@
#include <cmath> #include <cmath>
#include <cctype> #include <cctype>
#include <cstdio> #include <cstdio>
#include <math.h>
#include <map>
#include <set>
#include <stdexcept> #include <stdexcept>
#include <algorithm> #include <algorithm>
#include <sstream> #include <sstream>
#include <cereal/archives/binary.hpp> #include <cereal/archives/binary.hpp>
#include <BRepTools.hxx> #include <BRepTools.hxx>
#include <string>
#include <vector>
#include <utility>
namespace Slic3r { namespace Slic3r {
+4
View File
@@ -1,16 +1,20 @@
#ifndef slic3r_CadDocument_hpp_ #ifndef slic3r_CadDocument_hpp_
#define slic3r_CadDocument_hpp_ #define slic3r_CadDocument_hpp_
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleMesh.hpp" #include "libslic3r/TriangleMesh.hpp"
#include "libslic3r/CAD/SketchEngine.hpp" #include "libslic3r/CAD/SketchEngine.hpp"
#include "libslic3r/CAD/GeometryEngine.hpp" // FaceGroup #include "libslic3r/CAD/GeometryEngine.hpp" // FaceGroup
#include "libslic3r/Color.hpp" // ColorRGBA (per-body display colour override) #include "libslic3r/Color.hpp" // ColorRGBA (per-body display colour override)
#include <TopoDS_Face.hxx>
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <TopoDS_Wire.hxx> #include <TopoDS_Wire.hxx>
#include <cereal/cereal.hpp> #include <cereal/cereal.hpp>
#include <cereal/types/vector.hpp> #include <cereal/types/vector.hpp>
#include <cereal/types/string.hpp> #include <cereal/types/string.hpp>
#include <cstdint>
#include <cstddef>
#include <map> #include <map>
#include <cereal/types/map.hpp> #include <cereal/types/map.hpp>
#include <string> #include <string>
+16
View File
@@ -1,12 +1,25 @@
#include "libslic3r/CAD/GeometryEngine.hpp" #include "libslic3r/CAD/GeometryEngine.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleMesh.hpp"
#include <BRepMesh_IncrementalMesh.hxx> #include <BRepMesh_IncrementalMesh.hxx>
#include <BRep_Tool.hxx> #include <BRep_Tool.hxx>
#include <BRepAdaptor_Surface.hxx> #include <BRepAdaptor_Surface.hxx>
#include <BRepLProp_SLProps.hxx> #include <BRepLProp_SLProps.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <cstddef>
#include <algorithm>
#include <GeomAbs_SurfaceType.hxx>
#include <TopAbs_Orientation.hxx>
#include <Standard_Handle.hxx>
#include <cstdint>
#include <Poly_Triangle.hxx>
#include <GeomAbs_CurveType.hxx>
#include <gp_Cylinder.hxx> #include <gp_Cylinder.hxx>
#include <BRepFilletAPI_MakeFillet.hxx> #include <BRepFilletAPI_MakeFillet.hxx>
#include <BRepFilletAPI_MakeChamfer.hxx> #include <BRepFilletAPI_MakeChamfer.hxx>
#include <math.h>
#include <gp_Mat.hxx>
#include <stdexcept> #include <stdexcept>
#include <TopExp_Explorer.hxx> #include <TopExp_Explorer.hxx>
#include <TopoDS.hxx> #include <TopoDS.hxx>
@@ -43,6 +56,9 @@
#include <array> #include <array>
#include <map> #include <map>
#include <cmath> #include <cmath>
#include <vector>
#include <string>
#include <utility>
namespace Slic3r { namespace Slic3r {
+3
View File
@@ -1,6 +1,7 @@
#ifndef slic3r_GeometryEngine_hpp_ #ifndef slic3r_GeometryEngine_hpp_
#define slic3r_GeometryEngine_hpp_ #define slic3r_GeometryEngine_hpp_
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleMesh.hpp" #include "libslic3r/TriangleMesh.hpp"
#include <BRepPrimAPI_MakeBox.hxx> #include <BRepPrimAPI_MakeBox.hxx>
@@ -8,6 +9,8 @@
#include <BRepPrimAPI_MakeSphere.hxx> #include <BRepPrimAPI_MakeSphere.hxx>
#include <BRepPrimAPI_MakeCone.hxx> #include <BRepPrimAPI_MakeCone.hxx>
#include <BRepPrimAPI_MakeTorus.hxx> #include <BRepPrimAPI_MakeTorus.hxx>
#include <TopoDS_Shape.hxx>
#include <array>
#include <gp_Ax2.hxx> #include <gp_Ax2.hxx>
#include <TopoDS_Solid.hxx> #include <TopoDS_Solid.hxx>
#include <TopoDS_Face.hxx> #include <TopoDS_Face.hxx>
+5
View File
@@ -1,6 +1,11 @@
#include "libslic3r/CAD/SketchConstraints.hpp" #include "libslic3r/CAD/SketchConstraints.hpp"
#include "libslic3r/Point.hpp"
#include <Eigen/Core>
#include <Eigen/Dense> #include <Eigen/Dense>
#include <algorithm>
#include <cmath> #include <cmath>
#include <cstddef>
#include <vector>
namespace Slic3r { namespace Slic3r {
+1
View File
@@ -2,6 +2,7 @@
#define slic3r_SketchConstraints_hpp_ #define slic3r_SketchConstraints_hpp_
#include "libslic3r/Point.hpp" #include "libslic3r/Point.hpp"
#include <Eigen/Core>
#include <vector> #include <vector>
#include <Eigen/Dense> #include <Eigen/Dense>
+14
View File
@@ -1,7 +1,18 @@
#include "libslic3r/CAD/SketchEngine.hpp" #include "libslic3r/CAD/SketchEngine.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleMesh.hpp"
#include <Standard_Handle.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <GeomAbs_JoinType.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <Standard_TypeDef.hxx>
#include <TopAbs_Orientation.hxx>
#include <Poly_Triangle.hxx>
#include <TopAbs_State.hxx>
#include <algorithm> #include <algorithm>
#include <cmath> #include <cmath>
#include <cstddef>
#include <limits> #include <limits>
#include <BRepBuilderAPI_MakeWire.hxx> #include <BRepBuilderAPI_MakeWire.hxx>
@@ -47,8 +58,11 @@
#include <TopoDS_Wire.hxx> #include <TopoDS_Wire.hxx>
#include <GeomAPI_IntCS.hxx> #include <GeomAPI_IntCS.hxx>
#include <map> #include <map>
#include <math.h>
#include <tuple> #include <tuple>
#include <stdexcept> #include <stdexcept>
#include <vector>
#include <utility>
namespace Slic3r { namespace Slic3r {
+8
View File
@@ -1,5 +1,8 @@
#include "libslic3r/CAD/SketchImport.hpp" #include "libslic3r/CAD/SketchImport.hpp"
#include "libslic3r/Polygon.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/EmbossShape.hpp"
#include "libslic3r/Emboss.hpp" #include "libslic3r/Emboss.hpp"
#include "libslic3r/NSVGUtils.hpp" #include "libslic3r/NSVGUtils.hpp"
#include "libslic3r/ExPolygon.hpp" #include "libslic3r/ExPolygon.hpp"
@@ -9,6 +12,11 @@
#include <algorithm> #include <algorithm>
#include <limits> #include <limits>
#include <vector>
#include <string>
#include <memory>
#include <utility>
#include <nanosvg/nanosvg.h>
namespace Slic3r { namespace Slic3r {
+6
View File
@@ -1,7 +1,13 @@
#include "libslic3r/CAD/SketchInference.hpp" #include "libslic3r/CAD/SketchInference.hpp"
#include "libslic3r/CAD/SketchEngine.hpp"
#include "libslic3r/Point.hpp"
#include <algorithm> #include <algorithm>
#include <cmath> #include <cmath>
#include <vector>
#include <cstddef>
#include <optional>
#include <math.h>
namespace Slic3r { namespace Slic3r {
+2
View File
@@ -1,7 +1,9 @@
#ifndef slic3r_SketchInference_hpp_ #ifndef slic3r_SketchInference_hpp_
#define slic3r_SketchInference_hpp_ #define slic3r_SketchInference_hpp_
#include "libslic3r/Point.hpp"
#include "libslic3r/CAD/SketchEngine.hpp" #include "libslic3r/CAD/SketchEngine.hpp"
#include <math.h>
#include <vector> #include <vector>
#include <optional> #include <optional>
#include <cmath> #include <cmath>
+4
View File
@@ -1,5 +1,7 @@
#include "libslic3r/CAD/SketchSolver.hpp" #include "libslic3r/CAD/SketchSolver.hpp"
#include "libslic3r/CAD/SketchEngine.hpp"
#include <math.h>
#include <slvs.h> #include <slvs.h>
#include <cmath> #include <cmath>
@@ -7,6 +9,8 @@
#include <functional> #include <functional>
#include <map> #include <map>
#include <unordered_map> #include <unordered_map>
#include <vector>
#include <utility>
namespace Slic3r { namespace Slic3r {
+2
View File
@@ -1,4 +1,6 @@
#include "libslic3r/CAD/ThreadStandards.hpp" #include "libslic3r/CAD/ThreadStandards.hpp"
#include <vector>
#include <string>
namespace Slic3r { namespace Slic3r {
+4
View File
@@ -2,7 +2,11 @@
#define CSGMESH_HPP #define CSGMESH_HPP
#include <libslic3r/AnyPtr.hpp> #include <libslic3r/AnyPtr.hpp>
#include <libslic3r/Point.hpp>
#include <libslic3r/TriangleMesh.hpp>
#include <admesh/stl.h> #include <admesh/stl.h>
#include <string>
#include <utility>
namespace Slic3r { namespace csg { namespace Slic3r { namespace csg {
+4
View File
@@ -1,7 +1,11 @@
#ifndef CSGMESHCOPY_HPP #ifndef CSGMESHCOPY_HPP
#define CSGMESHCOPY_HPP #define CSGMESHCOPY_HPP
#include "libslic3r/AnyPtr.hpp"
#include "CSGMesh.hpp" #include "CSGMesh.hpp"
#include "libslic3r/libslic3r.h"
#include <utility>
#include <cstddef>
namespace Slic3r { namespace csg { namespace Slic3r { namespace csg {
+4
View File
@@ -3,9 +3,13 @@
#include "CSGMesh.hpp" #include "CSGMesh.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleMesh.hpp"
#include "libslic3r/Model.hpp" #include "libslic3r/Model.hpp"
#include "libslic3r/SLA/Hollowing.hpp" #include "libslic3r/SLA/Hollowing.hpp"
#include "libslic3r/MeshSplitImpl.hpp" #include "libslic3r/MeshSplitImpl.hpp"
#include <utility>
#include <memory>
namespace Slic3r { namespace csg { namespace Slic3r { namespace csg {
@@ -1,11 +1,17 @@
#ifndef PERFORMCSGMESHBOOLEANS_HPP #ifndef PERFORMCSGMESHBOOLEANS_HPP
#define PERFORMCSGMESHBOOLEANS_HPP #define PERFORMCSGMESHBOOLEANS_HPP
#include <cstddef>
#include <stack> #include <stack>
#include <utility>
#include <tuple>
#include <vector> #include <vector>
#include <boost/log/trivial.hpp>
#include "CSGMesh.hpp" #include "CSGMesh.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Execution/ExecutionTBB.hpp" #include "libslic3r/Execution/ExecutionTBB.hpp"
//#include "libslic3r/Execution/ExecutionSeq.hpp" //#include "libslic3r/Execution/ExecutionSeq.hpp"
#include "libslic3r/MeshBoolean.hpp" #include "libslic3r/MeshBoolean.hpp"
+8
View File
@@ -3,8 +3,16 @@
#include "CSGMesh.hpp" #include "CSGMesh.hpp"
#include <cstddef>
#include <functional>
#include <cassert>
#include <stack> #include <stack>
#include <vector>
#include <utility>
#include "libslic3r/ExPolygon.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r/Execution/Execution.hpp"
#include "libslic3r/TriangleMeshSlicer.hpp" #include "libslic3r/TriangleMeshSlicer.hpp"
#include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ClipperUtils.hpp"
#include "libslic3r/Execution/ExecutionTBB.hpp" #include "libslic3r/Execution/ExecutionTBB.hpp"
@@ -3,6 +3,7 @@
#include "CSGMesh.hpp" #include "CSGMesh.hpp"
#include "libslic3r/Point.hpp"
#include "libslic3r/TriangleMesh.hpp" #include "libslic3r/TriangleMesh.hpp"
namespace Slic3r { namespace csg { namespace Slic3r { namespace csg {
+3
View File
@@ -1,6 +1,9 @@
#ifndef slic3r_Channel_hpp_ #ifndef slic3r_Channel_hpp_
#define slic3r_Channel_hpp_ #define slic3r_Channel_hpp_
#include <boost/optional/optional.hpp>
#include <boost/none.hpp>
#include <cstddef>
#include <memory> #include <memory>
#include <deque> #include <deque>
#include <condition_variable> #include <condition_variable>
+6
View File
@@ -2,8 +2,14 @@
#include <cmath> #include <cmath>
#include <cassert> #include <cassert>
#include <cstddef>
#include <utility>
#include <math.h>
#include "Geometry.hpp" #include "Geometry.hpp"
#include "Point.hpp"
#include "Line.hpp"
#include "Polygon.hpp" #include "Polygon.hpp"
#include "libslic3r.h"
//BBS: Refer to ArcWelderLib for the arc fitting functions //BBS: Refer to ArcWelderLib for the arc fitting functions
+2
View File
@@ -3,6 +3,8 @@
#include "Point.hpp" #include "Point.hpp"
#include "Line.hpp" #include "Line.hpp"
#include "libslic3r.h"
#include <cmath>
namespace Slic3r { namespace Slic3r {
+15
View File
@@ -1,14 +1,29 @@
#include <algorithm> #include <algorithm>
#include <array> #include <array>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <cassert>
#include <cmath>
#include <limits> #include <limits>
#include <numeric> #include <numeric>
#include <unordered_map> #include <unordered_map>
#include "ClipperUtils.hpp" #include "ClipperUtils.hpp"
#include "BoundingBox.hpp"
#include "ExPolygon.hpp"
#include "Geometry.hpp" #include "Geometry.hpp"
#include "Point.hpp"
#include "Polygon.hpp"
#include "Polyline.hpp"
#include "Line.hpp"
#include "ShortestPath.hpp" #include "ShortestPath.hpp"
#include "libslic3r.h"
#include "Surface.hpp"
#include <clipper2/clipper.h> #include <clipper2/clipper.h>
#include <utility>
#include <vector>
// #define CLIPPER_UTILS_DEBUG // #define CLIPPER_UTILS_DEBUG
+7
View File
@@ -1,10 +1,17 @@
#ifndef slic3r_ClipperUtils_hpp_ #ifndef slic3r_ClipperUtils_hpp_
#define slic3r_ClipperUtils_hpp_ #define slic3r_ClipperUtils_hpp_
#include "Point.hpp"
#include "Polyline.hpp"
#include "Line.hpp"
#include "libslic3r.h" #include "libslic3r.h"
#include "ExPolygon.hpp" #include "ExPolygon.hpp"
#include "Polygon.hpp" #include "Polygon.hpp"
#include "Surface.hpp" #include "Surface.hpp"
#include <cstddef>
#include <iterator>
#include <cassert>
#include <vector>
namespace Slic3r { namespace Slic3r {
+2
View File
@@ -1,6 +1,8 @@
#include "ClipperZUtils.hpp" #include "ClipperZUtils.hpp"
#include "ClipperUtils.hpp"
#include <clipper2/clipper2_z.hpp> #include <clipper2/clipper2_z.hpp>
#include <cstddef>
namespace Slic3r { namespace Slic3r {
namespace ClipperZUtils { namespace ClipperZUtils {
+5
View File
@@ -1,8 +1,13 @@
#ifndef slic3r_ClipperZUtils_hpp_ #ifndef slic3r_ClipperZUtils_hpp_
#define slic3r_ClipperZUtils_hpp_ #define slic3r_ClipperZUtils_hpp_
#include "libslic3r.h"
#include <cstddef>
#include <algorithm>
#include <cassert>
#include <functional> #include <functional>
#include <numeric> #include <numeric>
#include <utility>
#include <vector> #include <vector>
#include <libslic3r/ClipperUtils.hpp> #include <libslic3r/ClipperUtils.hpp>
+8
View File
@@ -1,7 +1,15 @@
#include "libslic3r.h" #include "libslic3r.h"
#include "Color.hpp" #include "Color.hpp"
#include <cstddef>
#include <cstdlib>
#include <cassert>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <random> #include <random>
#include <string>
#include <vector>
static const float INV_255 = 1.0f / 255.0f; static const float INV_255 = 1.0f / 255.0f;
+2
View File
@@ -9,7 +9,9 @@
#include <cstdio> #include <cstdio>
#include <fstream> #include <fstream>
#include <limits> #include <limits>
#include <string>
#include <utility> #include <utility>
#include <vector>
namespace Slic3r { namespace Slic3r {
namespace { namespace {
+22
View File
@@ -1,4 +1,6 @@
#include "Config.hpp" #include "Config.hpp"
#include "Exception.hpp"
#include "Point.hpp"
#include "format.hpp" #include "format.hpp"
#include "Utils.hpp" #include "Utils.hpp"
#include "LocalesUtils.hpp" #include "LocalesUtils.hpp"
@@ -6,7 +8,20 @@
#include <algorithm> #include <algorithm>
#include <assert.h> #include <assert.h>
#include <cmath>
#include <boost/algorithm/string/join.hpp>
#include <cstdlib>
#include <exception>
#include <cctype>
#include <boost/algorithm/string/trim.hpp>
#include <fstream> #include <fstream>
#include <functional>
#include <set>
#include <initializer_list>
#include <map>
#include <list>
#include <optional>
#include <memory>
#include <sstream> #include <sstream>
#include <iostream> #include <iostream>
#include <iomanip> #include <iomanip>
@@ -26,8 +41,15 @@
#include <boost/nowide/fstream.hpp> #include <boost/nowide/fstream.hpp>
#include <boost/property_tree/ini_parser.hpp> #include <boost/property_tree/ini_parser.hpp>
#include <boost/format.hpp> #include <boost/format.hpp>
#include <stdexcept>
#include <string.h> #include <string.h>
#include <string>
#include <vector>
#include <utility>
#include <system_error>
//BBS: add json support //BBS: add json support
#include "libslic3r.h"
#include "libslic3r_version.h"
#include "nlohmann/json.hpp" #include "nlohmann/json.hpp"
using namespace nlohmann; using namespace nlohmann;
+10
View File
@@ -3,6 +3,11 @@
#include <assert.h> #include <assert.h>
#include <algorithm> #include <algorithm>
#include <boost/container_hash/hash.hpp>
#include <cctype>
#include <initializer_list>
#include <limits>
#include <cmath>
#include <map> #include <map>
#include <climits> #include <climits>
#include <cfloat> #include <cfloat>
@@ -10,10 +15,15 @@
#include <cstdlib> #include <cstdlib>
#include <functional> #include <functional>
#include <iostream> #include <iostream>
#include <memory>
#include <optional> #include <optional>
#include <sstream>
#include <set>
#include <stdexcept> #include <stdexcept>
#include <string> #include <string>
#include <utility>
#include <vector> #include <vector>
#include "LocalesUtils.hpp"
#include "libslic3r.h" #include "libslic3r.h"
#include "clonable_ptr.hpp" #include "clonable_ptr.hpp"
#include "Exception.hpp" #include "Exception.hpp"
+4
View File
@@ -2,14 +2,18 @@
#include "ExtrusionEntity.hpp" #include "ExtrusionEntity.hpp"
#include "ExtrusionEntityCollection.hpp" #include "ExtrusionEntityCollection.hpp"
#include "Layer.hpp" #include "Layer.hpp"
#include "Line.hpp"
#include "Point.hpp" #include "Point.hpp"
#include "Print.hpp" #include "Print.hpp"
#include "SLA/IndexedMesh.hpp" #include "SLA/IndexedMesh.hpp"
#include "libslic3r.h" #include "libslic3r.h"
#include <Eigen/Core>
#include <cfloat> #include <cfloat>
#include <cmath> #include <cmath>
#include <initializer_list> #include <initializer_list>
#include <math.h>
#include <string> #include <string>
#include <utility>
namespace Slic3r { namespace Slic3r {
+4
View File
@@ -2,6 +2,10 @@
#include "Config.hpp" #include "Config.hpp"
#include "GCode.hpp" #include "GCode.hpp"
#include "GCodeWriter.hpp" #include "GCodeWriter.hpp"
#include <vector>
#include <utility>
#include <cstddef>
#include <cassert>
namespace Slic3r { namespace Slic3r {
+3
View File
@@ -1,7 +1,10 @@
#ifndef slic3r_CustomGCode_hpp_ #ifndef slic3r_CustomGCode_hpp_
#define slic3r_CustomGCode_hpp_ #define slic3r_CustomGCode_hpp_
#include <map>
#include <cstddef>
#include <string> #include <string>
#include <utility>
#include <vector> #include <vector>
#include <nlohmann/json.hpp> #include <nlohmann/json.hpp>

Some files were not shown because too many files have changed in this diff Show More