Salome HOME
Bug NPAL12872 - EDF189 GEOM, SMESH : Visualization of groups with many colors
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_VTKUtils.cxx
index 3685b46d6bdc54eb5c352ce2c464a5dfefcf7fc3..4ab9313dbb2f525ef4615f9132ed62c53e97f357 100644 (file)
@@ -24,6 +24,7 @@
 
 #include "SMESHGUI.h"
 #include "SMESH_Actor.h"
+#include "SMESH_ActorUtils.h"
 #include "SMESH_ObjectDef.h"
 #include <SMDS_Mesh.hxx>
 
@@ -484,6 +485,22 @@ namespace SMESH {
          std::string aNameVal = aName->Value();
          anActor = SMESH_Actor::New(aVisualObj,theEntry,aNameVal.c_str(),theIsClear);
        }
+
+       SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( aSObj ));
+       if(!CORBA::is_nil(aGroup))
+       {
+         SALOMEDS::Color aColor = aGroup->GetColor();
+         if( !( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 ) )
+         {
+           int r = 0, g = 0, b = 0;
+           SMESH::GetColor( "SMESH", "fill_color", r, g, b, QColor( 0, 170, 255 ) );
+           aColor.R = (float)r / 255.0;
+           aColor.G = (float)g / 255.0;
+           aColor.B = (float)b / 255.0;
+           aGroup->SetColor( aColor );
+         }
+         anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B );
+       }
       }
     }
     return anActor;