X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshInfo.h;h=a2fa39930e6deb2dc6b12f5d505dee906d3d1ce3;hb=f0bf265fc0ea849ad1a359e10ad0c9cf6b0b9bb8;hp=ae22e5ac0eb3947e95722d16d34c611d9550e74d;hpb=d8f644ca3d4ce62f2ef41d4aacb52f5bb1221df3;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_MeshInfo.h b/src/SMESHGUI/SMESHGUI_MeshInfo.h index ae22e5ac0..a2fa39930 100644 --- a/src/SMESHGUI/SMESHGUI_MeshInfo.h +++ b/src/SMESHGUI/SMESHGUI_MeshInfo.h @@ -1,23 +1,23 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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 +// 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 -// 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. +// 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. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// 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_MeshInfo.h // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) @@ -32,22 +32,26 @@ #include #include #include +#include +#include #include #include #include CORBA_SERVER_HEADER(SMESH_Mesh) +#include CORBA_SERVER_HEADER(SMESH_Group) class QButtonGroup; class QLabel; class QLineEdit; +class QPushButton; class QTabWidget; class QTextBrowser; -class QTreeWidget; -class QTreeWidgetItem; class SMESH_Actor; class SMDS_MeshNode; class SMDS_MeshElement; +class ExtraWidget; + class SMESHGUI_EXPORT SMESHGUI_MeshInfo : public QFrame { Q_OBJECT; @@ -63,7 +67,10 @@ class SMESHGUI_EXPORT SMESHGUI_MeshInfo : public QFrame i0DStart, i0D, i0DEnd, - i1DStart = i0DEnd, + iBallsStart = i0DEnd, + iBalls, + iBallsEnd, + i1DStart = iBallsEnd, i1D, i1DEnd, i2DStart = i1DEnd, @@ -78,6 +85,7 @@ class SMESHGUI_EXPORT SMESHGUI_MeshInfo : public QFrame i3DHexahedrons, i3DPyramids, i3DPrisms, + i3DHexaPrisms, i3DPolyhedrons, i3DEnd, iElementsEnd = i3DEnd @@ -108,8 +116,12 @@ private: void setFontAttributes( QWidget*, int, bool = true ); void setFieldsVisible( int, int, bool ); +private slots: + void loadMesh(); + private: - iwlist myWidgets; + iwlist myWidgets; + QPushButton* myLoadBtn; }; class SMESHGUI_EXPORT SMESHGUI_ElemInfo : public QWidget @@ -121,8 +133,9 @@ public: ~SMESHGUI_ElemInfo(); void setSource( SMESH_Actor* ); - virtual void showInfo( long, bool ); - virtual void clear() = 0; + void showInfo( long, bool ); + void showInfo( QSet, bool ); + void clear(); protected: struct XYZ @@ -137,14 +150,29 @@ protected: }; typedef QMap< int, QList > Connectivity; + QWidget* frame() const; + SMESH_Actor* actor() const; + bool isElements() const; + + virtual void information( const QList& ) = 0; + virtual void clearInternal(); + Connectivity nodeConnectivity( const SMDS_MeshNode* ); QString formatConnectivity( Connectivity, int ); XYZ gravityCenter( const SMDS_MeshElement* ); -protected: - SMESH_Actor* myActor; - long myID; - int myIsElement; +private slots: + void showPrevious(); + void showNext(); + void updateControls(); + +private: + SMESH_Actor* myActor; + QList myIDs; + int myIsElement; + QWidget* myFrame; + ExtraWidget* myExtra; + int myIndex; }; class SMESHGUI_EXPORT SMESHGUI_SimpleElemInfo : public SMESHGUI_ElemInfo @@ -152,8 +180,9 @@ class SMESHGUI_EXPORT SMESHGUI_SimpleElemInfo : public SMESHGUI_ElemInfo public: SMESHGUI_SimpleElemInfo( QWidget* = 0 ); - void showInfo( long, bool ); - void clear(); +protected: + void information( const QList& ); + void clearInternal(); private: QTextBrowser* myInfo; @@ -163,19 +192,73 @@ class SMESHGUI_EXPORT SMESHGUI_TreeElemInfo : public SMESHGUI_ElemInfo { class ItemDelegate; + enum { Bold = 0x01, All = 0x80 }; + public: SMESHGUI_TreeElemInfo( QWidget* = 0 ); - void showInfo( long, bool ); - void clear(); +protected: + void information( const QList& ); + void clearInternal(); private: - QTreeWidgetItem* createItem( QTreeWidgetItem* = 0, int = 100 ); + QTreeWidgetItem* createItem( QTreeWidgetItem* = 0, int = 0 ); private: QTreeWidget* myInfo; }; +class GrpComputor: public QObject +{ + Q_OBJECT; + +public: + GrpComputor( SMESH::SMESH_GroupBase_ptr, QTreeWidgetItem*, QObject* ); + QTreeWidgetItem* getItem() { return myItem; } + +public slots: + void compute(); + +private: + SMESH::SMESH_GroupBase_var myGroup; + QTreeWidgetItem* myItem; +}; + +class SMESHGUI_EXPORT SMESHGUI_AddInfo : public QTreeWidget +{ + Q_OBJECT; + + enum { Bold = 0x01, All = 0x80 }; + +public: + SMESHGUI_AddInfo( QWidget* = 0 ); + ~SMESHGUI_AddInfo(); + + void showInfo( SMESH::SMESH_IDSource_ptr ); + // void clear(); + +private slots: + void changeLoadToCompute(); + void showPreviousGroups(); + void showNextGroups(); + void showPreviousSubMeshes(); + void showNextSubMeshes(); + +private: + QTreeWidgetItem* createItem( QTreeWidgetItem* = 0, int = 0 ); + void meshInfo( SMESH::SMESH_Mesh_ptr, QTreeWidgetItem* ); + void subMeshInfo( SMESH::SMESH_subMesh_ptr, QTreeWidgetItem* ); + void groupInfo( SMESH::SMESH_GroupBase_ptr, QTreeWidgetItem* ); + + void showGroups(); + void showSubMeshes(); + +private: + QList myComputors; + SMESH::ListOfGroups_var myGroups; + SMESH::submesh_array_var mySubMeshes; +}; + class SMESHGUI_EXPORT SMESHGUI_MeshInfoDlg : public QDialog { Q_OBJECT; @@ -186,7 +269,8 @@ public: //! Information type enum { BaseInfo, //!< base mesh information - ElemInfo //!< mesh element information + ElemInfo, //!< mesh element information + AddInfo //!< additional information }; SMESHGUI_MeshInfoDlg( QWidget* = 0, int = BaseInfo ); @@ -214,6 +298,7 @@ private: QButtonGroup* myMode; QLineEdit* myID; SMESHGUI_ElemInfo* myElemInfo; + SMESHGUI_AddInfo* myAddInfo; SMESH_Actor* myActor; };