#17845 [EDF] Modifications of Automatic meshing

1) Make "Free Hexahedralization" unavailable if NETGEN preferred over MeshGems
2) BUG: Hyposets do work only with English language
This commit is contained in:
eap 2019-11-06 15:11:26 +03:00
parent 4cb88409b2
commit 24a67a7033
4 changed files with 19 additions and 3 deletions

View File

@ -608,6 +608,8 @@
quad-dominated="true" quad-dominated="true"
hypos="MG-CADSurf Parameters" hypos="MG-CADSurf Parameters"
algos="MG-CADSurf, MG-Hexa" algos="MG-CADSurf, MG-Hexa"
alt-hypos="None"
alt-algos="None"
intern-edge-hypos="LocalLength" intern-edge-hypos="LocalLength"
intern-edge-algos="Regular_1D"/> intern-edge-algos="Regular_1D"/>

View File

@ -229,6 +229,7 @@ public:
QString name() const; QString name() const;
bool toUseCommonSize() const { return myUseCommonSize; } bool toUseCommonSize() const { return myUseCommonSize; }
bool isQuadDominated() const { return myQuadDominated; } bool isQuadDominated() const { return myQuadDominated; }
bool hasAlgo( SetType type ) const { return !myAlgoList[ type ].isEmpty(); }
//int count( bool, SetType ) const; //int count( bool, SetType ) const;
int maxDim() const; int maxDim() const;

View File

@ -744,8 +744,11 @@ void SMESHGUI_MeshDlg::setHypoSets( const QStringList& theSets )
myHypoSetButton->setPopupMode( QToolButton::InstantPopup ); myHypoSetButton->setPopupMode( QToolButton::InstantPopup );
} }
aHypoSetPopup->clear(); aHypoSetPopup->clear();
for ( int i = 0, n = theSets.count(); i < n; i++ ) { for ( int i = 0, n = theSets.count(); i < n; i++ )
aHypoSetPopup->addAction( tr( theSets[ i ].toUtf8().data() )); {
QAction* action = new QAction( tr( theSets[ i ].toUtf8().data() ));
action->setData( theSets[ i ] );
aHypoSetPopup->addAction( action );
} }
myHypoSetButton->setEnabled( !aHypoSetPopup->isEmpty() ); myHypoSetButton->setEnabled( !aHypoSetPopup->isEmpty() );
} }
@ -760,7 +763,7 @@ void SMESHGUI_MeshDlg::setHypoSets( const QStringList& theSets )
//================================================================================ //================================================================================
void SMESHGUI_MeshDlg::onHypoSetPopup( QAction* a ) void SMESHGUI_MeshDlg::onHypoSetPopup( QAction* a )
{ {
emit hypoSet( a->text() ); emit hypoSet( a->data().toString() );
} }
//================================================================================ //================================================================================

View File

@ -2946,9 +2946,19 @@ void SMESHGUI_MeshOp::updateHypoSets()
} }
currentHypoSet->setAlgoAvailable( sType, isAvailable ); currentHypoSet->setAlgoAvailable( sType, isAvailable );
} }
if ( currentHypoSet->hasAlgo( HypothesesSet::MAIN ) &&
currentHypoSet->hasAlgo( HypothesesSet::ALT ))
{
HypothesesSet::SetType setType = HypothesesSet::getPreferredHypType();
if ( !currentHypoSet->getAlgoAvailable( setType ))
continue; // not add if a preferred type not available currently
}
if ( currentHypoSet->getAlgoAvailable( HypothesesSet::MAIN ) || if ( currentHypoSet->getAlgoAvailable( HypothesesSet::MAIN ) ||
currentHypoSet->getAlgoAvailable( HypothesesSet::ALT )) currentHypoSet->getAlgoAvailable( HypothesesSet::ALT ))
{
aFilteredHypothesesSetsList.append( *inHypoSetName ); aFilteredHypothesesSetsList.append( *inHypoSetName );
}
} }
myDlg->setHypoSets( aFilteredHypothesesSetsList ); myDlg->setHypoSets( aFilteredHypothesesSetsList );
} }