mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-10 16:27:54 -06:00

* How to wiki * Local images + pressure-advance realocation * fill patterns WIP + Patch Until they fix this: https://github.com/orgs/community/discussions/118296 * Wiki images update8fff1ca
Updated images with new style from commit8fff1ca
(pr: #9797) * Internal Wiki Links + standardization * Update Flow Calibration image Co-Authored-By: Dowsha3d <216038220+dowsha3d@users.noreply.github.com> * Seam wiki merge * Updated Wiki Home * MD Final lines * How to index --------- Co-authored-by: Dowsha3d <216038220+dowsha3d@users.noreply.github.com>
44 lines
No EOL
1.6 KiB
Markdown
44 lines
No EOL
1.6 KiB
Markdown
## Slicing Call Hierarchy
|
|
|
|
The Slicing logic is not the easiest to locate in the code base. Below is a flow diagram of function calls that are made after clicking the `Slice Plate` button in the UI. Most of the processing happens in different threads. Note the calls after `BackgroundSlicingProcess::start()`, but this is how you can find the slicing logic.
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
A["Slice plate"] --> B["void Plater::priv::on_action_slice_plate(SimpleEvent&)"]
|
|
B --> C["void Plater::reslice()"]
|
|
C --> D["bool Plater::priv::restart_background_process(unsigned int state)"]
|
|
D --> E["bool BackgroundSlicingProcess::start()"]
|
|
E --> F["void BackgroundSlicingProcess::thread_proc_safe_seh_throw()"]
|
|
F --> G["unsigned long BackgroundSlicingProcess::thread_proc_safe_seh()"]
|
|
G --> H["void BackgroundSlicingProcess::thread_proc_safe()"]
|
|
H --> I["void BackgroundSlicingProcess::thread_proc()"]
|
|
I --> J["void BackgroundSlicingProcess::call_process_seh_throw(std::exception_ptr &ex)"]
|
|
J --> K["unsigned long BackgroundSlicingProcess::call_process_seh(std::exception_ptr &ex)"]
|
|
K --> L["void BackgroundSlicingProcess::call_process(std::exception_ptr &ex)"]
|
|
L --> M["void BackgroundSlicingProcess::process_fff()"]
|
|
M --> N["void Print::process(long long *time_cost_with_cache, bool use_cache)"]
|
|
N --> O["void PrintObject::make_perimeters()"]
|
|
O --> P["void PrintObject::slice()"]
|
|
|
|
%% Labels for libraries
|
|
subgraph G1 [libSlic3r_gui]
|
|
B
|
|
C
|
|
D
|
|
E
|
|
F
|
|
G
|
|
H
|
|
I
|
|
J
|
|
K
|
|
L
|
|
M
|
|
end
|
|
|
|
subgraph G2 [libSlic3r]
|
|
N
|
|
O
|
|
P
|
|
end
|
|
``` |