Salome HOME
Shrink factor incorrect default value:
[modules/smesh.git] / src / OBJECT / SMESH_Actor.cxx
index 004399a7f4cdbb6923a31111b53e091e4cd0290d..bdadcf0261d669de0a64417155f5b781e0774c3e 100644 (file)
 #include "SMESH_ActorUtils.h"
 #include "SMESH_DeviceActor.h"
 #include "SMESH_ControlsDef.hxx"
-#include "SALOME_ExtractUnstructuredGrid.h"
+#include <VTKViewer_ExtractUnstructuredGrid.h>
+
+#include "SUIT_Session.h"
+#include "SUIT_ResourceMgr.h"
 
-#include "QAD_Config.h"
 #include <qstringlist.h>
 
 #include <vtkTimeStamp.h>
@@ -73,7 +75,7 @@
 #include "utilities.h"
 
 #ifdef _DEBUG_
-static int MYDEBUG = 0;
+static int MYDEBUG = 1;
 #else
 static int MYDEBUG = 0;
 #endif
@@ -97,6 +99,8 @@ SMESH_Actor* SMESH_Actor::New(TVisualObjPtr theVisualObj,
     anActor->Delete();
     anActor = NULL;
   }
+  if( anActor )
+    anActor->UpdateScalarBar();
   return anActor;
 }
 
@@ -112,28 +116,24 @@ SMESH_ActorDef::SMESH_ActorDef()
   myIsShrinkable = false;
   myIsShrunk = false;
 
-  myControlsPrecision = (long)SMESH::GetFloat( "SMESH:ControlsPrecision", -1 );
+  myControlsPrecision = (long)SMESH::GetFloat( "SMESH:controls_precision", -1 );
 
-  float aPointSize = SMESH::GetFloat("SMESH:SettingsNodesSize",3);
-  float aLineWidth = SMESH::GetFloat("SMESH:SettingsWidth",1);
+  float aPointSize = SMESH::GetFloat("SMESH:node_size",3);
+  float aLineWidth = SMESH::GetFloat("SMESH:element_width",1);
 
   vtkMatrix4x4 *aMatrix = vtkMatrix4x4::New();
-  SALOME_ExtractUnstructuredGrid* aFilter = NULL;
+  VTKViewer_ExtractUnstructuredGrid* aFilter = NULL;
 
   //Definition 2D and 3D divices of the actor
   //-----------------------------------------
   float anRGB[3] = {1,1,1};
   mySurfaceProp = vtkProperty::New();
