#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"
hypos="MG-CADSurf Parameters"
algos="MG-CADSurf, MG-Hexa"
alt-hypos="None"
alt-algos="None"
intern-edge-hypos="LocalLength"
intern-edge-algos="Regular_1D"/>

View File

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

View File

@ -744,8 +744,11 @@ void SMESHGUI_MeshDlg::setHypoSets( const QStringList& theSets )
myHypoSetButton->setPopupMode( QToolButton::InstantPopup );
}
aHypoSetPopup->clear();
for ( int i = 0, n = theSets.count(); i < n; i++ ) {
aHypoSetPopup->addAction( tr( theSets[ i ].toUtf8().data() ));
for ( int i = 0, n = theSets.count(); i < n; i++ )
{
QAction* action = new QAction( tr( theSets[ i ].toUtf8().data() ));
action->setData( theSets[ i ] );
aHypoSetPopup->addAction( action );
}
myHypoSetButton->setEnabled( !aHypoSetPopup->isEmpty() );
}
@ -760,7 +763,7 @@ void SMESHGUI_MeshDlg::setHypoSets( const QStringList& theSets )
//================================================================================
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 );
}
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 ) ||
currentHypoSet->getAlgoAvailable( HypothesesSet::ALT ))
{
aFilteredHypothesesSetsList.append( *inHypoSetName );
}
}
myDlg->setHypoSets( aFilteredHypothesesSetsList );
}