Salome HOME
Merge remote branch 'origin/Doc_update_ver741' into V7_5_BR
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MeshInfo.cxx
index 4fdf52051f5666b3bc9c64614630cfa0a6c910c0..e91afa388e3d91e894bc3caf141d2a711369106e 100644 (file)
@@ -29,7 +29,7 @@
 #include "SMDS_EdgePosition.hxx"
 #include "SMDS_FacePosition.hxx"
 #include "SMDS_Mesh.hxx"
-#include "SMESH_Gen_i.hxx"
+#include "SMDS_VolumeTool.hxx"
 #include "SMESHDS_Mesh.hxx"
 #include "SMESHGUI.h"
 #include "SMESHGUI_FilterUtils.h"
@@ -506,8 +506,9 @@ void SMESHGUI_MeshInfo::showInfo( SMESH::SMESH_IDSource_ptr obj )
     long nb2DLinear      = info[SMDSEntity_Triangle]        + info[SMDSEntity_Quadrangle] + info[SMDSEntity_Polygon];
     long nb2DQuadratic   = info[SMDSEntity_Quad_Triangle]   + info[SMDSEntity_Quad_Quadrangle];
     long nb2DBiQuadratic = info[SMDSEntity_BiQuad_Triangle] + info[SMDSEntity_BiQuad_Quadrangle];
+    long nb2DTotal       = nb2DLinear + nb2DQuadratic + nb2DBiQuadratic;
 
-    myWidgets[i2D][iTotal]                  ->setProperty( "text", QString::number( nb2DLinear + nb2DQuadratic ));
+    myWidgets[i2D][iTotal]                  ->setProperty( "text", QString::number( nb2DTotal ));
     myWidgets[i2D][iLinear]                 ->setProperty( "text", QString::number( nb2DLinear ) );
     myWidgets[i2D][iQuadratic]              ->setProperty( "text", QString::number( nb2DQuadratic ) );
     myWidgets[i2D][iBiQuadratic]            ->setProperty( "text", QString::number( nb2DBiQuadratic ) );
@@ -524,10 +525,11 @@ void SMESHGUI_MeshInfo::showInfo( SMESH::SMESH_IDSource_ptr obj )
     long nbHexahedrons   = info[SMDSEntity_Hexa]    + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_TriQuad_Hexa];
     long nbPyramids      = info[SMDSEntity_Pyramid] + info[SMDSEntity_Quad_Pyramid];
     long nbPrisms        = info[SMDSEntity_Penta]   + info[SMDSEntity_Quad_Penta];
-    long nb3DLinear      = info[SMDSEntity_Tetra]      + info[SMDSEntity_Hexa] + info[SMDSEntity_Pyramid] + info[SMDSEntity_Penta] + info[SMDSEntity_Polyhedra] + info[SMDSEntity_Hexagonal_Prism];
+    long nb3DLinear      = info[SMDSEntity_Tetra]   + info[SMDSEntity_Hexa] + info[SMDSEntity_Pyramid] + info[SMDSEntity_Penta] + info[SMDSEntity_Polyhedra] + info[SMDSEntity_Hexagonal_Prism];
     long nb3DQuadratic   = info[SMDSEntity_Quad_Tetra] + info[SMDSEntity_Quad_Hexa] + info[SMDSEntity_Quad_Pyramid] + info[SMDSEntity_Quad_Penta];
     long nb3DBiQuadratic = info[SMDSEntity_TriQuad_Hexa];
-    myWidgets[i3D][iTotal]                  ->setProperty( "text", QString::number( nb3DLinear + nb3DQuadratic ) );
+    long nb3DTotal       = nb3DLinear + nb3DQuadratic + nb3DBiQuadratic;
+    myWidgets[i3D][iTotal]                  ->setProperty( "text", QString::number( nb3DTotal ) );
     myWidgets[i3D][iLinear]                 ->setProperty( "text", QString::number( nb3DLinear ) );
     myWidgets[i3D][iQuadratic]              ->setProperty( "text", QString::number( nb3DQuadratic ) );
     myWidgets[i3D][iBiQuadratic]            ->setProperty( "text", QString::number( nb3DBiQuadratic ) );
