const QString& theFieldName,
const QStringList& theDBFValues,
const QStringList& theStricklerTypes,
- QMap<int, int> theIndices )
+ const QList<int>& theIndices )
{
if (theDBFValues.size() != theStricklerTypes.size())
return DBFStatus_DIFF_SIZE_ERROR;
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));
}
/**
theType = "";
return TopoDS_Face();
}
+
+/**
+ Dump to Python
+ @param theTreatedObjects the map of treated objects
+*/
+QStringList HYDROData_LandCoverMap::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
+{
+ QStringList aResList = dumpObjectCreation( theTreatedObjects );
+ QString aName = GetObjPyName();
+
+ //Handle(HYDROData_PolylineXY) aHydAxis = GetHydraulicAxis();
+ //setPythonReferenceObject( theTreatedObjects, aResList, aHydAxis, "SetHydraulicAxis" );
+
+ //HYDROData_SequenceOfObjects aSeqOfProfiles = GetProfiles();
+ //for ( int i = 1, aNb = aSeqOfProfiles.Size(); i <= aNb; ++i )
+ //{
+ //const Handle(HYDROData_Entity) aProfile = aSeqOfProfiles.Value( i );
+ //setPythonReferenceObject( theTreatedObjects, aResList, aProfile, "AddProfile" );
+ //}
+
+ //TODO
+
+ return aResList;
+}