Welcome to mirror list, hosted at ThFree Co, Russian Federation.

SLAPrintSteps.hpp « libslic3r « src - github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 19b64d4a981ed0fa2f5a2ad3881de79945e07405 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#ifndef SLAPRINTSTEPS_HPP
#define SLAPRINTSTEPS_HPP

#include <random>

#include <libslic3r/SLAPrint.hpp>

#include <libslic3r/SLA/Hollowing.hpp>
#include <libslic3r/SLA/SupportTree.hpp>

namespace Slic3r {

class SLAPrint::Steps
{
private:
    SLAPrint *m_print = nullptr;
    std::mt19937 m_rng;
    
public:    
    // where the per object operations start and end
    static const constexpr unsigned min_objstatus = 0;   
    static const constexpr unsigned max_objstatus = 50;
    
private:
    const size_t objcount;
    
    // shortcut to initial layer height
    const double  ilhd;
    const float   ilh;
    const coord_t ilhs;
    
    // the coefficient that multiplies the per object status values which
    // are set up for <0, 100>. They need to be scaled into the whole process
    const double objectstep_scale;
    
    template<class...Args> void report_status(Args&&...args)
    {
        m_print->m_report_status(*m_print, std::forward<Args>(args)...);
    }
    
    double current_status() const { return m_print->m_report_status.status(); }
    void throw_if_canceled() const { m_print->throw_if_canceled(); }
    bool canceled() const { return m_print->canceled(); }
    void initialize_printer_input();
    
    void apply_printer_corrections(SLAPrintObject &po, SliceOrigin o);
    
public:
    explicit Steps(SLAPrint *print);
    
    void hollow_model(SLAPrintObject &po);
    void drill_holes (SLAPrintObject &po);
    void slice_model(SLAPrintObject& po);
    void support_points(SLAPrintObject& po);
    void support_tree(SLAPrintObject& po);
    void generate_pad(SLAPrintObject& po);
    void slice_supports(SLAPrintObject& po);
    
    void merge_slices_and_eval_stats();
    void rasterize();
    
    void execute(SLAPrintObjectStep step, SLAPrintObject &obj);
    void execute(SLAPrintStep step);
    
    static std::string label(SLAPrintObjectStep step);
    static std::string label(SLAPrintStep step);
    
    double progressrange(SLAPrintObjectStep step) const;
    double progressrange(SLAPrintStep step) const;
};

}

#endif // SLAPRINTSTEPS_HPP