// Get faces
bool isAllNotSubmersible = true;
- TopTools_ListOfShape aFaces;
HYDROData_SequenceOfObjects aCaseRegions = GetRegions();
HYDROData_SequenceOfObjects::Iterator aRegionIter( aCaseRegions );
+ NCollection_IndexedDataMap<TopoDS_Shape, QString> aFacesToNames;
for ( ; aRegionIter.More(); aRegionIter.Next() )
{
Handle(HYDROData_Region) aRegion =
isAllNotSubmersible = false;
TopoDS_Shape aRegionShape = aRegion->GetShape( &aSeqOfGroupsDefs );
- aFaces.Append( aRegionShape );
+ aFacesToNames.Add( aRegionShape, aRegion->GetName() );
}
bool aRes = false;
} else if ( isAllNotSubmersible ) {
theErrorMsg = QString("there are no submersible regions.");
} else {
- aRes = Export( theGeomEngine, theStudy, aFaces, aSeqOfGroupsDefs, theGeomObjEntry );;
+ aRes = Export( theGeomEngine, theStudy, aFacesToNames, aSeqOfGroupsDefs, theGeomObjEntry );;
}
if( aRes && !GetLandCoverMap().IsNull() && !GetStricklerTable().IsNull() )
bool HYDROData_CalculationCase::Export( GEOM::GEOM_Gen_var theGeomEngine,
SALOMEDS::Study_ptr theStudy,
- const TopTools_ListOfShape& theFaces,
+ const NCollection_IndexedDataMap<TopoDS_Shape, QString>& aFacesToName,
const HYDROData_ShapesGroup::SeqOfGroupsDefs& theGroupsDefs,
QString& theGeomObjEntry ) const
{
TCollection_AsciiString aNam("Sh_");
int i=1;
#endif
- TopTools_ListIteratorOfListOfShape aFaceIter( theFaces );
- for ( ; aFaceIter.More(); aFaceIter.Next() )
+ for ( int i = 1; i <= aFacesToName.Extent(); i++ )
{
- TopoDS_Shape aShape = aFaceIter.Value();
+ const TopoDS_Shape& aShape = aFacesToName.FindKey(i);
if ( aShape.IsNull() )
continue;
aSewing.Perform();
TopoDS_Shape aSewedShape = aSewing.SewedShape();
+ NCollection_IndexedDataMap<TopoDS_Shape, QString> aFacesToNameModif;
+
+ for ( int i = 1; i <= aFacesToName.Extent(); i++ )
+ {
+ const TopoDS_Shape& CurShape = aFacesToName.FindKey(i);
+ const QString& Qstr = aFacesToName.FindFromIndex(i);
+ if (aSewing.IsModified(CurShape))
+ aFacesToNameModif.Add(aSewing.Modified(CurShape), Qstr);
+ else
+ aFacesToNameModif.Add(CurShape, Qstr);
+ }
+
+
// If the sewed shape is empty - return false
if ( aSewedShape.IsNull() || !TopoDS_Iterator( aSewedShape ).More() )
return false;
// Publish the sewed shape
QString aName = EXPORT_NAME;
GEOM::GEOM_Object_ptr aMainShape =
- HYDROData_GeomTool::publishShapeInGEOM( theGeomEngine, theStudy, aSewedShape, aName, theGeomObjEntry );
+ HYDROData_GeomTool::ExplodeShapeInGEOMandPublish( theGeomEngine, theStudy, aSewedShape, aFacesToNameModif, aName, theGeomObjEntry );
if ( aMainShape->_is_nil() )
return false;