BOPCol_ListOfShape aLC;
anIt.Initialize(theFaces);
for( ; anIt.More(); anIt.Next() )
+ {
+ if (anIt.Value().ShapeType() != TopAbs_FACE)
+ return TopoDS_Shape();
aLC.Append( anIt.Value() );
+ }
BOPAlgo_PaveFiller aPF;
aPF.SetArguments( aLC );
*/
void HYDROData_LandCoverMap::StoreLandCovers( const HYDROData_MapOfFaceToStricklerType& theMap )
{
- TopoDS_Compound aCompound;
- BRep_Builder aCompoundBuilder;
- aCompoundBuilder.MakeCompound( aCompound );
+ TopoDS_Shell aShell;
+ BRep_Builder aShellBuilder;
+ aShellBuilder.MakeShell( aShell );
+ aShell.Closed( Standard_False );
+ TopTools_ListOfShape aListOfFaces;
int n = theMap.Size();
Handle( TDataStd_ExtStringArray ) aTypes =
for( int i=0; aNFIt.More(); aNFIt.Next(), i++ )
{
TopoDS_Face aFace = aNFIt.Key();
+ if (aFace.IsNull())
+ continue;
QString aType = aNFIt.Value();
- aCompoundBuilder.Add( aCompound, aFace );
+ aShellBuilder.Add( aShell, aFace );
+ aListOfFaces.Append(aFace);
aTypes->SetValue( i, HYDROData_Tool::toExtString( aType ) );
}
+ TopoDS_Shape aMF = MergeFaces(aListOfFaces, false);
- SetShape( aCompound );
+ SetShape( aListOfFaces.Extent() < 2 ? aShell : MergeFaces(aListOfFaces, false));
}
/**