@@ -546,7 +548,7 @@ void SMESHGUI_MeshInfo::showInfo( SMESH::SMESH_IDSource_ptr obj )
     myWidgets[i3DPrisms][iQuadratic]        ->setProperty( "text", QString::number( info[SMDSEntity_Quad_Penta] ) );
     myWidgets[i3DHexaPrisms][iTotal]        ->setProperty( "text", QString::number( info[SMDSEntity_Hexagonal_Prism] ) );
     myWidgets[i3DPolyhedrons][iTotal]       ->setProperty( "text", QString::number( info[SMDSEntity_Polyhedra] ) );
-    long nbElemTotal       = info[SMDSEntity_0D] + info[SMDSEntity_Ball] + nbEdges + nb2DLinear + nb2DQuadratic + nb2DBiQuadratic + nb3DLinear + nb3DQuadratic + nb3DBiQuadratic;
+    long nbElemTotal       = info[SMDSEntity_0D] + info[SMDSEntity_Ball] + nbEdges + nb2DTotal + nb3DTotal;
     long nbElemLinerial    = info[SMDSEntity_Edge] + nb2DLinear + nb3DLinear;
     long nbElemQuadratic   = info[SMDSEntity_Quad_Edge] + nb2DQuadratic + nb3DQuadratic;
     long nbElemBiQuadratic = nb2DBiQuadratic + nb3DBiQuadratic;
@@ -1855,17 +1857,17 @@ void SMESHGUI_TreeElemInfo::information( const QList<long>& ids )
           while ( nodeIt->more() )
             uniqueNodes.append( nodeIt->next() );
 
