Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer
This commit is contained in:
commit
073579eefc
6 changed files with 58 additions and 24 deletions
|
@ -198,6 +198,29 @@ private:
|
|||
void make_expolygons(std::vector<IntersectionLine> &lines, const float closing_radius, ExPolygons* slices) const;
|
||||
};
|
||||
|
||||
inline void slice_mesh(
|
||||
const TriangleMesh & mesh,
|
||||
const std::vector<float> & z,
|
||||
std::vector<Polygons> & layers,
|
||||
TriangleMeshSlicer::throw_on_cancel_callback_type thr = nullptr)
|
||||
{
|
||||
if (mesh.empty()) return;
|
||||
TriangleMeshSlicer slicer(&mesh);
|
||||
slicer.slice(z, &layers, thr);
|
||||
}
|
||||
|
||||
inline void slice_mesh(
|
||||
const TriangleMesh & mesh,
|
||||
const std::vector<float> & z,
|
||||
std::vector<ExPolygons> & layers,
|
||||
float closing_radius,
|
||||
TriangleMeshSlicer::throw_on_cancel_callback_type thr = nullptr)
|
||||
{
|
||||
if (mesh.empty()) return;
|
||||
TriangleMeshSlicer slicer(&mesh);
|
||||
slicer.slice(z, closing_radius, &layers, thr);
|
||||
}
|
||||
|
||||
TriangleMesh make_cube(double x, double y, double z);
|
||||
|
||||
// Generate a TriangleMesh of a cylinder
|
||||
|
|
|
@ -655,14 +655,6 @@ void PageMaterials::update_lists(int sel1, int sel2)
|
|||
|
||||
sel2_prev = sel2;
|
||||
}
|
||||
|
||||
// for the very begining
|
||||
if ((wizard_p()->run_reason == ConfigWizard::RR_DATA_EMPTY || wizard_p()->run_reason == ConfigWizard::RR_DATA_LEGACY)
|
||||
&& list_l3->size() > 0 )
|
||||
{
|
||||
list_l3->Check(0, true);
|
||||
wizard_p()->update_presets_in_config(materials->appconfig_section(), list_l3->get_data(0), true);
|
||||
}
|
||||
}
|
||||
|
||||
void PageMaterials::select_material(int i)
|
||||
|
@ -1254,7 +1246,7 @@ const std::string Materials::UNKNOWN = "(Unknown)";
|
|||
|
||||
void Materials::push(const Preset *preset)
|
||||
{
|
||||
presets.insert(preset);
|
||||
presets.push_back(preset);
|
||||
types.insert(technology & T_FFF
|
||||
? Materials::get_filament_type(preset)
|
||||
: Materials::get_material_type(preset));
|
||||
|
@ -1524,7 +1516,9 @@ void ConfigWizard::priv::update_materials(Technology technology)
|
|||
for (const auto &printer : pair.second.preset_bundle->printers)
|
||||
// Filter out inapplicable printers
|
||||
if (printer.is_visible && printer.printer_technology() == ptFFF &&
|
||||
is_compatible_with_printer(PresetWithVendorProfile(filament, nullptr), PresetWithVendorProfile(printer, nullptr))) {
|
||||
is_compatible_with_printer(PresetWithVendorProfile(filament, nullptr), PresetWithVendorProfile(printer, nullptr)) &&
|
||||
// Check if filament is already added
|
||||
! filaments.containts(&filament)) {
|
||||
filaments.push(&filament);
|
||||
if (!filament.alias.empty())
|
||||
aliases_fff[filament.alias].insert(filament.name);
|
||||
|
@ -1549,7 +1543,9 @@ void ConfigWizard::priv::update_materials(Technology technology)
|
|||
for (const auto &printer : pair.second.preset_bundle->printers)
|
||||
// Filter out inapplicable printers
|
||||
if (printer.is_visible && printer.printer_technology() == ptSLA &&
|
||||
is_compatible_with_printer(PresetWithVendorProfile(material, nullptr), PresetWithVendorProfile(printer, nullptr))) {
|
||||
is_compatible_with_printer(PresetWithVendorProfile(material, nullptr), PresetWithVendorProfile(printer, nullptr)) &&
|
||||
// Check if material is already added
|
||||
! sla_materials.containts(&material)) {
|
||||
sla_materials.push(&material);
|
||||
if (!material.alias.empty())
|
||||
aliases_sla[material.alias].insert(material.name);
|
||||
|
@ -1897,14 +1893,23 @@ ConfigWizard::ConfigWizard(wxWindow *parent)
|
|||
});
|
||||
|
||||
p->btn_prev->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &) { this->p->index->go_prev(); });
|
||||
p->btn_next->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &) { this->p->index->go_next(); });
|
||||
|
||||
p->btn_next->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &)
|
||||
{
|
||||
// check, that there is selected at least one filament/material
|
||||
ConfigWizardPage* active_page = this->p->index->active_page();
|
||||
if ( (active_page == p->page_filaments || active_page == p->page_sla_materials)
|
||||
&& !p->check_material_config())
|
||||
return;
|
||||
this->p->index->go_next();
|
||||
});
|
||||
|
||||
p->btn_finish->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &)
|
||||
{
|
||||
if (!p->check_material_config())
|
||||
return;
|
||||
this->EndModal(wxID_OK);
|
||||
});
|
||||
// p->btn_finish->Hide();
|
||||
|
||||
p->btn_sel_all->Bind(wxEVT_BUTTON, [this](const wxCommandEvent &) {
|
||||
p->any_sla_selected = true;
|
||||
|
@ -1917,7 +1922,6 @@ ConfigWizard::ConfigWizard(wxWindow *parent)
|
|||
p->index->Bind(EVT_INDEX_PAGE, [this](const wxCommandEvent &) {
|
||||
const bool is_last = p->index->active_is_last();
|
||||
p->btn_next->Show(! is_last);
|
||||
// p->btn_finish->Show(is_last);
|
||||
if (is_last)
|
||||
p->btn_finish->SetFocus();
|
||||
|
||||
|
|
|
@ -58,15 +58,16 @@ enum Technology {
|
|||
struct Materials
|
||||
{
|
||||
Technology technology;
|
||||
std::set<const Preset*> presets;
|
||||
// use vector for the presets to purpose of save of presets sorting in the bundle
|
||||
std::vector<const Preset*> presets;
|
||||
std::set<std::string> types;
|
||||
|
||||
Materials(Technology technology) : technology(technology) {}
|
||||
|
||||
void push(const Preset *preset);
|
||||
void clear();
|
||||
bool containts(const Preset *preset) {
|
||||
return presets.find(preset) != presets.end();
|
||||
bool containts(const Preset *preset) const {
|
||||
return std::find(presets.begin(), presets.end(), preset) != presets.end();
|
||||
}
|
||||
|
||||
const std::string& appconfig_section() const;
|
||||
|
|
|
@ -1195,9 +1195,9 @@ bool GLToolbar::generate_icons_texture() const
|
|||
}
|
||||
|
||||
unsigned int sprite_size_px = (unsigned int)(m_layout.icons_size * m_layout.scale);
|
||||
// force even size
|
||||
if (sprite_size_px % 2 != 0)
|
||||
sprite_size_px += 1;
|
||||
// // force even size
|
||||
// if (sprite_size_px % 2 != 0)
|
||||
// sprite_size_px += 1;
|
||||
|
||||
bool res = m_icons_texture.load_from_svg_files_as_sprites_array(filenames, states, sprite_size_px, false);
|
||||
if (res)
|
||||
|
|
|
@ -956,9 +956,9 @@ bool GLGizmosManager::generate_icons_texture() const
|
|||
states.push_back(std::make_pair(0, true));
|
||||
|
||||
unsigned int sprite_size_px = (unsigned int)(m_overlay_icons_size * m_overlay_scale);
|
||||
// force even size
|
||||
if (sprite_size_px % 2 != 0)
|
||||
sprite_size_px += 1;
|
||||
// // force even size
|
||||
// if (sprite_size_px % 2 != 0)
|
||||
// sprite_size_px += 1;
|
||||
|
||||
bool res = m_icons_texture.load_from_svg_files_as_sprites_array(filenames, states, sprite_size_px, false);
|
||||
if (res)
|
||||
|
|
|
@ -2930,7 +2930,13 @@ void Tab::OnTreeSelChange(wxTreeEvent& event)
|
|||
#ifdef __linux__
|
||||
std::unique_ptr<wxWindowUpdateLocker> no_updates(new wxWindowUpdateLocker(this));
|
||||
#else
|
||||
// wxWindowUpdateLocker noUpdates(this);
|
||||
/* On Windows we use DoubleBuffering during rendering,
|
||||
* so on Window is no needed to call a Freeze/Thaw functions.
|
||||
* But under OSX (builds compiled with MacOSX10.14.sdk) wxStaticBitmap rendering is broken without Freeze/Thaw call.
|
||||
*/
|
||||
#ifdef __WXOSX__
|
||||
wxWindowUpdateLocker noUpdates(this);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (m_pages.empty())
|
||||
|
|
Loading…
Reference in a new issue