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

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libslic3r/Format/SL1.hpp')
-rw-r--r--src/libslic3r/Format/SL1.hpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/libslic3r/Format/SL1.hpp b/src/libslic3r/Format/SL1.hpp
new file mode 100644
index 000000000..ab731ff84
--- /dev/null
+++ b/src/libslic3r/Format/SL1.hpp
@@ -0,0 +1,62 @@
+#ifndef ARCHIVETRAITS_HPP
+#define ARCHIVETRAITS_HPP
+
+#include <string>
+
+#include "libslic3r/Zipper.hpp"
+#include "libslic3r/SLAPrint.hpp"
+
+namespace Slic3r {
+
+class SL1Archive: public SLAPrinter {
+ SLAPrinterConfig m_cfg;
+
+protected:
+ uqptr<sla::RasterBase> create_raster() const override;
+ sla::RasterEncoder get_encoder() const override;
+
+public:
+
+ SL1Archive() = default;
+ explicit SL1Archive(const SLAPrinterConfig &cfg): m_cfg(cfg) {}
+ explicit SL1Archive(SLAPrinterConfig &&cfg): m_cfg(std::move(cfg)) {}
+
+ void export_print(Zipper &zipper, const SLAPrint &print, const std::string &projectname = "");
+ void export_print(const std::string &fname, const SLAPrint &print, const std::string &projectname = "")
+ {
+ Zipper zipper(fname);
+ export_print(zipper, print, projectname);
+ }
+
+ void apply(const SLAPrinterConfig &cfg) override
+ {
+ auto diff = m_cfg.diff(cfg);
+ if (!diff.empty()) {
+ m_cfg.apply_only(cfg, diff);
+ m_layers = {};
+ }
+ }
+};
+
+void import_sla_archive(const std::string &zipfname, DynamicPrintConfig &out);
+
+void import_sla_archive(
+ const std::string & zipfname,
+ Vec2i windowsize,
+ TriangleMesh & out,
+ DynamicPrintConfig & profile,
+ std::function<bool(int)> progr = [](int) { return true; });
+
+inline void import_sla_archive(
+ const std::string & zipfname,
+ Vec2i windowsize,
+ TriangleMesh & out,
+ std::function<bool(int)> progr = [](int) { return true; })
+{
+ DynamicPrintConfig profile;
+ import_sla_archive(zipfname, windowsize, out, profile, progr);
+}
+
+} // namespace Slic3r::sla
+
+#endif // ARCHIVETRAITS_HPP