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,
StudyContextStruct* studyContext)
StudyContextStruct* studyContext,
bool loaded=false)
{
vector<SMESH_Group*> okGroups;
for ( int i = 0; i < groups.size(); ++i )
@ -137,7 +138,11 @@ namespace
SMESH_Mesh::GroupIteratorPtr gIt = itm->second->GetGroups();
while ( gIt->more() && !okGroup )
if ( gIt->next() == groups[i] )
{
okGroup = groups[i];
if ( loaded )
itm->second->Load();
}
}
if ( okGroup )
okGroups.push_back( okGroup );
@ -193,14 +198,16 @@ namespace
//=============================================================================
/*!
* 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
vector<SMESH_Group*> okGroups = getValidGroups( _groups,
_gen->GetStudyContext(_studyId) );
_gen->GetStudyContext(_studyId),
loaded);
if ( okGroups.size() != _groups.size() )
((StdMeshers_ImportSource1D*)this)->_groups = okGroups;

View File

@ -52,7 +52,7 @@ class STDMESHERS_EXPORT StdMeshers_ImportSource1D : public SMESH_Hypothesis
virtual ~ StdMeshers_ImportSource1D();
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 GetCopySourceMesh(bool& toCopyMesh, bool& toCopyGroups) const;