diff --git a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp index ea3c50eee3..eb48ca5444 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp @@ -543,7 +543,10 @@ void ViewProviderFemPostObject::WriteColorData(bool ResetColorBarRange) { m_material->diffuseColor.finishEditing(); m_material->transparency.finishEditing(); m_materialBinding->value = SoMaterialBinding::PER_VERTEX_INDEXED; - m_materialBinding->touch(); + + // In order to apply the transparency changes the shape nodes must be touched + m_faces->touch(); + m_triangleStrips->touch(); } void ViewProviderFemPostObject::WriteTransparency() { diff --git a/src/Mod/Mesh/Gui/ViewProviderCurvature.cpp b/src/Mod/Mesh/Gui/ViewProviderCurvature.cpp index de04df8020..ce99ac21ce 100644 --- a/src/Mod/Mesh/Gui/ViewProviderCurvature.cpp +++ b/src/Mod/Mesh/Gui/ViewProviderCurvature.cpp @@ -25,6 +25,7 @@ #ifndef _PreComp_ # include +# include # include # include # include @@ -357,6 +358,21 @@ void ViewProviderMeshCurvature::setVertexCurvatureMode(int mode) pcColorMat->diffuseColor.finishEditing(); pcColorMat->transparency.finishEditing(); + + // In order to apply the transparency changes the IndexFaceSet node must be touched + touchShapeNode(); +} + +void ViewProviderMeshCurvature::touchShapeNode() +{ + SoSearchAction searchAction; + searchAction.setType(SoIndexedFaceSet::getClassTypeId()); + searchAction.setInterest(SoSearchAction::FIRST); + searchAction.apply(pcLinkRoot); + SoPath* selectionPath = searchAction.getPath(); + if (selectionPath) { + selectionPath->getTail()->touch(); + } } QIcon ViewProviderMeshCurvature::getIcon() const diff --git a/src/Mod/Mesh/Gui/ViewProviderCurvature.h b/src/Mod/Mesh/Gui/ViewProviderCurvature.h index 39ede7a4c1..04fc759d1c 100644 --- a/src/Mod/Mesh/Gui/ViewProviderCurvature.h +++ b/src/Mod/Mesh/Gui/ViewProviderCurvature.h @@ -97,6 +97,7 @@ protected: void onChanged(const App::Property* prop); void setVertexCurvatureMode(int mode); std::string curvatureInfo(bool detail, int index1, int index2, int index3) const; + void touchShapeNode(); private: void init(const Mesh::PropertyCurvatureList *prop);