+// =========================================================================================
+/*!
+ * \brief Box showing mesh info
+ */
+// =========================================================================================
+
+SMESHGUI_MeshInfosBox::SMESHGUI_MeshInfosBox(const bool full, QWidget* theParent)
+ :QGroupBox( 4, Qt::Horizontal, tr("SMESH_MESHINFO_TITLE"), theParent ), myFull( full )
+{
+ // title
+ QLabel* lab1 = new QLabel(this);
+ QLabel* lab2 = new QLabel(tr("SMESH_MESHINFO_ORDER0"), this );
+ QLabel* lab3 = new QLabel(tr("SMESH_MESHINFO_ORDER1"), this );
+ QLabel* lab4 = new QLabel(tr("SMESH_MESHINFO_ORDER2"), this );
+
+ QFont italic = lab1->font(); italic.setItalic(true);
+ QFont bold = lab1->font(); bold.setBold(true);
+
+ lab1->setMinimumWidth(100); lab1->setFont( italic );
+ lab2->setMinimumWidth(100); lab2->setFont( italic );
+ lab3->setMinimumWidth(100); lab3->setFont( italic );
+ lab4->setMinimumWidth(100); lab4->setFont( italic );
+
+ if ( myFull )
+ {
+ // nodes
+ (new QLabel(COLONIZE(tr("SMESH_MESHINFO_NODES")), this ))->setFont( bold );
+ myNbNode = new QLabel( this );
+ new QLabel(this);
+ new QLabel(this);
+
+ _SEPARATOR(this);
+
+ // edges
+ (new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), this ))->setFont( bold );
+ myNbEdge = new QLabel( this );
+ myNbLinEdge = new QLabel( this );
+ myNbQuadEdge = new QLabel( this );
+
+ _SEPARATOR(this);
+
+ // faces
+ (new QLabel(COLONIZE(tr("SMESH_MESHINFO_FACES")), this))->setFont( bold );
+ myNbFace = new QLabel( this );
+ myNbLinFace = new QLabel( this );
+ myNbQuadFace = new QLabel( this );
+ // triangles
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_TRIANGLES")), this );
+ myNbTrai = new QLabel( this );
+ myNbLinTrai = new QLabel( this );
+ myNbQuadTrai = new QLabel( this );
+ // quadrangles
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_QUADRANGLES")), this );
+ myNbQuad = new QLabel( this );
+ myNbLinQuad = new QLabel( this );
+ myNbQuadQuad = new QLabel( this );
+ // poligones
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_POLYGONES")), this );
+ myNbPolyg = new QLabel( this );
+ new QLabel("",this );
+ new QLabel("", this );
+
+ _SEPARATOR(this);
+
+ // volumes
+ (new QLabel(COLONIZE(tr("SMESH_MESHINFO_VOLUMES")), this))->setFont( bold );
+ myNbVolum = new QLabel( this );
+ myNbLinVolum = new QLabel( this );
+ myNbQuadVolum = new QLabel( this );
+ // tetras
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_TETRAS")), this );
+ myNbTetra = new QLabel( this );
+ myNbLinTetra = new QLabel( this );
+ myNbQuadTetra = new QLabel( this );
+ // hexas
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_HEXAS")), this );
+ myNbHexa = new QLabel( this );
+ myNbLinHexa = new QLabel( this );
+ myNbQuadHexa = new QLabel( this );
+ // pyras
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_PYRAS")), this );
+ myNbPyra = new QLabel( this );
+ myNbLinPyra = new QLabel( this );
+ myNbQuadPyra = new QLabel( this );
+ // prisms
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_PRISMS")), this );
+ myNbPrism = new QLabel( this );
+ myNbLinPrism = new QLabel( this );
+ myNbQuadPrism = new QLabel( this );
+ // polyedres
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_POLYEDRES")), this );
+ myNbPolyh = new QLabel( this );
+ new QLabel("", this );
+ new QLabel("", this );
+ }
+ else
+ {
+ // nodes
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_NODES")), this );
+ myNbNode = new QLabel( this );
+ new QLabel(this);
+ new QLabel(this);
+
+ // edges
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_EDGES")), this );
+ myNbEdge = new QLabel( this );
+ myNbLinEdge = new QLabel( this );
+ myNbQuadEdge = new QLabel( this );
+
+ // faces
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_FACES")), this);
+ myNbFace = new QLabel( this );
+ myNbLinFace = new QLabel( this );
+ myNbQuadFace = new QLabel( this );
+
+ // volumes
+ new QLabel(COLONIZE(tr("SMESH_MESHINFO_VOLUMES")), this);
+ myNbVolum = new QLabel( this );
+ myNbLinVolum = new QLabel( this );
+ myNbQuadVolum = new QLabel( this );
+ }
+}
+
+// =========================================================================================
+/*!
+ * \brief Set mesh info
+ */
+// =========================================================================================
+
+void SMESHGUI_MeshInfosBox::SetInfoByMesh(SMESH::SMESH_Mesh_var mesh)
+{
+ const SMESH::ElementOrder lin = SMESH::ORDER_LINEAR;
+ int nbTot, nbLin;
+
+ // nodes
+ myNbNode ->setText( QString("%1").arg( mesh->NbNodes() ));
+
+ // edges
+ nbTot = mesh->NbEdges(), nbLin = mesh->NbEdgesOfOrder(lin);
+ myNbEdge ->setText( QString("%1").arg( nbTot ));
+ myNbLinEdge ->setText( QString("%1").arg( nbLin ));
+ myNbQuadEdge ->setText( QString("%1").arg( nbTot - nbLin ));
+
+ // faces
+ nbTot = mesh->NbFaces(), nbLin = mesh->NbFacesOfOrder(lin);
+ myNbFace ->setText( QString("%1").arg( nbTot ));
+ myNbLinFace ->setText( QString("%1").arg( nbLin ));
+ myNbQuadFace ->setText( QString("%1").arg( nbTot - nbLin ));
+
+ // volumes
+ nbTot = mesh->NbVolumes(), nbLin = mesh->NbVolumesOfOrder(lin);
+ myNbVolum ->setText( QString("%1").arg( nbTot ));
+ myNbLinVolum ->setText( QString("%1").arg( nbLin ));
+ myNbQuadVolum->setText( QString("%1").arg( nbTot - nbLin ));
+
+ if ( myFull )
+ {
+ // triangles
+ nbTot = mesh->NbTriangles(), nbLin = mesh->NbTrianglesOfOrder(lin);
+ myNbTrai ->setText( QString("%1").arg( nbTot ));
+ myNbLinTrai ->setText( QString("%1").arg( nbLin ));
+ myNbQuadTrai ->setText( QString("%1").arg( nbTot - nbLin ));
+ // quadrangles
+ nbTot = mesh->NbQuadrangles(), nbLin = mesh->NbQuadranglesOfOrder(lin);
+ myNbQuad ->setText( QString("%1").arg( nbTot ));
+ myNbLinQuad ->setText( QString("%1").arg( nbLin ));
+ myNbQuadQuad ->setText( QString("%1").arg( nbTot - nbLin ));
+ // poligones
+ myNbPolyg ->setText( QString("%1").arg( mesh->NbPolygons() ));
+
+ // tetras
+ nbTot = mesh->NbTetras(), nbLin = mesh->NbTetrasOfOrder(lin);
+ myNbTetra ->setText( QString("%1").arg( nbTot ));
+ myNbLinTetra ->setText( QString("%1").arg( nbLin ));
+ myNbQuadTetra->setText( QString("%1").arg( nbTot - nbLin ));
+ // hexas
+ nbTot = mesh->NbHexas(), nbLin = mesh->NbHexasOfOrder(lin);
+ myNbHexa ->setText( QString("%1").arg( nbTot ));
+ myNbLinHexa ->setText( QString("%1").arg( nbLin ));
+ myNbQuadHexa ->setText( QString("%1").arg( nbTot - nbLin ));
+ // pyras
+ nbTot = mesh->NbPyramids(), nbLin = mesh->NbPyramidsOfOrder(lin);
+ myNbPyra ->setText( QString("%1").arg( nbTot ));
+ myNbLinPyra ->setText( QString("%1").arg( nbLin ));
+ myNbQuadPyra ->setText( QString("%1").arg( nbTot - nbLin ));
+ // prisms
+ nbTot = mesh->NbPrisms(), nbLin = mesh->NbPrismsOfOrder(lin);
+ myNbPrism ->setText( QString("%1").arg( nbTot ));
+ myNbLinPrism ->setText( QString("%1").arg( nbLin ));
+ myNbQuadPrism->setText( QString("%1").arg( nbTot - nbLin ));
+ // polyedres
+ myNbPolyh ->setText( QString("%1").arg( mesh->NbPolyhedrons() ));
+ }
+}
+