mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 18:30:35 +05:00
[SALOME platform 0013410]: SubMesh not taken into account with Netgen 1D-2D et 1D-2D-3D
//================================================================================ /*! + * \brief Return name of the algorithm that does not support submeshes and makes + * submesh creation useless + * \retval char* - string is to be deleted!!! + */ +//================================================================================ + +char* SMESHGUI_MeshOp::isSubmeshIgnored() const
This commit is contained in:
parent
4beda885d0
commit
c9179d6bde
@ -334,10 +334,57 @@ bool SMESHGUI_MeshOp::isSubshapeOk() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Return name of the algorithm that does not support submeshes and makes
|
||||||
|
* submesh creation useless
|
||||||
|
* \retval char* - string is to be deleted!!!
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
|
||||||
|
char* SMESHGUI_MeshOp::isSubmeshIgnored() const
|
||||||
|
{
|
||||||
|
if ( myToCreate && !myIsMesh ) {
|
||||||
|
|
||||||
|
QString aMeshEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Mesh );
|
||||||
|
QString aGeomEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Geom );
|
||||||
|
_PTR(SObject) pMesh = studyDS()->FindObjectID( aMeshEntry.toLatin1().data() );
|
||||||
|
if ( pMesh ) {
|
||||||
|
|
||||||
|
QStringList algoNames;
|
||||||
|
THypList algoList;
|
||||||
|
existingHyps(3, Algo, pMesh, algoNames, algoList);
|
||||||
|
if (!algoList.empty()) {
|
||||||
|
HypothesisData* algo = SMESH::GetHypothesisData( algoList[0].first->GetName() );
|
||||||
|
if ( algo &&
|
||||||
|
algo->InputTypes.empty() && // builds all dimensions it-self
|
||||||
|
!algo->IsSupportSubmeshes )
|
||||||
|
return CORBA::string_dup( algoNames[0].toLatin1().data() );
|
||||||
|
}
|
||||||
|
|
||||||
|
// GEOM::GEOM_Object_var geom;
|
||||||
|
// if (_PTR(SObject) pGeom = studyDS()->FindObjectID( aGeomEntry.toLatin1().data() ))
|
||||||
|
// geom = SMESH::SObjectToInterface<GEOM::GEOM_Object>( pGeom );
|
||||||
|
|
||||||
|
// if ( !geom->_is_nil() && geom->GetShapeType() >= GEOM::FACE ) { // WIRE, EDGE as well
|
||||||
|
existingHyps(2, Algo, pMesh, algoNames, algoList);
|
||||||
|
if (!algoList.empty()) {
|
||||||
|
HypothesisData* algo = SMESH::GetHypothesisData( algoList[0].first->GetName() );
|
||||||
|
if ( algo &&
|
||||||
|
algo->InputTypes.empty() && // builds all dimensions it-self
|
||||||
|
!algo->IsSupportSubmeshes )
|
||||||
|
return CORBA::string_dup( algoNames[0].toLatin1().data() );
|
||||||
|
}
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief find an existing submesh by the selected shape
|
* \brief find an existing submesh by the selected shape
|
||||||
* \retval _PTR(SObject) - the found submesh SObject
|
* \retval _PTR(SObject) - the found submesh SObject
|
||||||
*/
|
*/
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
|
||||||
@ -540,8 +587,21 @@ void SMESHGUI_MeshOp::selectionDone()
|
|||||||
myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
|
myDlg->selectObject( "", SMESHGUI_MeshDlg::Geom, "" );
|
||||||
selectObject( _PTR(SObject)() );
|
selectObject( _PTR(SObject)() );
|
||||||
selectionDone();
|
selectionDone();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// discard selected mesh if submesh creation not allowed because of
|
||||||
|
// a global algorithm that does not support submeshes
|
||||||
|
if ( char* algoName = isSubmeshIgnored() ) {
|
||||||
|
SUIT_MessageBox::warning( myDlg, tr( "SMESH_ERROR" ),
|
||||||
|
tr(QString("SUBMESH_NOT_ALLOWED")
|
||||||
|
.toLatin1().data() ).arg(algoName));
|
||||||
|
CORBA::string_free( algoName );
|
||||||
|
myDlg->selectObject( "", SMESHGUI_MeshDlg::Mesh, "" );
|
||||||
|
selectObject( _PTR(SObject)() );
|
||||||
|
selectionDone();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// enable/disable popup for choice of geom selection way
|
// enable/disable popup for choice of geom selection way
|
||||||
bool enable = false;
|
bool enable = false;
|
||||||
|
@ -87,7 +87,7 @@ private:
|
|||||||
QStringList&,
|
QStringList&,
|
||||||
THypDataList&,
|
THypDataList&,
|
||||||
HypothesisData* = 0 ) const;
|
HypothesisData* = 0 ) const;
|
||||||
void existingHyps( const int,
|
static void existingHyps( const int,
|
||||||
const int,
|
const int,
|
||||||
_PTR(SObject),
|
_PTR(SObject),
|
||||||
QStringList&,
|
QStringList&,
|
||||||
@ -116,6 +116,7 @@ private:
|
|||||||
SMESH::SMESH_Hypothesis_var getInitParamsHypothesis( const QString&,
|
SMESH::SMESH_Hypothesis_var getInitParamsHypothesis( const QString&,
|
||||||
const QString& ) const;
|
const QString& ) const;
|
||||||
bool isSubshapeOk() const;
|
bool isSubshapeOk() const;
|
||||||
|
char* isSubmeshIgnored() const;
|
||||||
_PTR(SObject) getSubmeshByGeom() const;
|
_PTR(SObject) getSubmeshByGeom() const;
|
||||||
void selectObject( _PTR(SObject) ) const;
|
void selectObject( _PTR(SObject) ) const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user