FIX: sync ams colors to m_cur_colors_in_thumbnail
jira: STUDIO-6793 Change-Id: I2f180f31f75eac8ea55db659370642721944cbbe (cherry picked from commit 6b0ef9ba9fb62c0eef18d84f88309cd693564618)
This commit is contained in:
parent
5ced03779b
commit
c248f81ba4
|
@ -786,7 +786,20 @@ static float calc_color_distance(wxColour c1, wxColour c2)
|
|||
return DeltaE76(lab[0][0], lab[0][1], lab[0][2], lab[1][0], lab[1][1], lab[1][2]);
|
||||
}
|
||||
|
||||
int MachineObject::ams_filament_mapping(std::vector<FilamentInfo> filaments, std::vector<FilamentInfo>& result, std::vector<int> exclude_id)
|
||||
void MachineObject::get_ams_colors(std::vector<wxColour> &ams_colors) {
|
||||
ams_colors.clear();
|
||||
ams_colors.reserve(amsList.size());
|
||||
for (auto ams = amsList.begin(); ams != amsList.end(); ams++) {
|
||||
for (auto tray = ams->second->trayList.begin(); tray != ams->second->trayList.end(); tray++) {
|
||||
if (tray->second->is_tray_info_ready()) {
|
||||
auto ams_color = AmsTray::decode_color(tray->second->color);
|
||||
ams_colors.emplace_back(ams_color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int MachineObject::ams_filament_mapping(std::vector<FilamentInfo> filaments, std::vector<FilamentInfo> &result, std::vector<int> exclude_id)
|
||||
{
|
||||
if (filaments.empty())
|
||||
return -1;
|
||||
|
|
|
@ -526,6 +526,7 @@ public:
|
|||
bool can_unload_filament();
|
||||
bool is_support_ams_mapping();
|
||||
|
||||
void get_ams_colors(std::vector<wxColour>& ams_colors);
|
||||
int ams_filament_mapping(std::vector<FilamentInfo> filaments, std::vector<FilamentInfo> &result, std::vector<int> exclude_id = std::vector<int>());
|
||||
bool is_valid_mapping_result(std::vector<FilamentInfo>& result, bool check_empty_slot = false);
|
||||
// exceed index start with 0
|
||||
|
|
|
@ -5865,7 +5865,7 @@ void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const
|
|||
|
||||
std::array<float, 4> new_color = adjust_color_for_rendering(curr_color);
|
||||
if (ban_light) {
|
||||
new_color[3] =(255 - vol->extruder_id)/255.0f;
|
||||
new_color[3] =(255 - (vol->extruder_id -1))/255.0f;
|
||||
}
|
||||
shader->set_uniform("uniform_color", new_color);
|
||||
shader->set_uniform("volume_world_matrix", vol->world_matrix());
|
||||
|
|
|
@ -1840,7 +1840,7 @@ void print_ams_mapping_result(std::vector<FilamentInfo>& result)
|
|||
bool SelectMachineDialog::do_ams_mapping(MachineObject *obj_)
|
||||
{
|
||||
if (!obj_) return false;
|
||||
|
||||
obj_->get_ams_colors(m_cur_colors_in_thumbnail);
|
||||
// try color and type mapping
|
||||
int result = obj_->ams_filament_mapping(m_filaments, m_ams_mapping_result);
|
||||
if (result == 0) {
|
||||
|
@ -4077,15 +4077,12 @@ void SelectMachineDialog::clone_thumbnail_data() {
|
|||
if (m_preview_colors_in_thumbnail.size() != m_materialList.size()) {
|
||||
m_preview_colors_in_thumbnail.resize(m_materialList.size());
|
||||
}
|
||||
if (m_cur_colors_in_thumbnail.size() != m_materialList.size()) {
|
||||
m_cur_colors_in_thumbnail.resize(m_materialList.size());
|
||||
}
|
||||
while (iter != m_materialList.end()) {
|
||||
int id = iter->first;
|
||||
Material * item = iter->second;
|
||||
MaterialItem *m = item->item;
|
||||
m_preview_colors_in_thumbnail[id] = m->m_material_coloul;
|
||||
m_cur_colors_in_thumbnail[id] = m->m_ams_coloul;
|
||||
m_cur_colors_in_thumbnail[item->id] = m->m_ams_coloul;
|
||||
iter++;
|
||||
}
|
||||
//copy data
|
||||
|
@ -4243,8 +4240,18 @@ void SelectMachineDialog::updata_thumbnail_data_after_connected_printer()
|
|||
|
||||
void SelectMachineDialog::change_default_normal(int old_filament_id, wxColour temp_ams_color)
|
||||
{
|
||||
if (m_cur_colors_in_thumbnail.size() == 0) {
|
||||
BOOST_LOG_TRIVIAL(error) << "SelectMachineDialog::change_default_normal:error:m_cur_colors_in_thumbnail.size() == 0";
|
||||
return;
|
||||
}
|
||||
if (old_filament_id >= 0) {
|
||||
m_cur_colors_in_thumbnail[old_filament_id] = temp_ams_color;
|
||||
if (old_filament_id < m_cur_colors_in_thumbnail.size()) {
|
||||
m_cur_colors_in_thumbnail[old_filament_id] = temp_ams_color;
|
||||
}
|
||||
else {
|
||||
BOOST_LOG_TRIVIAL(error) << "SelectMachineDialog::change_default_normal:error:old_filament_id > m_cur_colors_in_thumbnail.size()";
|
||||
return;
|
||||
}
|
||||
}
|
||||
ThumbnailData& data =m_plater->get_partplate_list().get_curr_plate()->thumbnail_data;
|
||||
ThumbnailData& no_light_data = m_plater->get_partplate_list().get_curr_plate()->no_light_thumbnail_data;
|
||||
|
|
Loading…
Reference in New Issue