-  anRGB[0] = SMESH::GetFloat("SMESH:SettingsFillColorRed", 0)/255.;
-  anRGB[1] = SMESH::GetFloat("SMESH:SettingsFillColorGreen", 170)/255.;
-  anRGB[2] = SMESH::GetFloat("SMESH:SettingsFillColorBlue", 255)/255.;
-  mySurfaceProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
+  SMESH::GetColor( "SMESH", "fill_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
+  mySurfaceProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
 
   myBackSurfaceProp = vtkProperty::New();
-  anRGB[0] = SMESH::GetFloat("SMESH:SettingsBackFaceColorRed", 0)/255.;
-  anRGB[1] = SMESH::GetFloat("SMESH:SettingsBackFaceColorGreen", 0)/255.;
-  anRGB[2] = SMESH::GetFloat("SMESH:SettingsBackFaceColorBlue", 255)/255.;
-  myBackSurfaceProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
+  SMESH::GetColor( "SMESH", "backface_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 0, 255 ) );
+  myBackSurfaceProp->SetColor( anRGB[0], anRGB[1], anRGB[2] );
 
   my2DActor = SMESH_DeviceActor::New();
   my2DActor->SetUserMatrix(aMatrix);
@@ -142,7 +142,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   my2DActor->SetBackfaceProperty(myBackSurfaceProp);
   my2DActor->SetRepresentation(SMESH_DeviceActor::eSurface);
   aFilter = my2DActor->GetExtractUnstructuredGrid();
-  aFilter->SetModeOfChanging(SALOME_ExtractUnstructuredGrid::eAdding);
+  aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
   aFilter->RegisterCellsWithType(VTK_TRIANGLE);
   aFilter->RegisterCellsWithType(VTK_POLYGON);
   aFilter->RegisterCellsWithType(VTK_QUAD);
@@ -154,13 +154,13 @@ SMESH_ActorDef::SMESH_ActorDef()
   my3DActor->SetBackfaceProperty(myBackSurfaceProp);
   my3DActor->SetRepresentation(SMESH_DeviceActor::eSurface);
   aFilter = my3DActor->GetExtractUnstructuredGrid();
-  aFilter->SetModeOfChanging(SALOME_ExtractUnstructuredGrid::eAdding);
+  aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
   aFilter->RegisterCellsWithType(VTK_TETRA);
   aFilter->RegisterCellsWithType(VTK_VOXEL);
   aFilter->RegisterCellsWithType(VTK_HEXAHEDRON);
   aFilter->RegisterCellsWithType(VTK_WEDGE);
   aFilter->RegisterCellsWithType(VTK_PYRAMID);
-
+  aFilter->RegisterCellsWithType(VTK_CONVEX_POINT_SET);
 
   //Definition 1D divice of the actor
   //---------------------------------
@@ -168,9 +168,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   myEdgeProp->SetAmbient(1.0);
   myEdgeProp->SetDiffuse(0.0);
   myEdgeProp->SetSpecular(0.0);
-  anRGB[0] = SMESH::GetFloat("SMESH:SettingsOutlineColorRed", 0)/255.;
-  anRGB[1] = SMESH::GetFloat("SMESH:SettingsOutlineColorGreen", 170)/255.;
-  anRGB[2] = SMESH::GetFloat("SMESH:SettingsOutlineColorBlue", 255)/255.;
+  SMESH::GetColor( "SMESH", "outline_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 170, 255 ) );
   myEdgeProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
   myEdgeProp->SetLineWidth(aLineWidth);
 
@@ -181,7 +179,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   my1DActor->SetProperty(myEdgeProp);
   my1DActor->SetRepresentation(SMESH_DeviceActor::eSurface);
   aFilter = my1DActor->GetExtractUnstructuredGrid();
-  aFilter->SetModeOfChanging(SALOME_ExtractUnstructuredGrid::eAdding);
+  aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
   aFilter->RegisterCellsWithType(VTK_LINE);
 
   my1DProp = vtkProperty::New();
@@ -206,16 +204,14 @@ SMESH_ActorDef::SMESH_ActorDef()
   my1DExtActor->SetProperty(my1DExtProp);
   my1DExtActor->SetRepresentation(SMESH_DeviceActor::eInsideframe);
   aFilter = my1DExtActor->GetExtractUnstructuredGrid();
-  aFilter->SetModeOfChanging(SALOME_ExtractUnstructuredGrid::eAdding);
+  aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
   aFilter->RegisterCellsWithType(VTK_LINE);
 
 
   //Definition 0D divice of the actor
   //---------------------------------
   myNodeProp = vtkProperty::New();
-  anRGB[0] = SMESH::GetFloat("SMESH:SettingsNodeColorRed",255)/255.;
-  anRGB[1] = SMESH::GetFloat("SMESH:SettingsNodeColorGreen",0)/255.;
-  anRGB[2] = SMESH::GetFloat("SMESH:SettingsNodeColorBlue",0)/255.;
+  SMESH::GetColor( "SMESH", "node_color", anRGB[0], anRGB[1], anRGB[2], QColor( 255, 0, 0 ) );
   myNodeProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
   myNodeProp->SetPointSize(aPointSize);
 
@@ -227,7 +223,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   myNodeActor->SetProperty(myNodeProp);
   myNodeActor->SetRepresentation(SMESH_DeviceActor::ePoint);
   aFilter = myNodeActor->GetExtractUnstructuredGrid();
-  aFilter->SetModeOfExtraction(SALOME_ExtractUnstructuredGrid::ePoints);
+  aFilter->SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::ePoints);
 
 
   //Definition of Pickable and Highlitable engines
@@ -244,9 +240,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   myHighlightProp->SetAmbient(1.0);
   myHighlightProp->SetDiffuse(0.0);
   myHighlightProp->SetSpecular(0.0);
-  anRGB[0] = SMESH::GetFloat("SMESH:SettingsSelectColorRed", 255)/255.;   // 1;
-  anRGB[1] = SMESH::GetFloat("SMESH:SettingsSelectColorGreen", 255)/255.; // 1;
-  anRGB[2] = SMESH::GetFloat("SMESH:SettingsSelectColorBlue", 255)/255.;  // 1;
+  SMESH::GetColor( "SMESH", "selection_object_color", anRGB[0], anRGB[1], anRGB[2], QColor( 255, 255, 255 ) );
   myHighlightProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
   myHighlightProp->SetPointSize(aPointSize);
   myHighlightProp->SetRepresentation(1);
@@ -255,9 +249,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   myPreselectProp->SetAmbient(1.0);
   myPreselectProp->SetDiffuse(0.0);
   myPreselectProp->SetSpecular(0.0);
-  anRGB[0] = SMESH::GetFloat("SMESH:SettingsPreSelectColorRed", 0)/255.;     // 0;
-  anRGB[1] = SMESH::GetFloat("SMESH:SettingsPreSelectColorGreen", 255)/255.; // 1;
-  anRGB[2] = SMESH::GetFloat("SMESH:SettingsPreSelectColorBlue", 255)/255.;  // 1;
+  SMESH::GetColor( "SMESH", "highlight_color", anRGB[0], anRGB[1], anRGB[2], QColor( 0, 255, 255 ) );
   myPreselectProp->SetColor(anRGB[0],anRGB[1],anRGB[2]);
   myPreselectProp->SetPointSize(aPointSize);
   myPreselectProp->SetRepresentation(1);
@@ -267,7 +259,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   myHighlitableActor->PickableOff();
   myHighlitableActor->SetRepresentation(SMESH_DeviceActor::eWireframe);
 
-  SetShrinkFactor(SMESH::GetFloat("SMESH:SettingsShrinkCoeff", 75)/100.);
+  SetShrinkFactor( SMESH::GetFloat( "SMESH:shrink_coeff", 0.75 ) );
 
   myName = "";
   myIO = NULL;
@@ -286,117 +278,9 @@ SMESH_ActorDef::SMESH_ActorDef()
   myScalarBarActor->SetVisibility(false);
   myScalarBarActor->SetLookupTable(myLookupTable);
 
-  vtkTextProperty* aScalarBarTitleProp = vtkTextProperty::New();
-
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarTitleColor" ) ) {
-    QStringList aTColor = QStringList::split(  ":", QAD_CONFIG->getSetting( "SMESH:ScalarBarTitleColor" ), false );
-    aScalarBarTitleProp->SetColor( ( aTColor.count() > 0 ? aTColor[0].toInt()/255. : 1.0 ),
-                                  ( aTColor.count() > 1 ? aTColor[1].toInt()/255. : 1.0 ), 
-                                  ( aTColor.count() > 2 ? aTColor[2].toInt()/255. : 1.0 ) );
-  }
-  else
-    aScalarBarTitleProp->SetColor( 1.0, 1.0, 1.0 );
-
-  aScalarBarTitleProp->SetFontFamilyToArial();
-  if( QAD_CONFIG->hasSetting( "SMESH:ScalarBarTitleFont" ) ){
-    if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarTitleFont" ) == "Arial" )
-      aScalarBarTitleProp->SetFontFamilyToArial();
-    else if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarTitleFont" ) == "Courier" )
-      aScalarBarTitleProp->SetFontFamilyToCourier();
-    else if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarTitleFont" ) == "Times" )
-      aScalarBarTitleProp->SetFontFamilyToTimes();
-  }
-
-  if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarTitleBold" ) == "true" )
-    aScalarBarTitleProp->BoldOn();
-  else
-    aScalarBarTitleProp->BoldOff();
-
-  if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarTitleItalic" ) == "true" )
-    aScalarBarTitleProp->ItalicOn();
-  else
-    aScalarBarTitleProp->ItalicOff();
-
-  if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarTitleShadow" ) == "true" )
-    aScalarBarTitleProp->ShadowOn();
-  else
-    aScalarBarTitleProp->ShadowOff();
-
-  myScalarBarActor->SetTitleTextProperty( aScalarBarTitleProp );
-  aScalarBarTitleProp->Delete();
-
-  vtkTextProperty* aScalarBarLabelProp = vtkTextProperty::New();
-
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarLabelColor" ) ) {
-    QStringList aTColor = QStringList::split(  ":", QAD_CONFIG->getSetting( "SMESH:ScalarBarLabelColor" ), false );
-    aScalarBarLabelProp->SetColor( ( aTColor.count() > 0 ? aTColor[0].toInt()/255. : 1.0 ),
-                                  ( aTColor.count() > 1 ? aTColor[1].toInt()/255. : 1.0 ), 
-                                  ( aTColor.count() > 2 ? aTColor[2].toInt()/255. : 1.0 ) );
-  }
-  else
-    aScalarBarLabelProp->SetColor( 1.0, 1.0, 1.0 );
-
-  aScalarBarLabelProp->SetFontFamilyToArial();
-  if( QAD_CONFIG->hasSetting( "SMESH:ScalarBarLabelFont" ) ){
-    if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarLabelFont" ) == "Arial" )
-      aScalarBarLabelProp->SetFontFamilyToArial();
-    else if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarLabelFont" ) == "Courier" )
-      aScalarBarLabelProp->SetFontFamilyToCourier();
-    else if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarLabelFont" ) == "Times" )
-      aScalarBarLabelProp->SetFontFamilyToTimes();
-  }
-
-  if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarLabelBold" ) == "true" )
-    aScalarBarLabelProp->BoldOn();
-  else
-    aScalarBarLabelProp->BoldOff();
-
-  if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarLabelItalic" ) == "true" )
-    aScalarBarLabelProp->ItalicOn();
-  else
-    aScalarBarLabelProp->ItalicOff();
-
-  if ( QAD_CONFIG->getSetting( "SMESH:ScalarBarLabelShadow" ) == "true" )
-    aScalarBarLabelProp->ShadowOn();
-  else
-    aScalarBarLabelProp->ShadowOff();
-
-  myScalarBarActor->SetLabelTextProperty( aScalarBarLabelProp );
-  aScalarBarLabelProp->Delete();
-
-  if ( QAD_CONFIG->getSetting("SMESH:ScalarBarOrientation") == "Horizontal" )
-    myScalarBarActor->SetOrientationToHorizontal();
-  else
-    myScalarBarActor->SetOrientationToVertical();
-
-  float aXVal = QAD_CONFIG->getSetting("SMESH:ScalarBarOrientation") == "Horizontal" ? 0.20 : 0.01;
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarXPosition" ) )
-    aXVal = QAD_CONFIG->getSetting( "SMESH:ScalarBarXPosition" ).toFloat();
-  float aYVal = QAD_CONFIG->getSetting("SMESH:ScalarBarOrientation") == "Horizontal" ? 0.01 : 0.1;
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarYPosition" ) )
-    aYVal = QAD_CONFIG->getSetting( "SMESH:ScalarBarYPosition" ).toFloat();
-  myScalarBarActor->SetPosition( aXVal, aYVal );
-
-  float aWVal = QAD_CONFIG->getSetting("SMESH:ScalarBarOrientation") == "Horizontal" ? 0.60 : 0.10;
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarWidth" ) )
-    aWVal = QAD_CONFIG->getSetting( "SMESH:ScalarBarWidth" ).toFloat();
-  myScalarBarActor->SetWidth( aWVal );
-
-  float aHVal = QAD_CONFIG->getSetting("SMESH:ScalarBarOrientation") == "Horizontal" ? 0.12 : 0.80;
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarHeight" ) )
-    aHVal = QAD_CONFIG->getSetting( "SMESH:ScalarBarHeight" ).toFloat();
-  myScalarBarActor->SetHeight( aHVal );
-
-  int anIntVal = 5;
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarNbOfLabels" ) )
-    anIntVal = QAD_CONFIG->getSetting("SMESH:ScalarBarNbOfLabels").toInt();
-  myScalarBarActor->SetNumberOfLabels(anIntVal == 0? 5: anIntVal);
-
-  anIntVal = 64;
-  if ( QAD_CONFIG->hasSetting( "SMESH:ScalarBarNbOfColors" ) )
-    anIntVal = QAD_CONFIG->getSetting("SMESH:ScalarBarNbOfColors").toInt();
-  myScalarBarActor->SetMaximumNumberOfColors(anIntVal == 0? 64: anIntVal);
-
+  SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
+  if( !mgr )
+    return;
 
   //Definition of points numbering pipeline
   //---------------------------------------
