X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI.cxx;h=493b734bb144759ea436447652610fc438a5af65;hp=9bf90fde22d4ba924b749357c9087be6a7463805;hb=8f57b2cfd33d6d41539b00f3665f184266c297be;hpb=8608b2b5ca86779ae0b3c42239cb83f8eebf68e2 diff --git a/src/SMESHGUI/SMESHGUI.cxx b/src/SMESHGUI/SMESHGUI.cxx index 9bf90fde2..493b734bb 100644 --- a/src/SMESHGUI/SMESHGUI.cxx +++ b/src/SMESHGUI/SMESHGUI.cxx @@ -182,21 +182,6 @@ // of auto-color picking up #define SIMPLE_AUTOCOLOR -// REMOVE the code about MPLMathText_Disabler if it does not complite at porting to ParaView-4.1 -#include -namespace -{ - // Creation of this class disables vtkMatplotlibMathTextUtilities - struct MPLMathText_Disabler : protected vtkMatplotlibMathTextUtilities - { - MPLMathText_Disabler() - { - vtkMatplotlibMathTextUtilities::MPLMathTextAvailable = - vtkMatplotlibMathTextUtilities::UNAVAILABLE; - } - }; -} - namespace { // Declarations @@ -1316,7 +1301,7 @@ namespace int deltaF = 0, deltaV = 0; int elem0dSize = 1; int ballSize = 1; - int ballScale = 1; + double ballScale = 1.0; int edgeWidth = 1; int outlineWidth = 1; double shrinkCoef = 0.0; @@ -1361,7 +1346,7 @@ namespace anActor->GetBallColor( color[0], color[1], color[2] ); ballColor.setRgbF( color[0], color[1], color[2] ); ballSize = qMax( (int)anActor->GetBallSize(), 1 ); // minimum allowed size is 1 - ballScale = qMax( (int)anActor->GetBallScale(), 1 ); // minimum allowed size is 1 + ballScale = qMax( (double)anActor->GetBallScale(), 1e-2 ); // minimum allowed scale is 1e-2 // outlines: color anActor->GetOutlineColor( color[0], color[1], color[2] ); outlineColor.setRgbF( color[0], color[1], color[2] ); @@ -1979,8 +1964,6 @@ SalomeApp_Module( "SMESH" ) /* load resources for all available meshers */ SMESH::InitAvailableHypotheses(); - - MPLMathText_Disabler d; // disable vtkMatplotlibMathTextUtilities } //============================================================================= @@ -2029,8 +2012,8 @@ bool SMESHGUI::automaticUpdate(unsigned int requestedSize, bool* limitExceeded) * */ //============================================================================= -bool SMESHGUI::automaticUpdate( SMESH::SMESH_Mesh_ptr theMesh, - int* entities, bool* limitExceeded, int* hidden ) +bool SMESHGUI::automaticUpdate( SMESH::SMESH_IDSource_ptr theMesh, + int* entities, bool* limitExceeded, int* hidden, long* nbElements ) { SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); if ( !resMgr ) @@ -2040,8 +2023,23 @@ bool SMESHGUI::automaticUpdate( SMESH::SMESH_Mesh_ptr theMesh, long updateLimit = resMgr->integerValue( "SMESH", "update_limit", 500000 ); bool incrementalLimit = resMgr->booleanValue( "SMESH", "incremental_limit", false ); - long requestedSize = theMesh->NbElements(); - + SMESH::long_array_var info = theMesh->GetMeshInfo(); + long nbOdElems = info[SMDSEntity_0D]; + long nbEdges = info[SMDSEntity_Edge] + info[SMDSEntity_Quad_Edge]; + long nbFaces = info[SMDSEntity_Triangle] + info[SMDSEntity_Quad_Triangle] + info[SMDSEntity_BiQuad_Triangle] + + info[SMDSEntity_Quadrangle] + info[SMDSEntity_Quad_Quadrangle] + info[SMDSEntity_BiQuad_Quadrangle] + + info[SMDSEntity_Polygon]; + long nbVolumes = info[SMDSEntity_Tetra] + info[SMDSEntity_Quad_Tetra] + + info[SMDSEntity_Hexa] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_TriQuad_Hexa] + + info[SMDSEntity_Pyramid] + info[SMDSEntity_Quad_Pyramid] + + info[SMDSEntity_Penta] + info[SMDSEntity_Quad_Penta] + + info[SMDSEntity_Polyhedra] + + info[SMDSEntity_Hexagonal_Prism]; + long nbBalls = info[SMDSEntity_Ball]; + + long requestedSize = nbOdElems + nbBalls + nbEdges + nbFaces + nbVolumes; + *nbElements = requestedSize; + *entities = SMESH_Actor::eAllEntity; *hidden = 0; @@ -2050,11 +2048,6 @@ bool SMESHGUI::automaticUpdate( SMESH::SMESH_Mesh_ptr theMesh, if ( limitExceeded ) *limitExceeded = autoUpdate && exceeded; if ( incrementalLimit ) { - long nbOdElems = theMesh->Nb0DElements(); - long nbEdges = theMesh->NbEdges(); - long nbFaces = theMesh->NbFaces(); - long nbVolumes = theMesh->NbVolumes(); - long nbBalls = theMesh->NbBalls(); long total = 0; if ( nbOdElems > 0 ) { @@ -4762,7 +4755,7 @@ void SMESHGUI::contextMenuPopup( const QString& client, QMenu* menu, QString& ti _PTR(Study) study = appStudy->studyDS(); _PTR(SObject) obj = study->FindObjectID( io->getEntry() ); if ( obj ) { - QString aName = QString( obj->GetName().c_str() ); + QString aName = QString( QString::fromUtf8(obj->GetName().c_str()) ); while ( aName.at( aName.length() - 1 ) == ' ' ) // Remove extraspaces in Name of Popup aName.remove( (aName.length() - 1), 1 ); title = aName; @@ -4778,6 +4771,7 @@ LightApp_Selection* SMESHGUI::createSelection() const void SMESHGUI::windows( QMap& aMap ) const { aMap.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::LeftDockWidgetArea ); + aMap.insert( SalomeApp_Application::WT_NoteBook, Qt::LeftDockWidgetArea ); aMap.insert( SalomeApp_Application::WT_PyConsole, Qt::BottomDockWidgetArea ); } @@ -5058,8 +5052,8 @@ void SMESHGUI::createPreferences() LightApp_Preferences::IntSpin, "SMESH", "elem0d_size"); int ballSize = addPreference(tr("PREF_BALL_SIZE"), elemGroup, LightApp_Preferences::IntSpin, "SMESH", "ball_elem_size"); - int ballScale = addPreference(tr("PREF_BALL_SCALE"), elemGroup, - LightApp_Preferences::IntSpin, "SMESH", "ball_elem_scale"); + double ballScale = addPreference(tr("PREF_BALL_SCALE"), elemGroup, + LightApp_Preferences::DblSpin, "SMESH", "ball_elem_scale"); int elemW = addPreference(tr("PREF_WIDTH"), elemGroup, LightApp_Preferences::IntSpin, "SMESH", "element_width"); int outW = addPreference(tr("PREF_OUTLINE_WIDTH"), elemGroup, @@ -5073,8 +5067,9 @@ void SMESHGUI::createPreferences() setPreferenceProperty( ballSize, "min", 1 ); setPreferenceProperty( ballSize, "max", 10 ); - setPreferenceProperty( ballScale, "min", 1 ); - setPreferenceProperty( ballScale, "max", 10 ); + setPreferenceProperty( ballScale, "min", 1e-2 ); + setPreferenceProperty( ballScale, "max", 1e7 ); + setPreferenceProperty( ballScale, "step", 0.5 ); setPreferenceProperty( elemW, "min", 1 ); setPreferenceProperty( elemW, "max", 5 ); @@ -5748,7 +5743,7 @@ void SMESHGUI::storeVisualParameters (int savePoint) sizeStr << QString::number((int)aSmeshActor->Get0DSize()); sizeStr << "ball"; sizeStr << QString::number((int)aSmeshActor->GetBallSize()); - sizeStr << QString::number((int)aSmeshActor->GetBallScale()); + sizeStr << QString::number((double)aSmeshActor->GetBallScale()); sizeStr << "shrink"; sizeStr << QString::number(aSmeshActor->GetShrinkFactor()); sizeStr << "orientation"; @@ -6333,7 +6328,7 @@ void SMESHGUI::restoreVisualParameters (int savePoint) int outlineWidth = -1; int elem0dSize = -1; int ballSize = -1; - int ballScale = -1; + double ballScale = -1.0; double shrinkSize = -1; double orientationSize = -1; bool orientation3d = false; @@ -6363,11 +6358,11 @@ void SMESHGUI::restoreVisualParameters (int savePoint) else if ( type == "ball" ) { // balls are specified by two values: size:scale, where // - size - is a integer value specifying size - // - scale - is a integer value specifying scale factor - if ( i+1 >= sizes.count() ) break; // format error - int v1 = sizes[i+1].toInt( &bOk ); if ( !bOk ) break; // format error - if ( i+2 >= sizes.count() ) break; // format error - int v2 = sizes[i+2].toInt( &bOk ); if ( !bOk ) break; // format error + // - scale - is a double value specifying scale factor + if ( i+1 >= sizes.count() ) break; // format error + int v1 = sizes[i+1].toInt( &bOk ); if ( !bOk ) break; // format error + if ( i+2 >= sizes.count() ) break; // format error + double v2 = sizes[i+2].toDouble( &bOk ); if ( !bOk ) break; // format error ballSize = v1; ballScale = v2; i += 2; @@ -6407,7 +6402,7 @@ void SMESHGUI::restoreVisualParameters (int savePoint) if ( ballSize > 0 ) aSmeshActor->SetBallSize( ballSize ); // ball scale - if ( ballScale > 0 ) + if ( ballScale > 0.0 ) aSmeshActor->SetBallScale( ballScale ); // shrink factor if ( shrinkSize > 0 ) @@ -6740,7 +6735,7 @@ void SMESHGUI::message( const QString& msg ) _PTR(SObject) obj = study->FindObjectID( entry.toLatin1().constData() ); QString name; if ( obj ) - name = obj->GetName().c_str(); + name = QString::fromUtf8(obj->GetName().c_str()); if ( name.isEmpty() ) return;