X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshInfo.h;h=5b00585aa01044b362cb09fd4694cef055d70055;hp=d84097e1c97e689a9c1798f555454122a17f8278;hb=d547f440f838090c4aca61aa64b5f7d5b9e0aff4;hpb=a58d1281752d62ff40dac81af7076e1ab1fee824 diff --git a/src/SMESHGUI/SMESHGUI_MeshInfo.h b/src/SMESHGUI/SMESHGUI_MeshInfo.h index d84097e1c..5b00585aa 100644 --- a/src/SMESHGUI/SMESHGUI_MeshInfo.h +++ b/src/SMESHGUI/SMESHGUI_MeshInfo.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 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 @@ -6,7 +6,7 @@ // 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 @@ -26,7 +26,6 @@ #define SMESHGUI_MESHINFO_H #include "SMESH_SMESHGUI.hxx" -#include #include "SMESH_ControlsDef.hxx" #include @@ -42,6 +41,10 @@ #include #include CORBA_SERVER_HEADER(SMESH_Mesh) #include CORBA_SERVER_HEADER(SMESH_Group) +#include CORBA_SERVER_HEADER(SMESH_Filter) + +#include +#include class QAbstractButton; class QButtonGroup; @@ -105,7 +108,8 @@ class SMESHGUI_EXPORT SMESHGUI_MeshInfo : public QFrame iSingle = 1, iTotal = iSingle, iLinear, - iQuadratic + iQuadratic, + iBiQuadratic }; typedef QList wlist; @@ -154,6 +158,7 @@ protected: { double myX, myY, myZ; XYZ() { myX = myY = myZ = 0.0; } + XYZ(double x, double y, double z) { myX = x; myY = y; myZ = z; } void add( double x, double y, double z ) { myX += x; myY += y; myZ += z; } void divide( double a ) { if ( a != 0.) { myX /= a; myY /= a; myZ /= a; } } double x() const { return myX; } @@ -172,6 +177,7 @@ protected: Connectivity nodeConnectivity( const SMDS_MeshNode* ); QString formatConnectivity( Connectivity, int ); XYZ gravityCenter( const SMDS_MeshElement* ); + XYZ normal( const SMDS_MeshElement* ); signals: void itemInfo( int ); @@ -222,6 +228,7 @@ public: protected: void contextMenuEvent( QContextMenuEvent* e ); void information( const QList& ); + void nodeInfo( const SMDS_MeshNode*, int, int, QTreeWidgetItem* ); void clearInternal(); private slots: @@ -303,13 +310,12 @@ private: QwtPlot* createPlot( QWidget* ); void setFontAttributes( QWidget* ); void clearInternal(); - SMESH::long_array_var getElementsByType( SMESH::ElementType theElementType ); - int nbElemsControl( SMESH::long_array_var&, SMESH::Controls::FunctorPtr ); - Plot2d_Histogram* getHistogram( SMESH::long_array_var&, SMESH::Controls::NumericalFunctorPtr ); + Plot2d_Histogram* getHistogram( SMESH::NumericalFunctor_ptr functor ); + void computeNb( int ft, int iBut, int iWdg ); private slots: - void computeFaceInfo(); - void computeVolumeInfo(); + void computeAspectRatio(); + void computeAspectRatio3D(); void computeFreeNodesInfo(); void computeDoubleNodesInfo(); void computeDoubleEdgesInfo(); @@ -318,9 +324,12 @@ private slots: void computeDoubleVolumesInfo(); void computeOverConstrainedVolumesInfo(); void setTolerance( const double theTolerance ); + private: - SMESH_Actor* myActor; + typedef SALOME::GenericObj_wrap< SMESH::Predicate > TPredicate; + typedef SALOME::GenericObj_wrap< SMESH::NumericalFunctor > TNumFunctor; + SMESH::SMESH_IDSource_var myObject; ObjectType myObjectType; SMESHGUI_SpinBox* myToleranceWidget; QList myWidgets; @@ -328,6 +337,8 @@ private: QwtPlot* myPlot; QwtPlot* myPlot3D; QList myButtons; + QList myPredicates; + TNumFunctor myAspectRatio, myAspectRatio3D; }; class SMESHGUI_EXPORT SMESHGUI_MeshInfoDlg : public QDialog @@ -394,6 +405,8 @@ private slots: void activate(); void deactivate(); void updateSelection(); + void help(); + void dump(); private: SMESHGUI_CtrlInfo* myCtrlInfo;