X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_MeshInfo.cxx;h=3b90ce6d6f63c2368028d79a10d06011fbed40bf;hp=25ee42a9a2fed54b7a64af2d5f9e320c3e8ef57d;hb=1067ffa6e7e5c394e3a1b17219d8b355a57607cd;hpb=e6fb82fec115653b65edff9f5155d4e39bc13c6a diff --git a/src/SMESHGUI/SMESHGUI_MeshInfo.cxx b/src/SMESHGUI/SMESHGUI_MeshInfo.cxx index 25ee42a9a..3b90ce6d6 100644 --- a/src/SMESHGUI/SMESHGUI_MeshInfo.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshInfo.cxx @@ -34,6 +34,7 @@ #include "SMDS_BallElement.hxx" #include "SMDS_EdgePosition.hxx" #include "SMDS_FacePosition.hxx" +#include "SMESH_ControlsDef.hxx" #include #include @@ -886,6 +887,9 @@ void SMESHGUI_SimpleElemInfo::information( const QList& ids ) if ( actor() ) { int precision = SMESHGUI::resourceMgr()->integerValue( "SMESH", "length_precision", 6 ); + int cprecision = -1; + if ( SMESHGUI::resourceMgr()->booleanValue( "SMESH", "use_precision", false ) ) + cprecision = SMESHGUI::resourceMgr()->integerValue( "SMESH", "controls_precision", -1 ); foreach ( long id, ids ) { if ( !isElements() ) { // @@ -934,6 +938,7 @@ void SMESHGUI_SimpleElemInfo::information( const QList& ids ) // show element info // const SMDS_MeshElement* e = actor()->GetObject()->GetMesh()->FindElement( id ); + SMESH::Controls::NumericalFunctorPtr afunctor; if ( !e ) return; // element ID && type @@ -1040,6 +1045,84 @@ void SMESHGUI_SimpleElemInfo::information( const QList& ids ) myInfo->append( QString( "%1" ).arg( tr( "FREE_NODE" ) ).arg( id ) ); } } + // separator + myInfo->append( "" ); + //controls + myInfo->append( QString( "%1:" ).arg( tr( "MEN_CTRL" ) ) ); + //Length + if ( e->GetType() == SMDSAbs_Edge ) { + afunctor.reset( new SMESH::Controls::Length() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "LENGTH_EDGES" ) ).arg( afunctor->GetValue( id ) ) ); + } + if( e->GetType() == SMDSAbs_Face ) { + //Area + afunctor.reset( new SMESH::Controls::Area() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "AREA_ELEMENTS" ) ).arg( afunctor->GetValue( id ) ) ); + //Taper + afunctor.reset( new SMESH::Controls::Taper() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "MEN_TAPER" ) ).arg( afunctor->GetValue( id ) ) ); + //AspectRatio2D + afunctor.reset( new SMESH::Controls::AspectRatio() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "ASPECTRATIO_ELEMENTS" ) ).arg( afunctor->GetValue( id ) ) ); + //Minimum angle + afunctor.reset( new SMESH::Controls::MinimumAngle() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "MINIMUMANGLE_ELEMENTS" ) ).arg( afunctor->GetValue( id ) ) ); + //Wraping angle + afunctor.reset( new SMESH::Controls::Warping() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "STB_WARP" ) ).arg( afunctor->GetValue( id ) ) ); + //Skew + afunctor.reset( new SMESH::Controls::Skew() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "TOP_SKEW" ) ).arg( afunctor->GetValue( id ) ) ); + //ElemDiam2D + afunctor.reset( new SMESH::Controls::MaxElementLength2D() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "MAX_ELEMENT_LENGTH_2D" ) ).arg( afunctor->GetValue( id ) ) ); + } + if( e->GetType() == SMDSAbs_Volume ) { + //AspectRatio3D + afunctor.reset( new SMESH::Controls::AspectRatio3D() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "ASPECTRATIO_3D_ELEMENTS" ) ).arg( afunctor->GetValue( id ) ) ); + //Volume + afunctor.reset( new SMESH::Controls::Volume() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "MEN_VOLUME_3D" ) ).arg( afunctor->GetValue( id ) ) ); + //ElementDiameter3D + afunctor.reset( new SMESH::Controls::Volume() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + myInfo->append( QString( "- %1: %2" ).arg( tr( "MAX_ELEMENT_LENGTH_3D" ) ).arg( afunctor->GetValue( id ) ) ); + } + /* + if( e->GetType() >= SMDSAbs_Edge && e->GetType() <= SMDSAbs_Volume ) { + // separator + myInfo->append( "" ); + //shapeID + int shapeID = e->getshapeId(); + if ( shapeID > 0 ) { + QString shapeType; + switch ( actor()->GetObject()->GetMesh()->FindElement( shapeID )->GetType() ) { + case SMDS_TOP_EDGE: shapeType = tr( "EDGE" ); break; + case SMDS_TOP_FACE: shapeType = tr( "FACE" ); break; + case SMDS_TOP_VERTEX: shapeType = tr( "VERTEX" ); break; + default: shapeType = tr( "SOLID" ); + } + myInfo->append( QString( "%1: %2 #%3" ).arg( tr( "Position" ) ).arg( shapeType ).arg( shapeID ) ); + } + } + */ } // separator if ( ids.count() > 1 ) { @@ -1123,6 +1206,9 @@ void SMESHGUI_TreeElemInfo::information( const QList& ids ) if ( actor() ) { int precision = SMESHGUI::resourceMgr()->integerValue( "SMESH", "length_precision", 6 ); + int cprecision = -1; + if ( SMESHGUI::resourceMgr()->booleanValue( "SMESH", "use_precision", false ) ) + cprecision = SMESHGUI::resourceMgr()->integerValue( "SMESH", "controls_precision", -1 ); foreach ( long id, ids ) { if ( !isElements() ) { // @@ -1226,6 +1312,7 @@ void SMESHGUI_TreeElemInfo::information( const QList& ids ) // show element info // const SMDS_MeshElement* e = actor()->GetObject()->GetMesh()->FindElement( id ); + SMESH::Controls::NumericalFunctorPtr afunctor; if ( !e ) return; // element ID && type @@ -1373,6 +1460,105 @@ void SMESHGUI_TreeElemInfo::information( const QList& ids ) } } } + //Controls + QTreeWidgetItem* cntrItem = createItem( elemItem, Bold ); + cntrItem->setText( 0, tr( "MEN_CTRL" ) ); + //Length + if( e->GetType()==SMDSAbs_Edge){ + afunctor.reset( new SMESH::Controls::Length() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + QTreeWidgetItem* lenItem = createItem( cntrItem, Bold ); + lenItem->setText( 0, tr( "LENGTH_EDGES" ) ); + lenItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + } + if( e->GetType() == SMDSAbs_Face ) { + //Area + afunctor.reset( new SMESH::Controls::Area() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + QTreeWidgetItem* areaItem = createItem( cntrItem, Bold ); + areaItem->setText( 0, tr( "AREA_ELEMENTS" ) ); + areaItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue(id) ) ); + //Taper + afunctor.reset( new SMESH::Controls::Taper() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + QTreeWidgetItem* taperlItem = createItem( cntrItem, Bold ); + taperlItem->setText( 0, tr( "MEN_TAPER" ) ); + taperlItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + //AspectRatio2D + afunctor.reset( new SMESH::Controls::AspectRatio() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + QTreeWidgetItem* ratlItem = createItem( cntrItem, Bold ); + ratlItem->setText( 0, tr( "ASPECTRATIO_ELEMENTS" )); + ratlItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + //Minimum angle + afunctor.reset( new SMESH::Controls::MinimumAngle() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + QTreeWidgetItem* minanglItem = createItem( cntrItem, Bold ); + minanglItem->setText( 0, tr( "MINIMUMANGLE_ELEMENTS" ) ); + minanglItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + //Wraping angle + afunctor.reset( new SMESH::Controls::Warping() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + QTreeWidgetItem* warpItem = createItem( cntrItem, Bold ); + warpItem->setText( 0, tr( "STB_WARP" )); + warpItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + //Skew + afunctor.reset( new SMESH::Controls::Skew() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + afunctor->SetPrecision( cprecision ); + QTreeWidgetItem* skewItem = createItem( cntrItem, Bold ); + skewItem->setText( 0, tr( "TOP_SKEW" ) ); + skewItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + //ElemDiam2D + afunctor.reset( new SMESH::Controls::MaxElementLength2D() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + QTreeWidgetItem* diamItem = createItem( cntrItem, Bold ); + diamItem->setText( 0, tr( "MAX_ELEMENT_LENGTH_2D" )); + diamItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + } + if( e->GetType() == SMDSAbs_Volume ) { + //AspectRatio3D + afunctor.reset( new SMESH::Controls::AspectRatio3D() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + QTreeWidgetItem* ratlItem3 = createItem( cntrItem, Bold ); + ratlItem3->setText( 0, tr( "ASPECTRATIO_3D_ELEMENTS" ) ); + ratlItem3->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + //Volume + afunctor.reset( new SMESH::Controls::Volume() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + QTreeWidgetItem* volItem = createItem( cntrItem, Bold ); + volItem->setText( 0, tr( "MEN_VOLUME_3D" ) ); + volItem->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + //ElementDiameter3D + afunctor.reset( new SMESH::Controls::MaxElementLength3D() ); + afunctor->SetMesh( actor()->GetObject()->GetMesh() ); + QTreeWidgetItem* diam3Item = createItem( cntrItem, Bold ); + diam3Item->setText( 0, tr( "MAX_ELEMENT_LENGTH_3D" ) ); + diam3Item->setText( 1, QString( "%1" ).arg( afunctor->GetValue( id ) ) ); + } + /* + if( e->GetType() >= SMDSAbs_Edge && e->GetType() <= SMDSAbs_Volume ) { + //shapeID + int shapeID = e->getshapeId(); + if ( shapeID > 0 ) { + QTreeWidgetItem* shItem = createItem( elemItem, Bold ); + QString shapeType; + switch ( actor()->GetObject()->GetMesh()->FindElement( shapeID )->GetType() ) { + case SMDS_TOP_EDGE: shapeType = tr( "EDGE" ); break; + case SMDS_TOP_FACE: shapeType = tr( "FACE" ); break; + case SMDS_TOP_VERTEX: shapeType = tr( "VERTEX" ); break; + default: shapeType = tr( "SOLID" ); + } + shItem->setText( 0, tr( "Position" ) ); + shItem->setText( 1, QString( "%1 #%2" ).arg(shapeType).arg( shapeID ) ); + } + } + */ } } }