Salome HOME
Copyright update 2022
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_ComputeDlg.h
index 49aa2477c77ba31127699f7d1c66e54abd1565cd..596b926b278e6d7bcd6fa07a68cbc40305cf7d0a 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -49,6 +49,7 @@ class QPushButton;
 class QTableWidget;
 class QLabel;
 class QtxComboBox;
+class QProgressBar;
 class SMESHGUI_ComputeDlg;
 class SMESHGUI_MeshInfosBox;
 class SMESHGUI_PrecomputeDlg;
@@ -71,6 +72,7 @@ public:
   virtual ~SMESHGUI_BaseComputeOp();
 
   SMESH::SMESH_Mesh_ptr          getMesh();
+  virtual LightApp_Dialog*       dlg() const;
 
 protected:
   virtual void                   startOperation();
@@ -85,7 +87,7 @@ protected:
                                                     const QString& );
   SMESHGUI_ComputeDlg*           evaluateDlg() const;
   void                           evaluateMesh();
-  void                           showEvaluateResult(const SMESH::long_array& theRes,
+  void                           showEvaluateResult(const SMESH::smIdType_array& theRes,
                                                     const bool,
                                                     const bool,
                                                     SMESH::compute_error_array_var&,
@@ -99,6 +101,7 @@ protected slots:
   void                           onPreviewShape();
   void                           onPublishShape();
   void                           onShowBadMesh();
+  void                           onGroupOfBadMesh();
   void                           currentCellChanged();
 
 private:
@@ -110,6 +113,7 @@ private:
 protected:
   SMESH::SMESH_Mesh_var            myMesh;
   GEOM::GEOM_Object_var            myMainShape;
+  GEOM::GEOM_Object_var            myCurShape;
   SMESH::TShapeDisplayer*          myTShapeDisplayer;
   SMESHGUI_MeshEditPreview*        myBadMeshDisplayer;
   Handle(SALOME_InteractiveObject) myIObject;
@@ -201,6 +205,20 @@ protected:
 protected slots:
 };
 
+/*!
+ * \brief Operation to show meshing errors
+ */
+class SMESHGUI_EXPORT SMESHGUI_ShowErrorsOp: public SMESHGUI_BaseComputeOp
+{
+  Q_OBJECT
+
+public:
+  SMESHGUI_ShowErrorsOp();
+
+protected:
+  virtual void                   startOperation();
+};
+
 /*!
  * \brief Dialog to compute a mesh and show computation errors
  */
@@ -226,12 +244,14 @@ protected:
   QPushButton*                 myShowBtn;
   QPushButton*                 myPublishBtn;
   QPushButton*                 myBadMeshBtn;
+  QPushButton*                 myBadMeshToGroupBtn;
 
   SMESHGUI_MeshInfosBox*       myBriefInfo;
   SMESHGUI_MeshInfosBox*       myFullInfo;
 
   friend class SMESHGUI_BaseComputeOp;
   friend class SMESHGUI_PrecomputeOp;
+  friend class SMESHGUI_ShowErrorsOp;
 };
 
 class SMESHGUI_MeshOrderBox;
@@ -271,20 +291,21 @@ class SMESHGUI_EXPORT SMESHGUI_ComputeDlg_QThread : public QThread
   Q_OBJECT
     
 public:
-  SMESHGUI_ComputeDlg_QThread(SMESH::SMESH_Gen_var gen,
+  SMESHGUI_ComputeDlg_QThread(SMESH::SMESH_Gen_var  gen,
                               SMESH::SMESH_Mesh_var mesh,
                               GEOM::GEOM_Object_var mainShape);
-  bool result();
-  void cancel();
-  
+  bool                   result();
+  void                   cancel();
+  SMESH::SMESH_Mesh_var& getMesh() { return myMesh; }
+
 protected:
   void run();
   
 private:
-  SMESH::SMESH_Gen_var myGen;
+  SMESH::SMESH_Gen_var  myGen;
   SMESH::SMESH_Mesh_var myMesh;
   GEOM::GEOM_Object_var myMainShape;
-  bool myResult;
+  bool                  myResult;
 };
 
 /*!
@@ -296,8 +317,8 @@ class SMESHGUI_EXPORT SMESHGUI_ComputeDlg_QThreadQDialog : public QDialog
   Q_OBJECT
     
 public:
-  SMESHGUI_ComputeDlg_QThreadQDialog(QWidget *parent,
-                                     SMESH::SMESH_Gen_var gen,
+  SMESHGUI_ComputeDlg_QThreadQDialog(QWidget *             parent,
+                                     SMESH::SMESH_Gen_var  gen,
                                      SMESH::SMESH_Mesh_var mesh,
                                      GEOM::GEOM_Object_var mainShape);
   bool result();
@@ -311,8 +332,11 @@ private slots:
   
 private:
   SMESHGUI_ComputeDlg_QThread qthread;
-  QPushButton *cancelButton;
-  
+  QPushButton *               cancelButton;
+  QLabel *                    nbNodesLabel;
+  QLabel *                    nbElemsLabel;
+  QLabel *                    freeRAMLabel;
+  QProgressBar*               progressBar;
 };
 
 #endif // SMESHGUI_COMPUTEDLG_H