+ if (doGroupOf0DElems)
+ {
+ DriverMED_FamilyPtr aFree0DFam (new DriverMED_Family);
+ aFree0DFam->SetId(REST_0DELEM_FAMILY);
+ aFree0DFam->myType = SMDSAbs_0DElement;
+ aFree0DFam->myGroupNames.insert(anAll0DElemsGroupName);
+ aFamilies.push_back(aFree0DFam);
+ }
+
+ if (doGroupOfBalls)
+ {
+ DriverMED_FamilyPtr aFreeBallsFam (new DriverMED_Family);
+ aFreeBallsFam->SetId(REST_BALL_FAMILY);
+ aFreeBallsFam->myType = SMDSAbs_Ball;
+ aFreeBallsFam->myGroupNames.insert(anAllBallsGroupName);
+ aFamilies.push_back(aFreeBallsFam);
+ }
+
+ DriverMED_FamilyPtr aNullFam (new DriverMED_Family);
+ 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);
+ }
+ }