mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-02-05 00:24:17 +05:00
0023198: EDF 8842 - Management of additional hypothesis
This commit is contained in:
parent
59627b07d7
commit
537bc67863
@ -1500,31 +1500,22 @@ void SMESHGUI_MeshOp::onAlgoSelected( const int theIndex,
|
|||||||
// check that tab enabled of one less dimension
|
// check that tab enabled of one less dimension
|
||||||
if ( aDim > SMESH::DIM_0D )
|
if ( aDim > SMESH::DIM_0D )
|
||||||
{
|
{
|
||||||
if ( isAccessibleDim( aDim - 1 ) ) {
|
if ( myIsOnGeometry ) {
|
||||||
if ( algoData && myIsOnGeometry ) {
|
QString anCompareType = currentMeshTypeName(myDlg->currentMeshType());
|
||||||
for (int i = aDim - 1; i >= SMESH::DIM_0D; i--) {
|
bool is2dtype = ( anCompareType == "QUAD" ) || ( anCompareType == "TRIA" );
|
||||||
if ( isAccessibleDim( i ) && ( currentHyp( i, Algo ) < 0 ||
|
int dim = is2dtype ? SMESH::DIM_2D : SMESH::DIM_3D;
|
||||||
algoData->InputTypes.isEmpty() ) ) {
|
for (int i = dim; i >= SMESH::DIM_0D; i--) {
|
||||||
|
if ( i != aDim ) {
|
||||||
|
if ( algoData && algoData->InputTypes.isEmpty() ) {
|
||||||
myDlg->disableTab( i );
|
myDlg->disableTab( i );
|
||||||
setCurrentHyp(i, Algo, -1);
|
setCurrentHyp(i, Algo, -1);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
myDlg->enableTab( i );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( algoData && myIsOnGeometry && !algoData->InputTypes.isEmpty() ) {
|
|
||||||
myDlg->enableTab( aDim - 1 );
|
|
||||||
}
|
|
||||||
if ( !algoData ) {
|
|
||||||
if ( aDim != SMESH::DIM_2D || ( aDim == SMESH::DIM_2D &&
|
|
||||||
currentHyp( SMESH::DIM_2D, Algo ) < 0) ) {
|
|
||||||
for (int i = aDim - 1; i >= SMESH::DIM_0D; i--)
|
|
||||||
myDlg->enableTab( i );
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
for (int i = aDim - 1; i >= SMESH::DIM_0D; i--)
|
|
||||||
myDlg->disableTab( i );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int algoDim = aDim;
|
int algoDim = aDim;
|
||||||
@ -2263,6 +2254,9 @@ void SMESHGUI_MeshOp::readMesh()
|
|||||||
{
|
{
|
||||||
// get hypotheses
|
// get hypotheses
|
||||||
existingHyps( dim, hypType, pObj, anExisting, myObjHyps[ dim ][ hypType ] );
|
existingHyps( dim, hypType, pObj, anExisting, myObjHyps[ dim ][ hypType ] );
|
||||||
|
if ( myObjHyps[ dim ][ hypType ].count() == 0 ) {
|
||||||
|
setCurrentHyp( dim, hypType, -1 );
|
||||||
|
}
|
||||||
for ( int i = 0, nb = myObjHyps[ dim ][ hypType ].count(); i < nb; ++i )
|
for ( int i = 0, nb = myObjHyps[ dim ][ hypType ].count(); i < nb; ++i )
|
||||||
{
|
{
|
||||||
// find index of required hypothesis among existing ones for this dimension and type
|
// find index of required hypothesis among existing ones for this dimension and type
|
||||||
@ -2702,8 +2696,6 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
|
|||||||
setCurrentHyp( dim, Algo, anCurrentAvailableAlgo );
|
setCurrentHyp( dim, Algo, anCurrentAvailableAlgo );
|
||||||
if ( anCurrentAvailableAlgo > -1 )
|
if ( anCurrentAvailableAlgo > -1 )
|
||||||
isReqDisBound = algoCur->InputTypes.isEmpty();
|
isReqDisBound = algoCur->InputTypes.isEmpty();
|
||||||
else if ( dim != SMESH::DIM_3D && currentHyp( SMESH::DIM_3D, Algo ) >= 0 )
|
|
||||||
isReqDisBound = true;
|
|
||||||
if ( isReqDisBound ) {
|
if ( isReqDisBound ) {
|
||||||
aReqDim = dim;
|
aReqDim = dim;
|
||||||
break;
|
break;
|
||||||
@ -2716,8 +2708,8 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
for ( int i = SMESH::DIM_0D; i <= SMESH::DIM_3D; i++ ) {
|
for ( int i = SMESH::DIM_0D; i <= SMESH::DIM_3D; i++ ) {
|
||||||
if ( i > myMaxShapeDim || ( isReqDisBound && i < aReqDim ) ) myDlg->disableTab( i );
|
if ( i > myMaxShapeDim || ( isReqDisBound && i != aReqDim ) ) myDlg->disableTab( i );
|
||||||
else myDlg->enableTab( i );
|
else myDlg->enableTab( i );
|
||||||
}
|
}
|
||||||
myDlg->setCurrentTab( theTabIndex );
|
myDlg->setCurrentTab( theTabIndex );
|
||||||
}
|
}
|
||||||
@ -2754,40 +2746,28 @@ void SMESHGUI_MeshOp::setFilteredAlgoData( const int theTabIndex, const int theI
|
|||||||
setCurrentHyp( dim, Algo, anCurrentAvailableAlgo );
|
setCurrentHyp( dim, Algo, anCurrentAvailableAlgo );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( isNone || isReqDisBound ) {
|
if ( aDim == SMESH::DIM_2D) {
|
||||||
for ( int i = SMESH::DIM_0D; i <= myMaxShapeDim; i++ ) {
|
myDlg->disableTab( SMESH::DIM_3D );
|
||||||
if ( aDim != i ) {
|
setCurrentHyp( SMESH::DIM_3D, Algo, -1);
|
||||||
myDlg->disableTab( i );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if ( !isNone ) {
|
for ( int i = myMaxShapeDim; i > SMESH::DIM_0D; i-- ) {
|
||||||
if ( aDim == SMESH::DIM_2D) {
|
bool isNoneAlg = currentHyp( i, Algo ) < 0;
|
||||||
myDlg->disableTab( SMESH::DIM_3D );
|
if ( !isNoneAlg )
|
||||||
setCurrentHyp( SMESH::DIM_3D, Algo, -1);
|
isReqDisBound = myAvailableHypData[i][Algo].at( currentHyp( i, Algo ) )->InputTypes.isEmpty();
|
||||||
}
|
else
|
||||||
for ( int i = myMaxShapeDim; i > SMESH::DIM_0D; i-- ) {
|
isReqDisBound = true;
|
||||||
bool isNoneAlg = currentHyp( i, Algo ) < 0;
|
if ( isReqDisBound && !isNoneAlg) {
|
||||||
if ( !isNoneAlg )
|
for (int j = i; j >= SMESH::DIM_0D; j--) {
|
||||||
isReqDisBound = myAvailableHypData[i][Algo].at( currentHyp( i, Algo ) )->InputTypes.isEmpty();
|
if ( currentHyp( j, Algo ) < 0 ) {
|
||||||
else
|
myDlg->disableTab( j );
|
||||||
isReqDisBound = true;
|
setCurrentHyp( j , Algo, -1 );
|
||||||
if ( isReqDisBound && isNoneAlg ) {
|
|
||||||
for (int j = i - 1; j >= SMESH::DIM_0D; j--) {
|
|
||||||
if ( j < aDim && currentHyp( j+1, Algo ) < 0 ) {
|
|
||||||
myDlg->disableTab( j );
|
|
||||||
setCurrentHyp( j , Algo, -1 );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if ( isNoneAlg ) {
|
|
||||||
myDlg->disableTab( i );
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
myDlg->enableTab( aDim );
|
int currentTab = ( theTabIndex <= aDim ) ? theTabIndex : aDim;
|
||||||
myDlg->setCurrentTab( aDim );
|
myDlg->setCurrentTab( currentTab );
|
||||||
}
|
}
|
||||||
THypDataList anAvailableAlgsData;
|
THypDataList anAvailableAlgsData;
|
||||||
QStringList aHypothesesSetsList = SMESH::GetHypothesesSets( aDim );
|
QStringList aHypothesesSetsList = SMESH::GetHypothesesSets( aDim );
|
||||||
|
Loading…
Reference in New Issue
Block a user