X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_ComputeDlg.h;h=ee268a4d4756896f33d182fe674f78e0fc5402f5;hp=5ea7a662b6229d9a046bb9ecc6f40e6752ed37f5;hb=632a68b51c2edd2bdab2f80431d8e1b68594e03f;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813 diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.h b/src/SMESHGUI/SMESHGUI_ComputeDlg.h index 5ea7a662b..ee268a4d4 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.h +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.h @@ -1,5 +1,4 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2007-2010 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 @@ -15,134 +14,250 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// -// -// File : SMESHGUI_ComputeDlg.h -// Author : Edward AGAPOV -// Module : SMESH +// File : SMESHGUI_ComputeDlg.h +// Author : Edward AGAPOV, Open CASCADE S.A.S. +// +#ifndef SMESHGUI_COMPUTEDLG_H +#define SMESHGUI_COMPUTEDLG_H -#ifndef SMESHGUI_ComputeDlg_H -#define SMESHGUI_ComputeDlg_H +// SMESH includes +#include "SMESH_SMESHGUI.hxx" #include "SMESHGUI_Dialog.h" -#include "SMESHGUI_SelectionOp.h" +#include "SMESHGUI_Operation.h" -#include "VTKViewer.h" +// SALOME GUI includes +#include -#include "SALOMEconfig.h" -#include CORBA_SERVER_HEADER(GEOM_Gen) +// Qt includes +#include +#include +#include +#include -#include +// IDL includes +#include +#include CORBA_SERVER_HEADER(SMESH_Gen) +#include CORBA_SERVER_HEADER(SMESH_Mesh) class QFrame; class QPushButton; -class QTable; +class QTableWidget; class QLabel; +class QtxComboBox; class SMESHGUI_ComputeDlg; -class GEOM_Actor; +class SMESHGUI_MeshInfosBox; +class SMESHGUI_PrecomputeDlg; +class SMESHGUI_MeshEditPreview; -namespace SMESH { +namespace SMESH +{ class TShapeDisplayer; } /*! - * \brief Operation to compute a mesh and show computation errors + * \brief Base operation to compute a mesh and show computation errors */ -class SMESHGUI_ComputeOp: public SMESHGUI_Operation +class SMESHGUI_EXPORT SMESHGUI_BaseComputeOp: public SMESHGUI_Operation { Q_OBJECT public: - SMESHGUI_ComputeOp(); - virtual ~SMESHGUI_ComputeOp(); + SMESHGUI_BaseComputeOp(); + virtual ~SMESHGUI_BaseComputeOp(); - virtual LightApp_Dialog* dlg() const; + SMESH::SMESH_Mesh_ptr getMesh(); protected: - virtual void startOperation(); virtual void stopOperation(); + SMESHGUI_ComputeDlg* computeDlg() const; + void computeMesh(); + void showComputeResult( const bool, + const bool, + SMESH::compute_error_array_var&, + const bool, + const QString& ); + SMESHGUI_ComputeDlg* evaluateDlg() const; + void evaluateMesh(); + void showEvaluateResult(const SMESH::long_array& theRes, + const bool, + const bool, + SMESH::compute_error_array_var&, + const bool, + const QString&); + + virtual bool isValid( SUIT_Operation* theOp ) const; + protected slots: virtual bool onApply(); - -private slots: - void onPreviewShape(); void onPublishShape(); + void onShowBadMesh(); void currentCellChanged(); private: + QTableWidget* table(); - QTable* table(); - - SMESHGUI_ComputeDlg* myDlg; +private: + QPointer myCompDlg; - GEOM::GEOM_Object_var myMainShape; - SMESH::TShapeDisplayer* myTShapeDisplayer; +protected: + SMESH::SMESH_Mesh_var myMesh; + GEOM::GEOM_Object_var myMainShape; + SMESH::TShapeDisplayer* myTShapeDisplayer; + SMESHGUI_MeshEditPreview* myBadMeshDisplayer; + Handle(SALOME_InteractiveObject) myIObject; }; /*! - * \brief Box showing mesh info + * \brief Operation to compute a mesh and show computation errors */ +class SMESHGUI_EXPORT SMESHGUI_ComputeOp: public SMESHGUI_BaseComputeOp +{ + Q_OBJECT -class SMESHGUI_MeshInfosBox : public QGroupBox +public: + SMESHGUI_ComputeOp(); + virtual ~SMESHGUI_ComputeOp(); + + virtual LightApp_Dialog* dlg() const; + +protected: + virtual void startOperation(); + +protected slots: +}; + +class SMESHGUI_MeshOrderMgr; + +/*! + * \brief Operation to preview and compute a mesh and show computation errors + */ +class SMESHGUI_EXPORT SMESHGUI_PrecomputeOp: public SMESHGUI_BaseComputeOp { Q_OBJECT + public: + SMESHGUI_PrecomputeOp(); + virtual ~SMESHGUI_PrecomputeOp(); + + virtual LightApp_Dialog* dlg() const; + + /** + * \brief returns map of assigned algorithms modes + */ + static void getAssignedAlgos(_PTR(SObject) theMesh, + QMap& theModeMap); - SMESHGUI_MeshInfosBox(const bool full, QWidget* theParent); - void SetInfoByMesh(SMESH::SMESH_Mesh_var mesh); +protected: + virtual void startOperation(); + virtual void stopOperation(); + virtual void resumeOperation(); + + virtual void initDialog(); + +protected slots: + virtual void onCancel(); + +private slots: + void onPreview(); + void onCompute(); private: + //! private fields + QMap< int, int > myMapShapeId; + QPointer myActiveDlg; + QPointer myDlg; + SMESHGUI_MeshEditPreview* myPreviewDisplayer; + //! fields for mesh order + typedef QList TListOfInt; + typedef QList TListOfListOfInt; + TListOfListOfInt myPrevOrder; + SMESHGUI_MeshOrderMgr* myOrderMgr; +}; - bool myFull; - QLabel* myNbNode; - QLabel* myNbEdge, *myNbLinEdge, *myNbQuadEdge; - QLabel* myNbTrai, *myNbLinTrai, *myNbQuadTrai; - QLabel* myNbQuad, *myNbLinQuad, *myNbQuadQuad; - QLabel* myNbFace, *myNbLinFace, *myNbQuadFace; - QLabel* myNbPolyg; - QLabel* myNbHexa, *myNbLinHexa, *myNbQuadHexa; - QLabel* myNbTetra, *myNbLinTetra, *myNbQuadTetra; - QLabel* myNbPyra, *myNbLinPyra, *myNbQuadPyra; - QLabel* myNbPrism, *myNbLinPrism, *myNbQuadPrism; - QLabel* myNbVolum, *myNbLinVolum, *myNbQuadVolum; - QLabel* myNbPolyh; +/*! + * \brief Operation to evaluate a mesh and show result + */ +class SMESHGUI_EXPORT SMESHGUI_EvaluateOp: public SMESHGUI_BaseComputeOp +{ + Q_OBJECT + +public: + SMESHGUI_EvaluateOp(); + virtual ~SMESHGUI_EvaluateOp(); + + virtual LightApp_Dialog* dlg() const; + +protected: + virtual void startOperation(); + +protected slots: }; /*! * \brief Dialog to compute a mesh and show computation errors */ -class SMESHGUI_ComputeDlg : public SMESHGUI_Dialog +class SMESHGUI_EXPORT SMESHGUI_ComputeDlg : public SMESHGUI_Dialog { Q_OBJECT public: - SMESHGUI_ComputeDlg(); - -private: + SMESHGUI_ComputeDlg( QWidget*, bool ); + virtual ~SMESHGUI_ComputeDlg(); - QFrame* createMainFrame (QWidget*); +protected: + QFrame* createMainFrame( QWidget*, bool ); QLabel* myMeshName; QGroupBox* myMemoryLackGroup; QGroupBox* myCompErrorGroup; QGroupBox* myHypErrorGroup; QLabel* myHypErrorLabel; - QTable* myTable; + QTableWidget* myTable; QPushButton* myShowBtn; QPushButton* myPublishBtn; + QPushButton* myBadMeshBtn; SMESHGUI_MeshInfosBox* myBriefInfo; SMESHGUI_MeshInfosBox* myFullInfo; - friend class SMESHGUI_ComputeOp; + friend class SMESHGUI_BaseComputeOp; + friend class SMESHGUI_PrecomputeOp; +}; + +class SMESHGUI_MeshOrderBox; + +/*! + * \brief Dialog to preview and compute a mesh and show computation errors + */ + +class SMESHGUI_EXPORT SMESHGUI_PrecomputeDlg : public SMESHGUI_Dialog +{ + Q_OBJECT +public: + SMESHGUI_PrecomputeDlg( QWidget* ); + virtual ~SMESHGUI_PrecomputeDlg(); + + void setPreviewModes( const QList& ); + int getPreviewMode() const; + + SMESHGUI_MeshOrderBox* getMeshOrderBox() const; + +signals: + void preview(); + +private: + SMESHGUI_MeshOrderBox* myOrderBox; + QPushButton* myPreviewBtn; + QtxComboBox* myPreviewMode; }; -#endif +#endif // SMESHGUI_COMPUTEDLG_H