#include "SMESH_ControlsDef.hxx"
#include <VTKViewer_ExtractUnstructuredGrid.h>
-//#include "QAD_Config.h"
+#include "SUIT_Session.h"
+#include "SUIT_ResourceMgr.h"
+
#include <qstringlist.h>
#include <vtkTimeStamp.h>
anActor->Delete();
anActor = NULL;
}
+ if( anActor )
+ anActor->UpdateScalarBar();
return anActor;
}
myIsShrinkable = false;
myIsShrunk = false;
- myControlsPrecision = (long)SMESH::GetFloat( "SMESH:ControlsPrecision", -1 );
+ myControlsPrecision = -1;
+ SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
+ if ( mgr && mgr->booleanValue( "SMESH", "use_precision", false ) )
+ 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();
VTKViewer_ExtractUnstructuredGrid* aFilter = NULL;
//-----------------------------------------
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);
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);
//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);
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);
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);
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;
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 = 0.01; //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 = 0.1; //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 = 0.1; //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 = 0.8; //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);
-
+ mgr = SUIT_Session::session()->resourceMgr();
+ if( !mgr )
+ return;
//Definition of points numbering pipeline
//---------------------------------------
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);
//SetIsShrunkable(theGrid->GetNumberOfCells() > 10);
SetIsShrunkable(true);
-
- //QString aMode = QAD_CONFIG->getSetting("SMESH:DisplayMode");
+
+ SUIT_ResourceMgr* mgr = SUIT_Session::session()->resourceMgr();
+ if( !mgr )
+ return false;
+
+ int aMode = mgr->integerValue( "SMESH", "display_mode" );
SetRepresentation(-1);
- /*
- if(aMode.compare("Wireframe") == 0){
+
+ if(aMode == 0){
SetRepresentation(eEdge);
- }else if(aMode.compare("Shading") == 0){
+ }else if(aMode == 1){
SetRepresentation(eSurface);
- }else if(aMode.compare("Nodes") == 0){
+ }else if(aMode == 2){
SetRepresentation(ePoint);
}
- */
- /*aMode = QAD_CONFIG->getSetting("SMESH:Shrink");
- if(aMode == "yes"){
+
+ if(aMode == 3){
SetShrink();
- }*/
+ }
myTimeStamp->Modified();
Modified();
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 );
+
+}