Salome HOME
untabify
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_VTKUtils.cxx
index 4c9ac89fe9049c29ff1374ff2e0b923c0eae4c7f..6562da87a3a4c19ba8d4e4c470f7e8823e009bef 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -610,14 +610,17 @@ namespace SMESH
         SMESH::SMESH_GroupBase_var aGroup = SMESH::SMESH_GroupBase::_narrow( SMESH::SObjectToObject( aSObj ));
         if(!CORBA::is_nil(aGroup) && anActor)
         {
-         QColor c;int delta;
-         SMESH::GetColor( "SMESH", "fill_color", c, delta, "0,170,255|-100"  );
+          QColor c;
+          int deltaF, deltaV;
+          SMESH::GetColor( "SMESH", "fill_color", c, deltaF, "0,170,255|-100"  );
+          SMESH::GetColor( "SMESH", "volume_color", c, deltaV, "255,0,170|-100"  );
+          SMESH::GetColor( "SMESH", "default_grp_color", c );
           SALOMEDS::Color aColor = aGroup->GetColor();
           if( !( aColor.R > 0 || aColor.G > 0 || aColor.B > 0 ))
           {
-           aColor.R = (float)c.red() / 255.0;
-           aColor.G = (float)c.green() / 255.0;
-            aColor.B = (float)c.blue() / 255.0;
+            aColor.R = c.redF();
+            aColor.G = c.greenF();
+            aColor.B = c.blueF();
             aGroup->SetColor( aColor );
           }
           if( aGroup->GetType() == SMESH::NODE )
@@ -626,8 +629,12 @@ namespace SMESH
             anActor->SetEdgeColor( aColor.R, aColor.G, aColor.B );
           else if( aGroup->GetType() == SMESH::ELEM0D )
             anActor->Set0DColor( aColor.R, aColor.G, aColor.B );
+          else if( aGroup->GetType() == SMESH::BALL )
+            anActor->SetBallColor( aColor.R, aColor.G, aColor.B );
+          else if( aGroup->GetType() == SMESH::VOLUME )
+            anActor->SetVolumeColor( aColor.R, aColor.G, aColor.B, deltaV );
           else
-            anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B, delta );
+            anActor->SetSufaceColor( aColor.R, aColor.G, aColor.B, deltaF );
         }
       }
     }
@@ -897,10 +904,12 @@ namespace SMESH
            aPreColor = mgr->colorValue( "SMESH", "highlight_color", Qt::cyan );
 
     int aElem0DSize = mgr->integerValue("SMESH", "elem0d_size", 5);
+    int aBallSize   = mgr->integerValue("SMESH", "ball_elem_size", 5);
     int aLineWidth  = mgr->integerValue("SMESH", "element_width", 1);
     int maxSize = aElem0DSize;
     if (aElem0DSize > maxSize) maxSize = aElem0DSize;
     if (aLineWidth > maxSize) maxSize = aLineWidth;
+    if (aBallSize > maxSize) maxSize = aBallSize;
 
     double SP1 = mgr->doubleValue( "SMESH", "selection_precision_node", 0.025 ),
            SP2 = mgr->doubleValue( "SMESH", "selection_precision_element", 0.001 ),
@@ -1333,7 +1342,7 @@ namespace SMESH
 
     if( !anIsOk )
       return false;
-
+    
     DistanceToPosition( theBounds, theNormal, theDist, theOrigin );
     return true;
   }