Fix regressions

smesh/viscous_layers_00/A3
smesh/3D_mesh_GHS3D_01/B1
This commit is contained in:
eap 2017-03-16 17:57:38 +03:00
parent 88d37b48bd
commit 7dbb2914d9
3 changed files with 15 additions and 10 deletions

View File

@ -4605,9 +4605,9 @@ void SMESHGUI::initialize( CAM_Application* app )
// Controls // Controls
//------------------------------------------------- //-------------------------------------------------
QString QString
aMeshInVtkHasNodes = aMeshInVTK + "&&" + hasNodes, aMeshInVtkHasNodes = aMeshInVTK + "&&" + hasNodes,
aMeshInVtkHasEdges = aMeshInVTK + "&&" + hasEdges, aMeshInVtkHasEdges = aMeshInVTK + "&&" + hasEdges,
aMeshInVtkHasFaces = aMeshInVTK + "&&" + hasFaces, aMeshInVtkHasFaces = aMeshInVTK + "&&" + hasFaces,
aMeshInVtkHasVolumes = aMeshInVTK + "&&" + hasVolumes; aMeshInVtkHasVolumes = aMeshInVTK + "&&" + hasVolumes;
anId = popupMgr()->insert( tr( "MEN_CTRL" ), -1, -1 ); anId = popupMgr()->insert( tr( "MEN_CTRL" ), -1, -1 );

View File

@ -135,7 +135,7 @@ SMESHGUI_BuildCompoundDlg::SMESHGUI_BuildCompoundDlg( SMESHGUI* theModule )
CheckBoxMerge = new QCheckBox(tr("MERGE_NODES_AND_ELEMENTS"), GroupArgs); CheckBoxMerge = new QCheckBox(tr("MERGE_NODES_AND_ELEMENTS"), GroupArgs);
TextLabelTol = new QLabel(tr("SMESH_TOLERANCE"), GroupArgs); TextLabelTol = new QLabel(tr("SMESH_TOLERANCE"), GroupArgs);
TextLabelTol->setAlignment(Qt::AlignCenter); //TextLabelTol->setAlignment(Qt::AlignCenter);
SpinBoxTol = new SMESHGUI_SpinBox(GroupArgs); SpinBoxTol = new SMESHGUI_SpinBox(GroupArgs);
SpinBoxTol->RangeStepAndValidator(0.0, COORD_MAX, 0.00001, "len_tol_precision" ); SpinBoxTol->RangeStepAndValidator(0.0, COORD_MAX, 0.00001, "len_tol_precision" );
@ -146,8 +146,8 @@ SMESHGUI_BuildCompoundDlg::SMESHGUI_BuildCompoundDlg( SMESHGUI* theModule )
GroupArgsLayout->addWidget(ComboBoxUnion, 1, 3); GroupArgsLayout->addWidget(ComboBoxUnion, 1, 3);
GroupArgsLayout->addWidget(CheckBoxCommon, 2, 0, 1, 4); GroupArgsLayout->addWidget(CheckBoxCommon, 2, 0, 1, 4);
GroupArgsLayout->addWidget(CheckBoxMerge, 3, 0, 1, 4); GroupArgsLayout->addWidget(CheckBoxMerge, 3, 0, 1, 4);
GroupArgsLayout->addWidget(TextLabelTol, 4, 0, 1, 2); GroupArgsLayout->addWidget(TextLabelTol, 4, 0);
GroupArgsLayout->addWidget(SpinBoxTol, 4, 2, 1, 2); GroupArgsLayout->addWidget(SpinBoxTol, 4, 1, 1, 3);
/***************************************************************/ /***************************************************************/
GroupButtons = new QGroupBox(this); GroupButtons = new QGroupBox(this);
@ -289,6 +289,8 @@ bool SMESHGUI_BuildCompoundDlg::ClickOnApply()
if (!isValid()) if (!isValid())
return false; return false;
SUIT_OverrideCursor aWaitCursor;
SMESH::SMESH_Mesh_var aMesh; SMESH::SMESH_Mesh_var aMesh;
if (!myMesh->_is_nil()) if (!myMesh->_is_nil())
@ -298,7 +300,6 @@ bool SMESHGUI_BuildCompoundDlg::ClickOnApply()
QStringList anEntryList; QStringList anEntryList;
try { try {
SUIT_OverrideCursor aWaitCursor;
aMesh = myMeshArray[0]->GetMesh(); aMesh = myMeshArray[0]->GetMesh();
aMesh->SetParameters( aParameters.join(":").toLatin1().constData() ); aMesh->SetParameters( aParameters.join(":").toLatin1().constData() );

View File

@ -1865,15 +1865,19 @@ SMESH_ComputeErrorPtr _ViscousBuilder::Compute(SMESH_Mesh& theMesh,
size_t iSD = 0; size_t iSD = 0;
for ( iSD = 0; iSD < _sdVec.size(); ++iSD ) // find next SOLID to compute for ( iSD = 0; iSD < _sdVec.size(); ++iSD ) // find next SOLID to compute
if ( _sdVec[iSD]._before.IsEmpty() && if ( _sdVec[iSD]._before.IsEmpty() &&
!_sdVec[iSD]._solid.IsNull() &&
_sdVec[iSD]._n2eMap.empty() ) _sdVec[iSD]._n2eMap.empty() )
break; break;
if ( ! makeLayer(_sdVec[iSD]) ) // create _LayerEdge's if ( ! makeLayer(_sdVec[iSD]) ) // create _LayerEdge's
return _error; return _error;
if ( _sdVec[iSD]._n2eMap.size() == 0 ) if ( _sdVec[iSD]._n2eMap.size() == 0 ) // no layers in a SOLID
{
_sdVec[iSD]._solid.Nullify();
continue; continue;
}
if ( ! inflate(_sdVec[iSD]) ) // increase length of _LayerEdge's if ( ! inflate(_sdVec[iSD]) ) // increase length of _LayerEdge's
return _error; return _error;
@ -9049,7 +9053,7 @@ void _LayerEdge::Block( _SolidData& data )
minDist = Min( pSrc.SquareDistance( pTgtN ), minDist ); minDist = Min( pSrc.SquareDistance( pTgtN ), minDist );
minDist = Min( pTgt.SquareDistance( pSrcN ), minDist ); minDist = Min( pTgt.SquareDistance( pSrcN ), minDist );
double newMaxLen = edge->_maxLen + 0.5 * Sqrt( minDist ); double newMaxLen = edge->_maxLen + 0.5 * Sqrt( minDist );
if ( edge->_nodes[0]->getshapeId() == neibor->_nodes[0]->getshapeId() ) //if ( edge->_nodes[0]->getshapeId() == neibor->_nodes[0]->getshapeId() ) viscous_layers_00/A3
{ {
newMaxLen *= edge->_lenFactor / neibor->_lenFactor; newMaxLen *= edge->_lenFactor / neibor->_lenFactor;
} }