Altering sla export interface to support explicit project name.
This commit is contained in:
parent
369cdd8b3b
commit
590ae25b13
5 changed files with 19 additions and 30 deletions
|
@ -10,7 +10,7 @@
|
||||||
#include "GCode/WipeTowerPrusaMM.hpp"
|
#include "GCode/WipeTowerPrusaMM.hpp"
|
||||||
#include "Utils.hpp"
|
#include "Utils.hpp"
|
||||||
|
|
||||||
#include "PrintExport.hpp"
|
//#include "PrintExport.hpp"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <boost/log/trivial.hpp>
|
#include <boost/log/trivial.hpp>
|
||||||
|
#include <boost/filesystem/path.hpp>
|
||||||
|
|
||||||
#include "Rasterizer/Rasterizer.hpp"
|
#include "Rasterizer/Rasterizer.hpp"
|
||||||
//#include <tbb/parallel_for.h>
|
//#include <tbb/parallel_for.h>
|
||||||
|
@ -72,7 +73,8 @@ public:
|
||||||
void finish_layer();
|
void finish_layer();
|
||||||
|
|
||||||
// Save all the layers into the file (or dir) specified in the path argument
|
// Save all the layers into the file (or dir) specified in the path argument
|
||||||
void save(const std::string& path);
|
// An optional project name can be added to be used for the layer file names
|
||||||
|
void save(const std::string& path, const std::string& projectname = "");
|
||||||
|
|
||||||
// Save only the selected layer to the file specified in path argument.
|
// Save only the selected layer to the file specified in path argument.
|
||||||
void save_layer(unsigned lyr, const std::string& path);
|
void save_layer(unsigned lyr, const std::string& path);
|
||||||
|
@ -86,7 +88,8 @@ template<class T = void> struct VeryFalse { static const bool value = false; };
|
||||||
template<class Fmt> class LayerWriter {
|
template<class Fmt> class LayerWriter {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
LayerWriter(const std::string& /*zipfile_path*/) {
|
LayerWriter(const std::string& /*zipfile_path*/)
|
||||||
|
{
|
||||||
static_assert(VeryFalse<Fmt>::value,
|
static_assert(VeryFalse<Fmt>::value,
|
||||||
"No layer writer implementation provided!");
|
"No layer writer implementation provided!");
|
||||||
}
|
}
|
||||||
|
@ -99,10 +102,6 @@ public:
|
||||||
void binary_entry(const std::string& /*fname*/,
|
void binary_entry(const std::string& /*fname*/,
|
||||||
const std::uint8_t* buf, size_t len);
|
const std::uint8_t* buf, size_t len);
|
||||||
|
|
||||||
// Get the name of the archive but only the name part without the path or
|
|
||||||
// the extension.
|
|
||||||
std::string get_name() { return ""; }
|
|
||||||
|
|
||||||
// Test whether the object can still be used for writing.
|
// Test whether the object can still be used for writing.
|
||||||
bool is_ok() { return false; }
|
bool is_ok() { return false; }
|
||||||
|
|
||||||
|
@ -253,12 +252,14 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class LyrFmt>
|
template<class LyrFmt>
|
||||||
inline void save(const std::string& path) {
|
inline void save(const std::string& fpath, const std::string& prjname = "")
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
LayerWriter<LyrFmt> writer(path);
|
LayerWriter<LyrFmt> writer(fpath);
|
||||||
if(!writer.is_ok()) return;
|
if(!writer.is_ok()) return;
|
||||||
|
|
||||||
std::string project = writer.get_name();
|
std::string project = prjname.empty()?
|
||||||
|
boost::filesystem::path(fpath).stem().string() : prjname;
|
||||||
|
|
||||||
writer.next_entry("config.ini");
|
writer.next_entry("config.ini");
|
||||||
if(!writer.is_ok()) return;
|
if(!writer.is_ok()) return;
|
||||||
|
|
|
@ -320,10 +320,8 @@ struct SLAPrintStatistics
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct SLAminzZipper {};
|
|
||||||
|
|
||||||
// The implementation of creating zipped archives with wxWidgets
|
// The implementation of creating zipped archives with wxWidgets
|
||||||
template<> class LayerWriter<SLAminzZipper> {
|
template<> class LayerWriter<Zipper> {
|
||||||
Zipper m_zip;
|
Zipper m_zip;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -338,10 +336,6 @@ public:
|
||||||
m_zip.add_entry(fname, buf, l);
|
m_zip.add_entry(fname, buf, l);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string get_name() const {
|
|
||||||
return m_zip.get_name();
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T> inline LayerWriter& operator<<(T&& arg) {
|
template<class T> inline LayerWriter& operator<<(T&& arg) {
|
||||||
m_zip << std::forward<T>(arg); return *this;
|
m_zip << std::forward<T>(arg); return *this;
|
||||||
}
|
}
|
||||||
|
@ -389,9 +383,11 @@ public:
|
||||||
// Returns true if the last step was finished with success.
|
// Returns true if the last step was finished with success.
|
||||||
bool finished() const override { return this->is_step_done(slaposSliceSupports) && this->Inherited::is_step_done(slapsRasterize); }
|
bool finished() const override { return this->is_step_done(slaposSliceSupports) && this->Inherited::is_step_done(slapsRasterize); }
|
||||||
|
|
||||||
template<class Fmt = SLAminzZipper>
|
template<class Fmt = Zipper>
|
||||||
void export_raster(const std::string& fname) {
|
inline void export_raster(const std::string& fpath,
|
||||||
if(m_printer) m_printer->save<Fmt>(fname);
|
const std::string& projectname = "")
|
||||||
|
{
|
||||||
|
if(m_printer) m_printer->save<Fmt>(fpath, projectname);
|
||||||
}
|
}
|
||||||
|
|
||||||
const PrintObjects& objects() const { return m_objects; }
|
const PrintObjects& objects() const { return m_objects; }
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
#include "Zipper.hpp"
|
#include "Zipper.hpp"
|
||||||
#include "miniz/miniz_zip.h"
|
#include "miniz/miniz_zip.h"
|
||||||
#include <boost/filesystem/path.hpp>
|
|
||||||
#include <boost/log/trivial.hpp>
|
#include <boost/log/trivial.hpp>
|
||||||
|
|
||||||
#include "I18N.hpp"
|
#include "I18N.hpp"
|
||||||
|
@ -213,10 +212,6 @@ void Zipper::finish_entry()
|
||||||
m_entry.clear();
|
m_entry.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Zipper::get_name() const {
|
|
||||||
return boost::filesystem::path(m_impl->m_zipname).stem().string();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Zipper::finalize()
|
void Zipper::finalize()
|
||||||
{
|
{
|
||||||
finish_entry();
|
finish_entry();
|
||||||
|
|
|
@ -81,9 +81,6 @@ public:
|
||||||
/// file is up to minz after the erroneous write.
|
/// file is up to minz after the erroneous write.
|
||||||
void finish_entry();
|
void finish_entry();
|
||||||
|
|
||||||
/// Gets the name of the archive without the path or extension.
|
|
||||||
std::string get_name() const;
|
|
||||||
|
|
||||||
void finalize();
|
void finalize();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue