fix compile errors

This commit is contained in:
supermerill 2021-06-07 23:53:49 +02:00
parent 2f1c045873
commit e96f51bfee
5 changed files with 62 additions and 56 deletions

View File

@ -67,7 +67,7 @@ struct ArrangePolygon {
{
ExPolygon ret = poly;
ret.rotate(rotation);
ret.translate(translation.x(), translation.y());
ret.translate(double(translation.x()), double(translation.y()));
return ret;
}

View File

@ -583,7 +583,7 @@ void GCodeProcessor::apply_config(const PrintConfig& config)
if (m_flavor != gcfMarlin) {
double time_estimation_compensation = config.get_abs_value("time_estimation_compensation");
for (auto& machine : this->m_time_processor.machines) {
machine.time_acceleration = time_estimation_compensation;
machine.time_acceleration = float(time_estimation_compensation);
}
}}
@ -774,7 +774,7 @@ void GCodeProcessor::apply_config(const DynamicPrintConfig& config)
if (m_flavor != gcfMarlin) {
double time_estimation_compensation = config.get_abs_value("time_estimation_compensation");
for (auto& machine : this->m_time_processor.machines) {
machine.time_acceleration = time_estimation_compensation;
machine.time_acceleration = float(time_estimation_compensation);
}
}
}
@ -819,7 +819,7 @@ void GCodeProcessor::reset()
}
m_filament_diameters = std::vector<float>(Min_Extruder_Count, 1.75f);
m_extruded_last_z = 0.0f;
m_extruded_last_z = 0.0;
m_g1_line_id = 0;
m_layer_id = 0;
m_cp_color.reset();
@ -928,7 +928,8 @@ void GCodeProcessor::process_file(const std::string& filename, bool apply_postpr
//update times for results
for (size_t i = 0; i < m_result.moves.size(); i++) {
size_t layer_id = m_result.moves[i].layer_duration;
//field layer_duration contains the layer id for the move in which the layer_duration has to be set.
size_t layer_id = size_t(m_result.moves[i].layer_duration);
std::vector<float>& layer_times = m_result.time_statistics.modes[0].layers_times;
if (layer_times.size() > layer_id - 1 && layer_id > 0)
m_result.moves[i].layer_duration = layer_times[layer_id - 1];
@ -1808,7 +1809,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
if (lineG1.has(Slic3r::Axis(axis))) {
float lengthsScaleFactor = (m_units == EUnits::Inches) ? INCHES_TO_MM : 1.0f;
float ret = lineG1.value(Slic3r::Axis(axis)) * lengthsScaleFactor;
double ret = lineG1.value(Slic3r::Axis(axis)) * lengthsScaleFactor;
#if ENABLE_VOLUMETRIC_EXTRUSION_PROCESSING
if (axis == E && m_use_volumetric_e)
ret /= area_filament_cross_section;
@ -1879,7 +1880,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
double area_toolpath_cross_section = volume_extruded_filament / delta_xyz;
// volume extruded filament / tool displacement = area toolpath cross section
m_mm3_per_mm = area_toolpath_cross_section;
m_mm3_per_mm = float(area_toolpath_cross_section);
#if ENABLE_GCODE_VIEWER_DATA_CHECKING
m_mm3_per_mm_compare.update(area_toolpath_cross_section, m_extrusion_role);
#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING
@ -1889,7 +1890,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
m_height = m_forced_height;
else {
if (m_end_position[Z] > m_extruded_last_z + EPSILON) {
m_height = m_end_position[Z] - m_extruded_last_z;
m_height = float(m_end_position[Z] - m_extruded_last_z);
m_extruded_last_z = m_end_position[Z];
}
}
@ -1900,7 +1901,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
#else
if ((m_producers_enabled && m_producer != EProducer::PrusaSlicer || m_producer == EProducer::SuperSlicer || m_producer == EProducer::Slic3r) || m_height == 0.0f) {
if (m_end_position[Z] > m_extruded_last_z + EPSILON) {
m_height = m_end_position[Z] - m_extruded_last_z;
m_height = float(m_end_position[Z] - m_extruded_last_z);
#if ENABLE_GCODE_VIEWER_DATA_CHECKING
m_height_compare.update(m_height, m_extrusion_role);
#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING
@ -1919,13 +1920,13 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
if (m_extrusion_role == erExternalPerimeter)
#endif // ENABLE_TOOLPATHS_WIDTH_HEIGHT_FROM_GCODE
// cross section: rectangle
m_width = delta_pos[E] * static_cast<float>(M_PI * sqr(1.05f * filament_radius)) / (delta_xyz * m_height);
m_width = float(delta_pos[E] * (M_PI * sqr(1.05f * filament_radius)) / (delta_xyz * m_height));
else if (is_bridge(m_extrusion_role) || m_extrusion_role == erNone)
// cross section: circle
m_width = static_cast<float>(m_filament_diameters[m_extruder_id]) * std::sqrt(delta_pos[E] / delta_xyz);
m_width = float(m_filament_diameters[m_extruder_id] * std::sqrt(delta_pos[E] / delta_xyz));
else
// cross section: rectangle + 2 semicircles
m_width = delta_pos[E] * static_cast<float>(M_PI * sqr(filament_radius)) / (delta_xyz * m_height) + static_cast<float>(1.0 - 0.25 * M_PI) * m_height;
m_width = float(delta_pos[E] * (M_PI * sqr(filament_radius)) / (delta_xyz * m_height) + (1.0 - 0.25 * M_PI) * m_height);
// if teh value seems wrong, fall back to circular extrusion from flow
if (m_width > m_height * 10 || m_width < m_height) {
@ -1944,7 +1945,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
// time estimate section
auto move_length = [](const AxisCoords& delta_pos) {
float sq_xyz_length = sqr(delta_pos[X]) + sqr(delta_pos[Y]) + sqr(delta_pos[Z]);
float sq_xyz_length = (float)sqr(delta_pos[X]) + sqr(delta_pos[Y]) + sqr(delta_pos[Z]);
return (sq_xyz_length > 0.0f) ? std::sqrt(sq_xyz_length) : std::abs(delta_pos[E]);
};
@ -1952,7 +1953,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
return delta_pos[X] == 0.0f && delta_pos[Y] == 0.0f && delta_pos[Z] == 0.0f && delta_pos[E] != 0.0f;
};
float distance = move_length(delta_pos);
float distance = (float)move_length(delta_pos);
assert(distance != 0.0f);
float inv_distance = 1.0f / distance;
@ -1991,7 +1992,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
}
}
block.feedrate_profile.cruise = min_feedrate_factor * curr.feedrate;
block.feedrate_profile.cruise = float(min_feedrate_factor * curr.feedrate);
if (min_feedrate_factor < 1.0f) {
for (unsigned char a = X; a <= E; ++a) {
@ -2039,8 +2040,8 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
for (unsigned char a = X; a <= E; ++a) {
// Limit an axis. We have to differentiate coasting from the reversal of an axis movement, or a full stop.
float v_exit = prev.axis_feedrate[a];
float v_entry = curr.axis_feedrate[a];
double v_exit = prev.axis_feedrate[a];
double v_entry = curr.axis_feedrate[a];
if (prev_speed_larger)
v_exit *= smaller_speed_factor;
@ -2051,7 +2052,7 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
}
// Calculate the jerk depending on whether the axis is coasting in the same direction or reversing a direction.
float jerk =
double jerk =
(v_exit > v_entry) ?
(((v_entry > 0.0f) || (v_exit < 0.0f)) ?
// coasting
@ -2066,8 +2067,8 @@ void GCodeProcessor::process_G1(const GCodeReader::GCodeLine& line)
std::max(-v_exit, v_entry));
float axis_max_jerk = get_axis_max_jerk(static_cast<PrintEstimatedTimeStatistics::ETimeMode>(i), static_cast<Axis>(a));
if (jerk > axis_max_jerk) {
v_factor *= axis_max_jerk / jerk;
if (float(jerk) > axis_max_jerk) {
v_factor *= axis_max_jerk / float(jerk);
limited = true;
}
}
@ -2432,13 +2433,13 @@ void GCodeProcessor::process_M402(const GCodeReader::GCodeLine& line)
float p = FLT_MAX;
for (unsigned char a = X; a <= Z; ++a) {
if (has_xyz || line.has(a)) {
p = m_cached_position.position[a];
p = float(m_cached_position.position[a]);
if (p != FLT_MAX)
m_start_position[a] = p;
}
}
p = m_cached_position.position[E];
p = float(m_cached_position.position[E]);
if (p != FLT_MAX)
m_start_position[E] = p;
@ -2529,8 +2530,8 @@ void GCodeProcessor::store_move_vertex(EMoveType type)
m_extrusion_role,
m_extruder_id,
m_cp_color.current,
Vec3f(m_end_position[X], m_end_position[Y], m_end_position[Z]) + m_extruder_offsets[m_extruder_id],
m_end_position[E] - m_start_position[E],
Vec3f(float(m_end_position[X]), float(m_end_position[Y]), float(m_end_position[Z])) + m_extruder_offsets[m_extruder_id],
float(m_end_position[E] - m_start_position[E]),
m_feedrate,
m_width,
m_height,

View File

@ -422,7 +422,7 @@ namespace Slic3r {
unsigned char m_extruder_id;
ExtruderColors m_extruder_colors;
std::vector<float> m_filament_diameters;
float m_extruded_last_z;
double m_extruded_last_z;
unsigned int m_g1_line_id;
unsigned int m_layer_id;
CpColor m_cp_color;

View File

@ -5956,9 +5956,9 @@ bool DynamicPrintConfig::value_changed(const t_config_option_key& opt_key, const
ConfigOptionFloatOrPercent* width_option = this->option<ConfigOptionFloatOrPercent>(opt_key);
if (layer_height_option && width_option && nozzle_diameter_option) {
//compute spacing with current height and change the width
double max_nozzle_diameter = 0;
float max_nozzle_diameter = 0;
for (double dmr : nozzle_diameter_option->values)
max_nozzle_diameter = std::max(max_nozzle_diameter, dmr);
max_nozzle_diameter = std::max(max_nozzle_diameter, (float)dmr);
ConfigOptionFloatOrPercent* spacing_option = nullptr;
try {
if (opt_key == "extrusion_width") {

View File

@ -1334,33 +1334,33 @@ void MainFrame::init_menubar_as_editor()
#else
wxString hotkey_delete = "Del";
#endif
append_menu_item(editMenu, wxID_ANY, _L("&Select all") + "\t" + GUI::shortkey_ctrl_prefix() + sep_space + "A",
append_menu_item(editMenu, wxID_ANY, _L("&Select all") + "\t" + GUI::shortkey_ctrl_prefix() + "A",
_L("Selects all objects"), [this](wxCommandEvent&) { m_plater->select_all(); },
"", nullptr, [this](){return can_select(); }, this);
append_menu_item(editMenu, wxID_ANY, _L("D&eselect all") + "\t" + "Esc",
append_menu_item(editMenu, wxID_ANY, _L("D&eselect all") + sep + "Esc",
_L("Deselects all objects"), [this](wxCommandEvent&) { m_plater->deselect_all(); },
"", nullptr, [this](){return can_deselect(); }, this);
editMenu->AppendSeparator();
append_menu_item(editMenu, wxID_ANY, _L("&Delete selected") + "\t" + hotkey_delete,
_L("Deletes the current selection"),[this](wxCommandEvent&) { m_plater->remove_selected(); },
"remove_menu", nullptr, [this](){return can_delete(); }, this);
append_menu_item(editMenu, wxID_ANY, _L("Delete &all") + "\t" + GUI::shortkey_ctrl_prefix() + sep_space + hotkey_delete,
append_menu_item(editMenu, wxID_ANY, _L("Delete &all") + "\t" + GUI::shortkey_ctrl_prefix() + hotkey_delete,
_L("Deletes all objects"), [this](wxCommandEvent&) { m_plater->reset_with_confirm(); },
"delete_all_menu", nullptr, [this](){return can_delete_all(); }, this);
editMenu->AppendSeparator();
append_menu_item(editMenu, wxID_ANY, _L("&Undo") + "\t" + GUI::shortkey_ctrl_prefix() + sep_space + "Z",
append_menu_item(editMenu, wxID_ANY, _L("&Undo") + "\t" + GUI::shortkey_ctrl_prefix() + "Z",
_L("Undo"), [this](wxCommandEvent&) { m_plater->undo(); },
"undo_menu", nullptr, [this](){return m_plater->can_undo(); }, this);
append_menu_item(editMenu, wxID_ANY, _L("&Redo") + "\t" + GUI::shortkey_ctrl_prefix() + sep_space + "Y",
append_menu_item(editMenu, wxID_ANY, _L("&Redo") + "\t" + GUI::shortkey_ctrl_prefix() + "Y",
_L("Redo"), [this](wxCommandEvent&) { m_plater->redo(); },
"redo_menu", nullptr, [this](){return m_plater->can_redo(); }, this);
editMenu->AppendSeparator();
append_menu_item(editMenu, wxID_ANY, _L("&Copy") + "\t" + GUI::shortkey_ctrl_prefix() + sep_space + "C",
append_menu_item(editMenu, wxID_ANY, _L("&Copy") + "\t" + GUI::shortkey_ctrl_prefix() + "C",
_L("Copy selection to clipboard"), [this](wxCommandEvent&) { m_plater->copy_selection_to_clipboard(); },
"copy_menu", nullptr, [this](){return m_plater->can_copy_to_clipboard(); }, this);
append_menu_item(editMenu, wxID_ANY, _L("&Paste") + "\t" + GUI::shortkey_ctrl_prefix() + sep_space + "V",
append_menu_item(editMenu, wxID_ANY, _L("&Paste") + "\t" + GUI::shortkey_ctrl_prefix() + "V",
_L("Paste clipboard"), [this](wxCommandEvent&) { m_plater->paste_from_clipboard(); },
"paste_menu", nullptr, [this](){return m_plater->can_paste_from_clipboard(); }, this);
@ -1922,38 +1922,43 @@ void MainFrame::select_tab(Tab* tab)
MainFrame::ETabType MainFrame::selected_tab() const
{
if (m_layout == ESettingsLayout::Old) {
if (m_tabpanel->GetSelection() == 0)
if (m_plater->is_view3D_shown())
if (m_tabpanel->GetSelection() == 0) {
if (m_plater->is_view3D_shown()) {
return ETabType::Plater3D;
else
return ETabType::PlaterGcode;
else
return ETabType((uint8_t)ETabType::PrintSettings + m_tabpanel->GetSelection() - 1);
}
else if (m_layout == ESettingsLayout::Tabs) {
if (m_tabpanel->GetSelection() < 3)
return ETabType((uint8_t)ETabType::Plater3D + m_tabpanel->GetSelection());
else
return ETabType((uint8_t)ETabType::PrintSettings + m_tabpanel->GetSelection() - 3);
}
else if (m_layout == ESettingsLayout::Hidden) {
if (!m_main_sizer->IsShown(m_tabpanel)) {
if (m_plater->is_view3D_shown())
return ETabType::Plater3D;
else
} else {
return ETabType::PlaterGcode;
}
} else {
return ETabType((uint8_t)ETabType::PrintSettings + m_tabpanel->GetSelection() - 1);
}
}
else if (m_layout == ESettingsLayout::Dlg) {
} else if (m_layout == ESettingsLayout::Tabs) {
if (m_tabpanel->GetSelection() < 3) {
return ETabType((uint8_t)ETabType::Plater3D + m_tabpanel->GetSelection());
} else {
return ETabType((uint8_t)ETabType::PrintSettings + m_tabpanel->GetSelection() - 3);
}
} else if (m_layout == ESettingsLayout::Hidden) {
if (!m_main_sizer->IsShown(m_tabpanel)) {
if (m_plater->is_view3D_shown())
if (m_plater->is_view3D_shown()) {
return ETabType::Plater3D;
else
} else {
return ETabType::PlaterGcode;
}
} else {
return ETabType((uint8_t)ETabType::PrintSettings + m_tabpanel->GetSelection() - 1);
}
} else if (m_layout == ESettingsLayout::Dlg) {
if (!m_main_sizer->IsShown(m_tabpanel)) {
if (m_plater->is_view3D_shown()) {
return ETabType::Plater3D;
} else {
return ETabType::PlaterGcode;
}
} else {
return ETabType::Plater3D;
}
}
return ETabType::Plater3D;
}
void MainFrame::select_tab(ETabType tab /* = Any*/, bool keep_tab_type)