bool HYDROData_LandCoverMap::Merge( const TopTools_ListOfShape& theFaces, const QString& theType )
{
// 1. to fuse the faces into the new face
- TopoDS_Shape aMergedFace = MergeFaces( theFaces, true );
- if( !aMergedFace.IsNull() && aMergedFace.ShapeType()==TopAbs_FACE )
- {
+ TopoDS_Shape aMergedFace = MergeFaces( theFaces, true );
+ bool aStat = true;
+ if( !aMergedFace.IsNull() )
+ {
// 2. to remove the merged faces from the current map
Remove( theFaces );
-
- // 3. to add the face into the map
- return LocalPartition( TopoDS::Face( aMergedFace ), theType );
+ TopExp_Explorer Exp(aMergedFace, TopAbs_FACE);
+ for( ; Exp.More(); Exp.Next() )
+ {
+ const TopoDS_Face& aCF = TopoDS::Face(Exp.Current());
+ // 3. to add the face into the map
+ aStat = aStat && LocalPartition( aCF, theType );
+ }
}
- return false;
+ else
+ aStat = false;
+ return aStat;
}
/**
QString aSType = anIt.StricklerType();
//std::cout << "from " << anIt.Face() << ": " << anIt.StricklerType() << std::endl;
TopTools_ListOfShape aModified = aBuilder.Modified( anIt.Face() );
-
- //
- TopTools_ListOfShape aGen = aBuilder.Generated( anIt.Face() );
//
if( aModified.Extent() == 0 )
aModified.Append( anIt.Face() );