0022195: EDF SMESH: Mesh using existing elements.

To load the mesh owning source groups

-  const std::vector<SMESH_Group*>& GetGroups() const;
+  const std::vector<SMESH_Group*>& GetGroups(bool loaded=false) const;
This commit is contained in:
eap 2013-05-16 17:02:10 +00:00
parent 42491f3cb5
commit 3010de27c3
2 changed files with 11 additions and 4 deletions

View File

@ -121,7 +121,8 @@ namespace
//================================================================================ //================================================================================
vector<SMESH_Group*> getValidGroups(const vector<SMESH_Group*>& groups, vector<SMESH_Group*> getValidGroups(const vector<SMESH_Group*>& groups,
StudyContextStruct* studyContext) StudyContextStruct* studyContext,
bool loaded=false)
{ {
vector<SMESH_Group*> okGroups; vector<SMESH_Group*> okGroups;
for ( int i = 0; i < groups.size(); ++i ) for ( int i = 0; i < groups.size(); ++i )
@ -137,7 +138,11 @@ namespace
SMESH_Mesh::GroupIteratorPtr gIt = itm->second->GetGroups(); SMESH_Mesh::GroupIteratorPtr gIt = itm->second->GetGroups();
while ( gIt->more() && !okGroup ) while ( gIt->more() && !okGroup )
if ( gIt->next() == groups[i] ) if ( gIt->next() == groups[i] )
{
okGroup = groups[i]; okGroup = groups[i];
if ( loaded )
itm->second->Load();
}
} }
if ( okGroup ) if ( okGroup )
okGroups.push_back( okGroup ); okGroups.push_back( okGroup );
@ -193,14 +198,16 @@ namespace
//============================================================================= //=============================================================================
/*! /*!
* Returns groups to import elements from * Returns groups to import elements from
* \param [in] loaded - if \c true, meshes holding the groups are loaded
*/ */
//============================================================================= //=============================================================================
const std::vector<SMESH_Group*>& StdMeshers_ImportSource1D::GetGroups() const const std::vector<SMESH_Group*>& StdMeshers_ImportSource1D::GetGroups(bool loaded) const
{ {
// filter off deleted groups // filter off deleted groups
vector<SMESH_Group*> okGroups = getValidGroups( _groups, vector<SMESH_Group*> okGroups = getValidGroups( _groups,
_gen->GetStudyContext(_studyId) ); _gen->GetStudyContext(_studyId),
loaded);
if ( okGroups.size() != _groups.size() ) if ( okGroups.size() != _groups.size() )
((StdMeshers_ImportSource1D*)this)->_groups = okGroups; ((StdMeshers_ImportSource1D*)this)->_groups = okGroups;

View File

@ -52,7 +52,7 @@ class STDMESHERS_EXPORT StdMeshers_ImportSource1D : public SMESH_Hypothesis
virtual ~ StdMeshers_ImportSource1D(); virtual ~ StdMeshers_ImportSource1D();
void SetGroups(const std::vector<SMESH_Group*>& groups); void SetGroups(const std::vector<SMESH_Group*>& groups);
const std::vector<SMESH_Group*>& GetGroups() const; const std::vector<SMESH_Group*>& GetGroups(bool loaded=false) const;
void SetCopySourceMesh(bool toCopyMesh, bool toCopyGroups); void SetCopySourceMesh(bool toCopyMesh, bool toCopyGroups);
void GetCopySourceMesh(bool& toCopyMesh, bool& toCopyGroups) const; void GetCopySourceMesh(bool& toCopyMesh, bool& toCopyGroups) const;