From e437893e994fd3e874c01f6bd5ea19e59b64b596 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 1 Apr 2022 10:40:48 +0200 Subject: [PATCH] Fem: support transparencies of the colour plot in ViewProviderFemPostObject --- src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp index 00527167da..ea3c50eee3 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp @@ -518,7 +518,10 @@ void ViewProviderFemPostObject::WriteColorData(bool ResetColorBarRange) { setRangeOfColorBar(range[0], range[1]); } - m_material->diffuseColor.startEditing(); + m_material->diffuseColor.setNum(pd->GetNumberOfPoints()); + SbColor* diffcol = m_material->diffuseColor.startEditing(); + m_material->transparency.setNum(pd->GetNumberOfPoints()); + float* transp = m_material->transparency.startEditing(); for (int i = 0; i < pd->GetNumberOfPoints(); i++) { @@ -531,10 +534,14 @@ void ViewProviderFemPostObject::WriteColorData(bool ResetColorBarRange) { value = std::sqrt(value); } + App::Color c = m_colorBar->getColor(value); - m_material->diffuseColor.set1Value(i, c.r, c.g, c.b); + diffcol[i].setValue(c.r, c.g, c.b); + transp[i] = c.a; } + m_material->diffuseColor.finishEditing(); + m_material->transparency.finishEditing(); m_materialBinding->value = SoMaterialBinding::PER_VERTEX_INDEXED; m_materialBinding->touch(); }