From b167bd89aeb83007a90fc303c7254c45b6c14adc Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 9 Jan 2012 15:40:33 +0000 Subject: [PATCH] + fix bug when part and faces of this part have colors defined in STEP file git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5394 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d --- src/Mod/Import/Gui/AppImportGuiPy.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Mod/Import/Gui/AppImportGuiPy.cpp b/src/Mod/Import/Gui/AppImportGuiPy.cpp index bd9b71492..c429e5f5c 100644 --- a/src/Mod/Import/Gui/AppImportGuiPy.cpp +++ b/src/Mod/Import/Gui/AppImportGuiPy.cpp @@ -127,15 +127,19 @@ private: part->Shape.setValue(shape); std::map::const_iterator jt; jt = myColorMap.find(shape.HashCode(INT_MAX)); - if (jt != myColorMap.end()) { - Gui::ViewProvider* vp = Gui::Application::Instance->getViewProvider(part); - if (vp && vp->isDerivedFrom(PartGui::ViewProviderPart::getClassTypeId())) { + + App::Color partColor(0.8f,0.8f,0.8f); + Gui::ViewProvider* vp = Gui::Application::Instance->getViewProvider(part); + if (vp && vp->isDerivedFrom(PartGui::ViewProviderPart::getClassTypeId())) { + if (jt != myColorMap.end()) { App::Color color; color.r = jt->second.Red(); color.g = jt->second.Green(); color.b = jt->second.Blue(); static_cast(vp)->ShapeColor.setValue(color); } + + partColor = static_cast(vp)->ShapeColor.getValue(); } // set label name if defined @@ -158,7 +162,7 @@ private: bool found_face_color = false; std::vector faceColors; - faceColors.resize(faces.Extent(), App::Color(0.8f,0.8f,0.8f)); + faceColors.resize(faces.Extent(), partColor); xp.Init(shape,TopAbs_FACE); while (xp.More()) { jt = myColorMap.find(xp.Current().HashCode(INT_MAX));