diff --git a/src/Mod/MeshPart/Gui/Tessellation.cpp b/src/Mod/MeshPart/Gui/Tessellation.cpp index 3e0aff5322be..92edcf53bb9c 100644 --- a/src/Mod/MeshPart/Gui/Tessellation.cpp +++ b/src/Mod/MeshPart/Gui/Tessellation.cpp @@ -340,7 +340,17 @@ bool Tessellation::accept() MeshGui::ViewProviderMesh* vpmesh = dynamic_cast(vpm); PartGui::ViewProviderPart* vppart = dynamic_cast(vpp); if (vpmesh && vppart) { - vpmesh->highlightSegments(vppart->DiffuseColor.getValues()); + std::vector diff_col = vppart->DiffuseColor.getValues(); + if (ui->groupsFaceColors->isChecked()) { + // unique colors + std::set col_set; + for (auto it : diff_col) + col_set.insert(it.getPackedValue()); + diff_col.clear(); + for (auto it : col_set) + diff_col.push_back(App::Color(it)); + } + vpmesh->highlightSegments(diff_col); } } }