From c6fec1373df6feac78f35e7421dc7ac7c7accb97 Mon Sep 17 00:00:00 2001 From: jriegel Date: Wed, 11 Sep 2013 19:50:23 +0200 Subject: [PATCH] Fem Postprocessing set color on nodes --- src/Mod/Fem/Gui/ViewProviderFemMesh.cpp | 23 ++++++++++++++++++++ src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp | 2 -- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp index 743f10ddd..b71cd1fde 100755 --- a/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemMesh.cpp @@ -489,11 +489,34 @@ PyObject * ViewProviderFemMesh::getPyObject() void ViewProviderFemMesh::setColorByNodeId(const std::map &NodeColorMap) { + pcShapeMaterial->diffuseColor; + pcMatBinding->value = SoMaterialBinding::PER_VERTEX_INDEXED; + + // resizing and writing the color vector: + pcShapeMaterial->diffuseColor.setNum(vNodeElementIdx.size()); + SbColor* colors = pcShapeMaterial->diffuseColor.startEditing(); + + int i=0; + for(std::vector::const_iterator it=vNodeElementIdx.begin() + ;it!=vNodeElementIdx.end() + ;++it,i++){ + const std::map::const_iterator pos = NodeColorMap.find(*it); + if(pos == NodeColorMap.end()) + colors[i] = SbColor(0,1,0); + else + colors[i] = SbColor(pos->second.r,pos->second.g,pos->second.b); + } + + pcShapeMaterial->diffuseColor.finishEditing(); } void ViewProviderFemMesh::resetColorByNodeId(void) { + pcMatBinding->value = SoMaterialBinding::OVERALL; + pcShapeMaterial->diffuseColor.setNum(0); + const App::Color& c = ShapeColor.getValue(); + pcShapeMaterial->diffuseColor.setValue(c.r,c.g,c.b); } diff --git a/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp b/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp index 9f0e2378d..1de796d15 100644 --- a/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp +++ b/src/Mod/Fem/Gui/ViewProviderFemMeshPyImp.cpp @@ -47,8 +47,6 @@ void ViewProviderFemMeshPy::setNodeColor(Py::Dict arg) } this->getViewProviderFemMeshPtr()->setColorByNodeId(NodeColorMap); } - - throw Py::AttributeError("Not yet implemented"); } Py::List ViewProviderFemMeshPy::getHighlightedNodes(void) const