Salome HOME
Update of CheckDone
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_FilterDlg.cxx
old mode 100755 (executable)
new mode 100644 (file)
index 29505d1..98439f0
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -69,6 +69,7 @@
 // SALOME KERNEL includes
 #include <SALOMEDSClient_Study.hxx>
 #include <Basics_Utils.hxx>
+#include <smIdType.hxx>
 
 // OCCT includes
 #include <StdSelect_TypeOfFace.hxx>
@@ -697,7 +698,7 @@ void SMESHGUI_FilterTable::ComboDelegate::setModelData( QWidget* editor,
 
 void SMESHGUI_FilterTable::ComboDelegate::updateEditorGeometry( QWidget* editor,
                                                                 const QStyleOptionViewItem& option, 
-                                                                const QModelIndex& index ) const
+                                                                const QModelIndex& /*index*/ ) const
 {
   editor->setGeometry( option.rect );
 }
@@ -1402,7 +1403,7 @@ void SMESHGUI_FilterTable::SetCriterion (const int                       theRow,
            theCriterion.Type != SMESH::FT_OverConstrainedVolume &&
            theCriterion.Type != SMESH::FT_LinearOrQuadratic)
   {
-    // Numberic criterion
+    // Numeric criterion
     aTable->item( theRow, 2 )->setText(QString("%1").arg(theCriterion.Threshold, 0, 'g', 15));
   }
   else