@@ -405,7 +289,7 @@ SMESH_ActorDef::SMESH_ActorDef()
   myPtsMaskPoints = vtkMaskPoints::New();
   myPtsMaskPoints->SetInput(myPointsNumDataSet);
   myPtsMaskPoints->SetOnRatio(1);
-    
+
   myPtsSelectVisiblePoints = vtkSelectVisiblePoints::New();
   myPtsSelectVisiblePoints->SetInput(myPtsMaskPoints->GetOutput());
   myPtsSelectVisiblePoints->SelectInvisibleOff();
@@ -622,8 +506,12 @@ SMESH_ActorDef::
 SetControlMode(eControl theMode,
               bool theCheckEntityMode)
 {
+  SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();  
+  if( !mgr )
+    return;
+
   myControlMode = eNone;
-  theCheckEntityMode &= QAD_CONFIG->getSetting("SMESH:DispayEntity") == "true";
+  theCheckEntityMode &= mgr->booleanValue( "SMESH", "display_entity", false );
 
   my1DActor->GetMapper()->SetScalarVisibility(false);
   my2DActor->GetMapper()->SetScalarVisibility(false);
@@ -850,9 +738,14 @@ bool SMESH_ActorDef::Init(TVisualObjPtr theVisualObj,
 
   //SetIsShrunkable(theGrid->GetNumberOfCells() > 10);
   SetIsShrunkable(true);
-  
-  QString aMode = QAD_CONFIG->getSetting("SMESH:DisplayMode");
+
+  SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
+  if( !mgr )
+    return false;
+
+  QString aMode = mgr->stringValue( "SMESH", "display_mode" );
   SetRepresentation(-1);
+  
   if(aMode.compare("Wireframe") == 0){
     SetRepresentation(eEdge);
   }else if(aMode.compare("Shading") == 0){
@@ -860,9 +753,8 @@ bool SMESH_ActorDef::Init(TVisualObjPtr theVisualObj,
   }else if(aMode.compare("Nodes") == 0){
     SetRepresentation(ePoint);
   }
-
-  aMode = QAD_CONFIG->getSetting("SMESH:Shrink");
-  if(aMode == "yes"){
+  
+  if(aMode == "Shrink"){
     SetShrink();
   }
 
@@ -882,7 +774,7 @@ vtkDataSet* SMESH_ActorDef::GetInput(){
 }
 
 
-void SMESH_ActorDef::SetTransform(SALOME_Transform* theTransform){
+void SMESH_ActorDef::SetTransform(VTKViewer_Transform* theTransform){
   myNodeActor->SetTransform(theTransform);
   myBaseActor->SetTransform(theTransform);
 
@@ -1101,10 +993,10 @@ void SMESH_ActorDef::SetEntityMode(unsigned int theMode){
   myBaseActor->myGeomFilter->SetInside(myEntityMode != myEntityState);
 
   myEntityMode = theMode;
-  SALOME_ExtractUnstructuredGrid* aFilter = NULL;
+  VTKViewer_ExtractUnstructuredGrid* aFilter = NULL;
   aFilter = myBaseActor->GetExtractUnstructuredGrid();
   aFilter->ClearRegisteredCellsWithType();
-  aFilter->SetModeOfChanging(SALOME_ExtractUnstructuredGrid::eAdding);
+  aFilter->SetModeOfChanging(VTKViewer_ExtractUnstructuredGrid::eAdding);
   
   if(myEntityMode & eEdges){
     if (MYDEBUG) MESSAGE("EDGES");
@@ -1255,13 +1147,13 @@ void SMESH_ActorDef::UpdateHighlight(){
       myHighlitableActor->SetHighlited(anIsVisible);
       myHighlitableActor->SetVisibility(anIsVisible);
       myHighlitableActor->GetExtractUnstructuredGrid()->
-       SetModeOfExtraction(SALOME_ExtractUnstructuredGrid::eCells);
+       SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::eCells);
       myHighlitableActor->SetRepresentation(SMESH_DeviceActor::eWireframe);
     }else if(myRepresentation == ePoint || GetPointRepresentation()){
       myHighlitableActor->SetHighlited(anIsVisible);
       myHighlitableActor->SetVisibility(anIsVisible);
       myHighlitableActor->GetExtractUnstructuredGrid()->
-       SetModeOfExtraction(SALOME_ExtractUnstructuredGrid::ePoints);
+       SetModeOfExtraction(VTKViewer_ExtractUnstructuredGrid::ePoints);
       myHighlitableActor->SetRepresentation(SMESH_DeviceActor::ePoint);
     }
   }
@@ -1606,3 +1498,119 @@ void SMESH_ActorDef::GetPlaneParam(float theDir[3], float& theDist, vtkPlane* th
   thePlane->GetOrigin(anOrigin);
   ::PositionToDistance(GetUnstructuredGrid(),theDir,anOrigin,theDist);
 }
+
+void SMESH_ActorDef::UpdateScalarBar()
+{
+  SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
+  if( !mgr )
+    return;
+
+  vtkTextProperty* aScalarBarTitleProp = vtkTextProperty::New();
+
+  QColor aTColor = mgr->colorValue( "SMESH", "scalar_bar_title_color", QColor( 255, 255, 255 ) );
+  aScalarBarTitleProp->SetColor( aTColor.red()/255., aTColor.green()/255., aTColor.blue()/255. );
+
+  aScalarBarTitleProp->SetFontFamilyToArial();
+
+  if ( mgr->hasValue( "SMESH", "scalar_bar_title_font" ) )
+  {
+    QFont f = mgr->fontValue( "SMESH", "scalar_bar_title_font" );
+    if ( f.family() == "Arial" )
+      aScalarBarTitleProp->SetFontFamilyToArial();
+    else if ( f.family() == "Courier" )
+      aScalarBarTitleProp->SetFontFamilyToCourier();
+    else if ( f.family() == "Times" )
+      aScalarBarTitleProp->SetFontFamilyToTimes();
+
+    if ( f.bold() )
+      aScalarBarTitleProp->BoldOn();
+    else
+      aScalarBarTitleProp->BoldOff();
+
+    if ( f.italic() )
+      aScalarBarTitleProp->ItalicOn();
+    else
+     aScalarBarTitleProp->ItalicOff();
+
+    if ( f.underline() )
+      aScalarBarTitleProp->ShadowOn();
+    else
+      aScalarBarTitleProp->ShadowOff();
+  }
+
+  myScalarBarActor->SetTitleTextProperty( aScalarBarTitleProp );
+  aScalarBarTitleProp->Delete();
+
+  vtkTextProperty* aScalarBarLabelProp = vtkTextProperty::New();
+
+  aTColor = mgr->colorValue( "SMESH", "scalar_bar_label_color", QColor( 255, 255, 255 ) );
+  aScalarBarLabelProp->SetColor( aTColor.red()/255., aTColor.green()/255., aTColor.blue()/255. );
+
+  aScalarBarLabelProp->SetFontFamilyToArial();
+  if( mgr->hasValue( "SMESH", "scalar_bar_label_font" ) )
+  {
+    QFont f = mgr->stringValue( "SMESH", "scalar_bar_label_font" );
+    if( f.family() == "Arial" )
+      aScalarBarLabelProp->SetFontFamilyToArial();
+    else if( f.family() == "Courier" )
+      aScalarBarLabelProp->SetFontFamilyToCourier();
+    else if( f.family() == "Times" )
+      aScalarBarLabelProp->SetFontFamilyToTimes();
+
+    if ( f.bold() )
+      aScalarBarLabelProp->BoldOn();
+    else
+      aScalarBarLabelProp->BoldOff();
+
+    if ( f.italic() )
+      aScalarBarLabelProp->ItalicOn();
+    else
+      aScalarBarLabelProp->ItalicOff();
+
+    if( f.underline() )
+      aScalarBarLabelProp->ShadowOn();
+    else
+      aScalarBarLabelProp->ShadowOff();
+  }
+
+  myScalarBarActor->SetLabelTextProperty( aScalarBarLabelProp );
+  aScalarBarLabelProp->Delete();
+
+  bool horiz = ( mgr->integerValue( "SMESH", "scalar_bar_orientation" ) == 1 );
+  QString name = QString( "scalar_bar_%1_" ).arg( horiz ? "horizontal" : "vertical" );
+  if( horiz )
+    myScalarBarActor->SetOrientationToHorizontal();
+  else
+    myScalarBarActor->SetOrientationToVertical();
+
+
+  float aXVal = horiz ? 0.20 : 0.01;
+  if( mgr->hasValue( "SMESH", name + "x" ) )
+    aXVal = mgr->doubleValue( "SMESH", name + "x", aXVal );
+
+  float aYVal = horiz ? 0.01 : 0.1;
+  if( mgr->hasValue( "SMESH", name + "y" ) )
+    aYVal = mgr->doubleValue( "SMESH", name + "y", aYVal );
+  myScalarBarActor->SetPosition( aXVal, aYVal );
+
+  float aWVal = horiz ? 0.60 : 0.10;
+  if( mgr->hasValue( "SMESH", name + "width" ) )
+    aWVal = mgr->doubleValue( "SMESH", name + "width", aWVal );
+  myScalarBarActor->SetWidth( aWVal );
+
+  float aHVal = horiz ? 0.12 : 0.80;
+  if( mgr->hasValue( "SMESH", name + "height" ) )
+    aHVal = mgr->doubleValue( "SMESH", name + "height", aHVal );
+  myScalarBarActor->SetHeight( aHVal );
+
+  int anIntVal = 5;
+  if( mgr->hasValue( "SMESH", "scalar_bar_num_labels" ) )
+    anIntVal = mgr->integerValue( "SMESH", "scalar_bar_num_labels", anIntVal );
+  myScalarBarActor->SetNumberOfLabels( anIntVal == 0 ? 5: anIntVal );
+
+  anIntVal = 64;
+  if( mgr->hasValue( "SMESH", "scalar_bar_num_colors" ) )
+    anIntVal = mgr->integerValue( "SMESH", "scalar_bar_num_colors", anIntVal );
+  myScalarBarActor->SetMaximumNumberOfColors( anIntVal == 0 ? 64 : anIntVal );
+  
+}