-          SMESH::SMESH_Mesh_ptr aMesh = actor()->GetObject()->GetMeshServer();
-          SMESH_Mesh_i* mesh_i = SMESH::DownCast< SMESH_Mesh_i* >( aMesh );
-          const int nbFaces = mesh_i->ElemNbFaces( e->GetID() );
-          for( int i = 0; i < nbFaces; i++ ) {
+          SMDS_VolumeTool vtool( e );
+          const int nbFaces = vtool.NbFaces();
+          for( int face_id = 0; face_id < nbFaces; face_id++ ) {
             QTreeWidgetItem* faceItem = createItem( conItem, Bold );
-            faceItem->setText( 0, QString( "%1 %2 / %3" ).arg( SMESHGUI_ElemInfo::tr( "FACE" ) ).arg( i + 1 ).arg( nbFaces ) );
-               faceItem->setExpanded( true );
+            faceItem->setText( 0, QString( "%1 %2 / %3" ).arg( SMESHGUI_ElemInfo::tr( "FACE" ) ).arg( face_id + 1 ).arg( nbFaces ) );
+            faceItem->setExpanded( true );
 
-               SMESH::long_array_var anNodeIds = mesh_i->GetElemFaceNodes( e->GetID(), i );
-               for( CORBA::Long node_id = 0, n = anNodeIds->length(); node_id < n; node_id++ ) {
-              const SMDS_MeshNode* node = actor()->GetObject()->GetMesh()->FindNode( anNodeIds[node_id] );
+            const SMDS_MeshNode** aNodeIds = vtool.GetFaceNodes( face_id );
+            const int nbNodes = vtool.NbFaceNodes( face_id );
+            for( int node_id = 0; node_id < nbNodes; node_id++ ) {
+              const SMDS_MeshNode* node = aNodeIds[node_id];
               nodeInfo( node, uniqueNodes.indexOf(node) + 1, aVtkVolume->NbUniqueNodes(), faceItem );
             }
           }
@@ -2081,40 +2083,40 @@ void SMESHGUI_TreeElemInfo::nodeInfo( const SMDS_MeshNode* node, int index,
   nconItem->setText( 0, SMESHGUI_ElemInfo::tr( "CONNECTIVITY" ) );
   Connectivity connectivity = nodeConnectivity( node );
   if ( !connectivity.isEmpty() ) {
-       QString con = formatConnectivity( connectivity, SMDSAbs_0DElement );
-       if ( !con.isEmpty() ) {
-         QTreeWidgetItem* i = createItem( nconItem );
-         i->setText( 0, SMESHGUI_ElemInfo::tr( "0D_ELEMENTS" ) );
-         i->setText( 1, con );
-       }
-       con = formatConnectivity( connectivity, SMDSAbs_Edge );
-       if ( !con.isEmpty() ) {
-         QTreeWidgetItem* i = createItem( nconItem );
-         i->setText( 0, SMESHGUI_ElemInfo::tr( "EDGES" ) );
-         i->setText( 1, con );
-         i->setData( 1, TypeRole, NodeConnectivity );
-       }
-       con = formatConnectivity( connectivity, SMDSAbs_Ball );
-       if ( !con.isEmpty() ) {
-         QTreeWidgetItem* i = createItem( nconItem );
-         i->setText( 0, SMESHGUI_ElemInfo::tr( "BALL_ELEMENTS" ) );
-         i->setText( 1, con );
-         i->setData( 1, TypeRole, NodeConnectivity );
-       }
-       con = formatConnectivity( connectivity, SMDSAbs_Face );
-       if ( !con.isEmpty() ) {
-                 QTreeWidgetItem* i = createItem( nconItem );
-         i->setText( 0, SMESHGUI_ElemInfo::tr( "FACES" ) );
-         i->setText( 1, con );
-         i->setData( 1, TypeRole, NodeConnectivity );
-       }
-       con = formatConnectivity( connectivity, SMDSAbs_Volume );
-       if ( !con.isEmpty() ) {
-         QTreeWidgetItem* i = createItem( nconItem );
-         i->setText( 0, SMESHGUI_ElemInfo::tr( "VOLUMES" ) );
-         i->setText( 1, con );
-         i->setData( 1, TypeRole, NodeConnectivity );
-       }
+    QString con = formatConnectivity( connectivity, SMDSAbs_0DElement );
+    if ( !con.isEmpty() ) {
+      QTreeWidgetItem* i = createItem( nconItem );
+      i->setText( 0, SMESHGUI_ElemInfo::tr( "0D_ELEMENTS" ) );
+      i->setText( 1, con );
+    }
+    con = formatConnectivity( connectivity, SMDSAbs_Edge );
+    if ( !con.isEmpty() ) {
+      QTreeWidgetItem* i = createItem( nconItem );
+      i->setText( 0, SMESHGUI_ElemInfo::tr( "EDGES" ) );
+      i->setText( 1, con );
+      i->setData( 1, TypeRole, NodeConnectivity );
+    }
+    con = formatConnectivity( connectivity, SMDSAbs_Ball );
+    if ( !con.isEmpty() ) {
+      QTreeWidgetItem* i = createItem( nconItem );
+      i->setText( 0, SMESHGUI_ElemInfo::tr( "BALL_ELEMENTS" ) );
+      i->setText( 1, con );
+      i->setData( 1, TypeRole, NodeConnectivity );
+    }
+    con = formatConnectivity( connectivity, SMDSAbs_Face );
+    if ( !con.isEmpty() ) {
+      QTreeWidgetItem* i = createItem( nconItem );
+      i->setText( 0, SMESHGUI_ElemInfo::tr( "FACES" ) );
+      i->setText( 1, con );
+      i->setData( 1, TypeRole, NodeConnectivity );
+    }
+    con = formatConnectivity( connectivity, SMDSAbs_Volume );
+    if ( !con.isEmpty() ) {
+      QTreeWidgetItem* i = createItem( nconItem );
+      i->setText( 0, SMESHGUI_ElemInfo::tr( "VOLUMES" ) );
+      i->setText( 1, con );
+      i->setData( 1, TypeRole, NodeConnectivity );
+    }
   }
 }
 /*!