mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-04 14:40:33 +05:00
INT PAL 0052727: Fitering algorithms according to geometry does not work in Create mesh dialog
This commit is contained in:
parent
bd364729a6
commit
b1b19cbc01
@ -1496,14 +1496,20 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
|
|||||||
if ( anAvailable.count() == 1 )
|
if ( anAvailable.count() == 1 )
|
||||||
soleCompatible = myAvailableHypData[dim][Algo][0];
|
soleCompatible = myAvailableHypData[dim][Algo][0];
|
||||||
if ( dim == aTopDim && prevAlgo ) {// all available algoritms should be selectable any way
|
if ( dim == aTopDim && prevAlgo ) {// all available algoritms should be selectable any way
|
||||||
if (myDlg->currentMeshType() == MT_ANY)
|
anAvailable.clear();
|
||||||
availableHyps( dim, Algo, anAvailable, myAvailableHypData[dim][Algo], 0 );
|
for (int i = 0; i < myFilteredAlgoData[dim].count(); ++i) {
|
||||||
|
HypothesisData* aCurAlgo = myFilteredAlgoData[dim][ i ];
|
||||||
|
anAvailable.append( aCurAlgo->Label );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
|
myDlg->tab( dim )->setAvailableHyps( Algo, anAvailable );
|
||||||
noCompatible = anAvailable.isEmpty();
|
noCompatible = anAvailable.isEmpty();
|
||||||
|
|
||||||
// restore previously selected algo
|
// restore previously selected algo
|
||||||
algoIndex = myAvailableHypData[dim][Algo].indexOf( curAlgo );
|
if (dim == aTopDim && prevAlgo)
|
||||||
|
algoIndex = myFilteredAlgoData[dim].indexOf( curAlgo );
|
||||||
|
else
|
||||||
|
algoIndex = myAvailableHypData[dim][Algo].indexOf( curAlgo );
|
||||||
if ( !isSubmesh && algoIndex < 0 && soleCompatible && !forward && dim != SMESH::DIM_0D)
|
if ( !isSubmesh && algoIndex < 0 && soleCompatible && !forward && dim != SMESH::DIM_0D)
|
||||||
// select the sole compatible algo
|
// select the sole compatible algo
|
||||||
algoIndex = myAvailableHypData[dim][Algo].indexOf( soleCompatible );
|
algoIndex = myAvailableHypData[dim][Algo].indexOf( soleCompatible );
|
||||||
@ -2646,6 +2652,7 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
|
|||||||
algoCur = myAvailableHypData[dim][Algo].at( currentHyp( dim, Algo ) );
|
algoCur = myAvailableHypData[dim][Algo].at( currentHyp( dim, Algo ) );
|
||||||
}
|
}
|
||||||
myAvailableHypData[dim][Algo].clear();
|
myAvailableHypData[dim][Algo].clear();
|
||||||
|
myFilteredAlgoData[dim].clear();
|
||||||
anAvailableAlgs.clear();
|
anAvailableAlgs.clear();
|
||||||
if ( dim != SMESH::DIM_2D || currentHyp( SMESH::DIM_3D, Algo ) < 0 ||
|
if ( dim != SMESH::DIM_2D || currentHyp( SMESH::DIM_3D, Algo ) < 0 ||
|
||||||
myAvailableHypData[SMESH::DIM_3D][Algo].empty() ||
|
myAvailableHypData[SMESH::DIM_3D][Algo].empty() ||
|
||||||
@ -2659,6 +2666,7 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
|
|||||||
{
|
{
|
||||||
anAvailableAlgs.append( curAlgo->Label );
|
anAvailableAlgs.append( curAlgo->Label );
|
||||||
myAvailableHypData[dim][Algo].append( curAlgo );
|
myAvailableHypData[dim][Algo].append( curAlgo );
|
||||||
|
myFilteredAlgoData[dim].append( curAlgo );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !isNone && algoCur ) {
|
if ( !isNone && algoCur ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user