X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_ComputeDlg.h;h=d88731203630a5c9274192fc5fab7b21a7b4ec78;hb=951e90bf479587d1f1a47138209769e7ea53427e;hp=5ea7a662b6229d9a046bb9ecc6f40e6752ed37f5;hpb=79b1ac2b6df9117f16f11d444b1f165d477a1813;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_ComputeDlg.h b/src/SMESHGUI/SMESHGUI_ComputeDlg.h index 5ea7a662b..d88731203 100644 --- a/src/SMESHGUI/SMESHGUI_ComputeDlg.h +++ b/src/SMESHGUI/SMESHGUI_ComputeDlg.h @@ -1,4 +1,6 @@ -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -15,43 +17,108 @@ // 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, Open CASCADE S.A.S. // -// File : SMESHGUI_ComputeDlg.h -// Author : Edward AGAPOV -// Module : SMESH +#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 +// 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_PrecomputeDlg; +//class SMESHGUI_EvaluateDlg; +class SMESHGUI_MeshEditPreview; + +class SMESH::compute_error_array; -namespace SMESH { +namespace SMESH +{ class TShapeDisplayer; } +/*! + * \brief Base operation to compute a mesh and show computation errors + */ +class SMESHGUI_EXPORT SMESHGUI_BaseComputeOp: public SMESHGUI_Operation +{ + Q_OBJECT + +public: + SMESHGUI_BaseComputeOp(); + virtual ~SMESHGUI_BaseComputeOp(); + +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_EvaluateDlg* evaluateDlg() const; + SMESHGUI_ComputeDlg* evaluateDlg() const; + void evaluateMesh(); + void showEvaluateResult(std::vector theVec, + const bool, + const bool, + SMESH::compute_error_array_var&, + const bool, + const QString&); + +protected slots: + virtual bool onApply(); + void onPreviewShape(); + void onPublishShape(); + void onShowBadMesh(); + void currentCellChanged(); + +private: + QTableWidget* table(); + +private: + QPointer myCompDlg; + //QPointer myEvalDlg; + +protected: + SMESH::SMESH_Mesh_var myMesh; + GEOM::GEOM_Object_var myMainShape; + SMESH::TShapeDisplayer* myTShapeDisplayer; + SMESHGUI_MeshEditPreview* myBadMeshDisplayer; + Handle(SALOME_InteractiveObject) myIObject; +}; + /*! * \brief Operation to compute a mesh and show computation errors */ -class SMESHGUI_ComputeOp: public SMESHGUI_Operation +class SMESHGUI_EXPORT SMESHGUI_ComputeOp: public SMESHGUI_BaseComputeOp { Q_OBJECT @@ -62,55 +129,116 @@ public: virtual LightApp_Dialog* dlg() const; protected: + virtual void startOperation(); + +protected slots: +}; + +/*! + * \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); + +protected: virtual void startOperation(); virtual void stopOperation(); + virtual void resumeOperation(); + + virtual void initDialog(); protected slots: - virtual bool onApply(); + virtual void onCancel(); private slots: - - void onPreviewShape(); - void onPublishShape(); - void currentCellChanged(); + void onPreview(); + void onCompute(); private: + QMap< int, int > myMapShapeId; + QPointer myActiveDlg; + QPointer myDlg; + SMESHGUI_MeshEditPreview* myPreviewDisplayer; +}; - QTable* table(); +/*! + * \brief Operation to evaluate a mesh and show result + */ +class SMESHGUI_EXPORT SMESHGUI_EvaluateOp: public SMESHGUI_BaseComputeOp +{ + Q_OBJECT - SMESHGUI_ComputeDlg* myDlg; +public: + SMESHGUI_EvaluateOp(); + virtual ~SMESHGUI_EvaluateOp(); - GEOM::GEOM_Object_var myMainShape; - SMESH::TShapeDisplayer* myTShapeDisplayer; + virtual LightApp_Dialog* dlg() const; + +protected: + virtual void startOperation(); + +protected slots: }; /*! * \brief Box showing mesh info */ -class SMESHGUI_MeshInfosBox : public QGroupBox +class SMESHGUI_EXPORT SMESHGUI_MeshInfosBox : public QGroupBox { Q_OBJECT + public: + SMESHGUI_MeshInfosBox( const bool, QWidget* ); - SMESHGUI_MeshInfosBox(const bool full, QWidget* theParent); - void SetInfoByMesh(SMESH::SMESH_Mesh_var mesh); + void SetInfoByMesh( SMESH::SMESH_Mesh_var ); -private: + void SetInfoByEval( std::vector theVec ); +private: bool myFull; QLabel* myNbNode; - QLabel* myNbEdge, *myNbLinEdge, *myNbQuadEdge; - QLabel* myNbTrai, *myNbLinTrai, *myNbQuadTrai; - QLabel* myNbQuad, *myNbLinQuad, *myNbQuadQuad; - QLabel* myNbFace, *myNbLinFace, *myNbQuadFace; + QLabel* myNbEdge; + QLabel* myNbLinEdge; + QLabel* myNbQuadEdge; + QLabel* myNbTrai; + QLabel* myNbLinTrai; + QLabel* myNbQuadTrai; + QLabel* myNbQuad; + QLabel* myNbLinQuad; + QLabel* myNbQuadQuad; + QLabel* myNbFace; + QLabel* myNbLinFace; + QLabel* myNbQuadFace; QLabel* myNbPolyg; - QLabel* myNbHexa, *myNbLinHexa, *myNbQuadHexa; - QLabel* myNbTetra, *myNbLinTetra, *myNbQuadTetra; - QLabel* myNbPyra, *myNbLinPyra, *myNbQuadPyra; - QLabel* myNbPrism, *myNbLinPrism, *myNbQuadPrism; - QLabel* myNbVolum, *myNbLinVolum, *myNbQuadVolum; + QLabel* myNbHexa; + QLabel* myNbLinHexa; + QLabel* myNbQuadHexa; + QLabel* myNbTetra; + QLabel* myNbLinTetra; + QLabel* myNbQuadTetra; + QLabel* myNbPyra; + QLabel* myNbLinPyra; + QLabel* myNbQuadPyra; + QLabel* myNbPrism; + QLabel* myNbLinPrism; + QLabel* myNbQuadPrism; + QLabel* myNbVolum; + QLabel* myNbLinVolum; + QLabel* myNbQuadVolum; QLabel* myNbPolyh; }; @@ -118,31 +246,88 @@ private: * \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( QWidget*, bool ); + virtual ~SMESHGUI_ComputeDlg(); + +protected: + QFrame* createMainFrame( QWidget*, bool ); + + QLabel* myMeshName; + QGroupBox* myMemoryLackGroup; + QGroupBox* myCompErrorGroup; + QGroupBox* myHypErrorGroup; + QLabel* myHypErrorLabel; + QTableWidget* myTable; + QPushButton* myShowBtn; + QPushButton* myPublishBtn; + QPushButton* myBadMeshBtn; + + SMESHGUI_MeshInfosBox* myBriefInfo; + SMESHGUI_MeshInfosBox* myFullInfo; + + friend class SMESHGUI_BaseComputeOp; + friend class SMESHGUI_PrecomputeOp; +}; + +/*! + * \brief Dialog to preview and compute a mesh and show computation errors + */ + +class SMESHGUI_EXPORT SMESHGUI_PrecomputeDlg : public SMESHGUI_Dialog { Q_OBJECT public: - SMESHGUI_ComputeDlg(); + SMESHGUI_PrecomputeDlg( QWidget* ); + virtual ~SMESHGUI_PrecomputeDlg(); + + void setPreviewModes( const QList& ); + int getPreviewMode() const; + +signals: + void preview(); private: + QPushButton* myPreviewBtn; + QtxComboBox* myPreviewMode; +}; + + +/*! + * \brief Dialog to evaluate a mesh and show result + */ +/* +class SMESHGUI_EXPORT SMESHGUI_EvaluateDlg : public SMESHGUI_Dialog +{ + Q_OBJECT + +public: + SMESHGUI_EvaluateDlg( QWidget* ); + virtual ~SMESHGUI_EvaluateDlg(); - QFrame* createMainFrame (QWidget*); +protected: + QFrame* createMainFrame( QWidget* ); 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; }; +*/ -#endif +#endif // SMESHGUI_COMPUTEDLG_H