-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
DriverMED_Family
::AddElement(const SMDS_MeshElement* theElement)
{
- myElements.insert(theElement);
+ myElements.insert( myElements.end(), theElement );
}
void
return myType;
}
-const std::set< SMDSAbs_ElementType >&
+const ElemTypeSet&
DriverMED_Family
::GetTypes() const
{
const bool doGroupOfFaces,
const bool doGroupOfVolumes,
const bool doGroupOf0DElems,
- const bool doGroupOfBalls)
+ const bool doGroupOfBalls,
+ const bool doAllInGroups)
{
DriverMED_FamilyPtrList aFamilies;
}
DriverMED_FamilyPtr aNullFam (new DriverMED_Family);
- aNullFam->SetId(0);
+ aNullFam->SetId( 0 );
aNullFam->myType = SMDSAbs_All;
aFamilies.push_back(aNullFam);
+ if ( doAllInGroups )
+ {
+ if ( !doGroupOfEdges )
+ {
+ DriverMED_FamilyPtr aNigEdgeFam (new DriverMED_Family);
+ aNigEdgeFam->SetId( NIG_EDGES_FAMILY );
+ aNigEdgeFam->myType = SMDSAbs_Edge;
+ aNigEdgeFam->myGroupNames.insert( NIG_GROUP_PREFIX "_EDGES" );
+ aFamilies.push_back(aNigEdgeFam);
+ }
+ if ( !doGroupOfFaces )
+ {
+ DriverMED_FamilyPtr aNigFaceFam (new DriverMED_Family);
+ aNigFaceFam->SetId( NIG_FACES_FAMILY );
+ aNigFaceFam->myType = SMDSAbs_Face;
+ aNigFaceFam->myGroupNames.insert( NIG_GROUP_PREFIX "_FACES" );
+ aFamilies.push_back(aNigFaceFam);
+ }
+ if ( !doGroupOfVolumes )
+ {
+ DriverMED_FamilyPtr aNigVolFam (new DriverMED_Family);
+ aNigVolFam->SetId( NIG_VOLS_FAMILY );
+ aNigVolFam->myType = SMDSAbs_Volume;
+ aNigVolFam->myGroupNames.insert( NIG_GROUP_PREFIX "_VOLS" );
+ aFamilies.push_back(aNigVolFam);
+ }
+ }
+
return aFamilies;
}
* Create TFamilyInfo for this family
*/
//=============================================================================
-MED::PFamilyInfo
+MED::PFamilyInfo
DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper,
const MED::PMeshInfo& theMeshInfo) const
{
SMDS_ElemIteratorPtr elemIt = theGroup->GetElements();
while (elemIt->more())
{
- myElements.insert(elemIt->next());
+ myElements.insert( myElements.end(), elemIt->next() );
}
// Type
*/
//=============================================================================
DriverMED_FamilyPtrList
-DriverMED_Family
-::SplitByType (SMESHDS_SubMesh* theSubMesh,
- const int theId)
+DriverMED_Family::SplitByType (SMESHDS_SubMesh* theSubMesh,
+ const int theId)
{
DriverMED_FamilyPtrList aFamilies;
DriverMED_FamilyPtr aNodesFamily (new DriverMED_Family);