@@ -1562,11 +1563,13 @@ void SMESHGUI_FilterTable::updateAdditionalWidget()
   bool isDbl = ( aCriterion == SMESH::FT_AspectRatio        ||
                  aCriterion == SMESH::FT_AspectRatio3D      ||
                  aCriterion == SMESH::FT_Warping            ||
+                 aCriterion == SMESH::FT_Warping3D          ||
                  aCriterion == SMESH::FT_MinimumAngle       ||
                  aCriterion == SMESH::FT_Taper              ||
                  aCriterion == SMESH::FT_Skew               ||
                  aCriterion == SMESH::FT_Area               ||
                  aCriterion == SMESH::FT_Volume3D           ||
+                 aCriterion == SMESH::FT_ScaledJacobian     ||
                  aCriterion == SMESH::FT_MaxElementLength2D ||
                  aCriterion == SMESH::FT_MaxElementLength3D ||
                  aCriterion == SMESH::FT_Length             ||
@@ -1604,6 +1607,7 @@ const char* SMESHGUI_FilterTable::getPrecision( const int aType )
   case SMESH::FT_Taper:
     retval = "parametric_precision"; break;
   case SMESH::FT_Warping:
+  case SMESH::FT_Warping3D:
   case SMESH::FT_MinimumAngle:
   case SMESH::FT_Skew:
   case SMESH::FT_CoplanarFaces:
@@ -1732,6 +1736,7 @@ static QList<int> entityTypes( const int theType )
   {
   case SMESH::NODE:
     typeIds.append( SMDSEntity_Node );
+    break;
   case SMESH::EDGE:
     typeIds.append( SMDSEntity_Edge );
     typeIds.append( SMDSEntity_Quad_Edge );
@@ -1776,7 +1781,7 @@ static QList<int> entityTypes( const int theType )
 // Purpose : Provides reaction on change of criterion
 //=======================================================================
 
-void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, const int entityType)
+void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int /*col*/, const int entityType)
 {
   int aType = entityType == -1 ? GetType() : entityType;
   Table* aTable = myTables[ aType ];
@@ -1809,11 +1814,13 @@ void SMESHGUI_FilterTable::onCriterionChanged (const int row, const int col, con
   case SMESH::FT_AspectRatio:
   case SMESH::FT_AspectRatio3D:
   case SMESH::FT_Warping:
+  case SMESH::FT_Warping3D:
   case SMESH::FT_MinimumAngle:
   case SMESH::FT_Taper:
   case SMESH::FT_Skew:
   case SMESH::FT_Area:
   case SMESH::FT_Volume3D:
+  case SMESH::FT_ScaledJacobian:
   case SMESH::FT_MaxElementLength2D:
   case SMESH::FT_MaxElementLength3D: anIsDoubleCriterion = true; break;
 
@@ -2266,6 +2273,7 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getCriteria (const int theType)
     if (aCriteria.isEmpty())
     {
       aCriteria[ SMESH::FT_AspectRatio3D        ] = tr("ASPECT_RATIO_3D");
+      aCriteria[ SMESH::FT_Warping3D            ] = tr("WARPING_3D");
       aCriteria[ SMESH::FT_RangeOfIds           ] = tr("RANGE_OF_IDS");
       aCriteria[ SMESH::FT_BelongToMeshGroup    ] = tr("BELONG_TO_MESH_GROUP");
       aCriteria[ SMESH::FT_BelongToGeom         ] = tr("BELONG_TO_GEOM");
@@ -2282,6 +2290,7 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getCriteria (const int theType)
       aCriteria[ SMESH::FT_EqualVolumes         ] = tr("EQUAL_VOLUME");
       aCriteria[ SMESH::FT_EntityType           ] = tr("ENTITY_TYPE");
       aCriteria[ SMESH::FT_ConnectedElements    ] = tr("CONNECTED_ELEMS");
+      aCriteria[ SMESH::FT_ScaledJacobian       ] = tr("SCALED_JACOBIAN");
     }
     return aCriteria;
   }
@@ -2377,7 +2386,7 @@ const QMap<int, QString>& SMESHGUI_FilterTable::getCompare() const
 // Purpose : Create table
 //=======================================================================
 SMESHGUI_FilterTable::Table* SMESHGUI_FilterTable::createTable (QWidget*  theParent,
-                                                                const int theType)
+                                                                const int /*theType*/)
 {
   // create table
   Table* aTable= new Table(0, 6, theParent);
@@ -3004,13 +3013,13 @@ void SMESHGUI_FilterDlg::reject()
     SALOME_ListIO aList;
     mySelectionMgr->clearFilters();
     mySelectionMgr->clearSelected();
-    SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger anIter (myIObjects);
+    SALOME_DataMapIteratorOfIOMapOfVtk anIter (myIObjects);
     for ( ; anIter.More(); anIter.Next())
     {
       aList.Append(anIter.Key());
 
-      TColStd_MapOfInteger aResMap;
-      const TColStd_IndexedMapOfInteger& anIndMap = anIter.Value();
+      SVTK_TVtkIDsMap aResMap;
+      const SVTK_TIndexedMapOfVtkId& anIndMap = anIter.Value();
       for (int i = 1, n = anIndMap.Extent(); i <= n; i++)
         aResMap.Add(anIndMap(i));
 
@@ -3203,6 +3212,8 @@ bool SMESHGUI_FilterDlg::isValid() const
       myTable->GetThreshold(i, aName);
 
       std::vector<_PTR(SObject)> aList = SMESH::getStudy()->FindObjectByName(aName.toUtf8().constData(), "GEOM");
+      if (aList.size() == 0)
+        aList = SMESH::getStudy()->FindObjectByName(aName.toUtf8().constData(), "SHAPERSTUDY");
       if (aList.size() == 0) {
         SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_INSUFFICIENT_DATA"),
                                      tr("BAD_SHAPE_NAME").arg(aName));
@@ -3339,7 +3350,7 @@ void SMESHGUI_FilterDlg::SetSelection()
     const SALOME_ListIO& anObjs = mySelector->StoredIObjects(); 
     SALOME_ListIteratorOfListIO anIter (anObjs);
     for ( ; anIter.More(); anIter.Next()) {
-      TColStd_IndexedMapOfInteger aMap;
+      SVTK_TIndexedMapOfVtkId aMap;
       mySelector->GetIndex(anIter.Value(), aMap);
       myIObjects.Bind(anIter.Value(), aMap);
     }
@@ -3533,9 +3544,9 @@ void SMESHGUI_FilterDlg::filterSource (const int theType,
   {
     if (myMesh->_is_nil())
       return;
-    SMESH::long_array_var anIds = myFilter[ theType ]->GetElementsId(myMesh);
+    SMESH::smIdType_array_var anIds = myFilter[ theType ]->GetElementsId(myMesh);
     for (int i = 0, n = anIds->length(); i < n; i++)
-      theResIds.append(anIds[ i ]);
+      theResIds.append(FromSmIdType<int>(anIds[ i ]));
   }
   else if (aSourceId == Selection)
   {
@@ -3576,7 +3587,7 @@ void SMESHGUI_FilterDlg::filterSelectionSource (const int theType,
 
   // Create map of entities to be filtered
   TColStd_MapOfInteger aToBeFiltered;
-  SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger anIter(myIObjects);
+  SALOME_DataMapIteratorOfIOMapOfVtk anIter(myIObjects);
 
   for ( ; anIter.More(); anIter.Next())
   {
@@ -3586,10 +3597,10 @@ void SMESHGUI_FilterDlg::filterSelectionSource (const int theType,
     {
       if (aSubMesh->GetFather()->GetId() == myMesh->GetId())
       {
-        SMESH::long_array_var anIds =
+        SMESH::smIdType_array_var anIds =
           theType == SMESH::NODE ? aSubMesh->GetNodesId() : aSubMesh->GetElementsId();
         for (int i = 0, n = anIds->length(); i < n; i++)
-          aToBeFiltered.Add(anIds[ i ]);
+          aToBeFiltered.Add(FromSmIdType<int>(anIds[ i ]));
       }
     }
 
@@ -3600,9 +3611,9 @@ void SMESHGUI_FilterDlg::filterSelectionSource (const int theType,
     {
       if (aGroup->GetType() == theType && aGroup->GetMesh()->GetId() == myMesh->GetId())
       {
-        SMESH::long_array_var anIds = aGroup->GetListOfID();
+        SMESH::smIdType_array_var anIds = aGroup->GetListOfID();
         for (int i = 0, n = anIds->length(); i < n; i++)
-          aToBeFiltered.Add(anIds[ i ]);
+          aToBeFiltered.Add(FromSmIdType<int>(anIds[ i ]));
       }
     }
 
@@ -3610,7 +3621,7 @@ void SMESHGUI_FilterDlg::filterSelectionSource (const int theType,
     SMESH::SMESH_Mesh_var aMeshPtr = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(anIter.Key());
     if (!aMeshPtr->_is_nil() && aMeshPtr->GetId() == myMesh->GetId())
     {
-      const TColStd_IndexedMapOfInteger& aSelMap = anIter.Value();
+      const SVTK_TIndexedMapOfVtkId& aSelMap = anIter.Value();
 
       if (aSelMap.Extent() > 0)
       {
@@ -3643,7 +3654,7 @@ SMESH_Actor* SMESHGUI_FilterDlg::getActor()
   if ( meshActor && meshActor->GetVisibility() )
     return meshActor;
 
-  SALOME_DataMapIteratorOfDataMapOfIOMapOfInteger anIter(myIObjects);
+  SALOME_DataMapIteratorOfIOMapOfVtk anIter(myIObjects);
   for ( ; anIter.More(); anIter.Next())
   {
     Handle(SALOME_InteractiveObject) io = anIter.Key();
@@ -3703,7 +3714,7 @@ void SMESHGUI_FilterDlg::selectInViewer (const int theType, const QList<int>& th
   SMESH::RemoveFilter(aFilterId);
 
   // get vtk ids
-  TColStd_MapOfInteger aMap;
+  SVTK_TVtkIDsMap aMap;
   QList<int>::const_iterator anIter;
   for (anIter = theIds.begin(); anIter != theIds.end(); ++anIter) {
     aMap.Add(*anIter);
@@ -3725,7 +3736,7 @@ void SMESHGUI_FilterDlg::selectInViewer (const int theType, const QList<int>& th
 //=======================================================================
 SMESH::Filter::Criterion SMESHGUI_FilterDlg::createCriterion()
 {
-   SMESH::Filter::Criterion aCriterion;
+  SMESH::Filter::Criterion aCriterion;
 
   aCriterion.Type          = SMESH::FT_Undefined;
   aCriterion.Compare       = SMESH::FT_Undefined;
@@ -3748,7 +3759,7 @@ SMESH::Filter::Criterion SMESHGUI_FilterDlg::createCriterion()
 void SMESHGUI_FilterDlg::onSelectionDone()
 {
   const SALOME_ListIO& aList = mySelector->StoredIObjects();
-  if ( myMesh->_is_nil() && aList.Extent()>0 )
+  if ( myMesh->_is_nil() && aList.Extent() > 0 )
   {
     myMesh = SMESH::IObjectToInterface<SMESH::SMESH_Mesh>(aList.First());
     if ( !(myMesh->_is_nil()) ) {
@@ -3814,6 +3825,7 @@ void SMESHGUI_FilterDlg::onSelectionDone()
         myTable->SetThreshold(aRow, SMESH::toQStr( grp->GetName() ));
         myTable->SetID       (aRow, anIO->getEntry() );
       }
+      break;
     }
   default: // get a GEOM object
     {