X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_CalculationCase.cxx;h=3441d309b83d1d5a41c56415ee27cff13b20274c;hb=84ec5b92ea05194a9d4d413b9bc896cf68d2e3ca;hp=4a75528ca44800db58791a6f757aa3f61d79b865;hpb=90d1e986c0e567fe8892f11e0532ec6cf40a5b8b;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_CalculationCase.cxx b/src/HYDROData/HYDROData_CalculationCase.cxx index 4a75528c..3441d309 100644 --- a/src/HYDROData/HYDROData_CalculationCase.cxx +++ b/src/HYDROData/HYDROData_CalculationCase.cxx @@ -5,7 +5,7 @@ #include "HYDROData_Document.h" #include "HYDROData_Iterator.h" #include "HYDROData_NaturalObject.h" -#include "HYDROData_Polyline.h" +#include "HYDROData_PolylineXY.h" #include "HYDROData_SplitToZonesTool.h" #include "HYDROData_Region.h" #include "HYDROData_Tool.h" @@ -138,7 +138,7 @@ void HYDROData_CalculationCase::SplitGeometryObjects() if ( aDocument.IsNull() ) return; - Handle(HYDROData_Polyline) aBoundaryPolyline = GetBoundaryPolyline(); + Handle(HYDROData_PolylineXY) aBoundaryPolyline = GetBoundaryPolyline(); HYDROData_SequenceOfObjects aGeomObjects = GetGeometryObjects(); if ( aGeomObjects.IsEmpty() ) return; @@ -229,9 +229,9 @@ void HYDROData_CalculationCase::RemoveGeometryObjects() SetToUpdate( true ); } -void HYDROData_CalculationCase::SetBoundaryPolyline( const Handle(HYDROData_Polyline)& thePolyline ) +void HYDROData_CalculationCase::SetBoundaryPolyline( const Handle(HYDROData_PolylineXY)& thePolyline ) { - Handle(HYDROData_Polyline) aPrevPolyline = GetBoundaryPolyline(); + Handle(HYDROData_PolylineXY) aPrevPolyline = GetBoundaryPolyline(); SetReferenceObject( thePolyline, DataTag_Polyline ); @@ -239,15 +239,15 @@ void HYDROData_CalculationCase::SetBoundaryPolyline( const Handle(HYDROData_Poly SetToUpdate( !IsEqual( aPrevPolyline, thePolyline ) || IsMustBeUpdated() ); } -Handle(HYDROData_Polyline) HYDROData_CalculationCase::GetBoundaryPolyline() const +Handle(HYDROData_PolylineXY) HYDROData_CalculationCase::GetBoundaryPolyline() const { - return Handle(HYDROData_Polyline)::DownCast( + return Handle(HYDROData_PolylineXY)::DownCast( GetReferenceObject( DataTag_Polyline ) ); } void HYDROData_CalculationCase::RemoveBoundaryPolyline() { - Handle(HYDROData_Polyline) aPrevPolyline = GetBoundaryPolyline(); + Handle(HYDROData_PolylineXY) aPrevPolyline = GetBoundaryPolyline(); ClearReferenceObjects( DataTag_Polyline ); @@ -394,8 +394,14 @@ TopoDS_Shell HYDROData_CalculationCase::GetShell() TopoDS_Shape aRegionShape = aRegion->GetShape(); if( !aRegionShape.IsNull() ) { - TopExp_Explorer anExp( aRegionShape, TopAbs_FACE ); - if ( anExp.More() ) { + if ( aRegionShape.ShapeType() == TopAbs_FACE ) { + TopoDS_Face aFace = TopoDS::Face( aRegionShape ); + if ( !aFace.IsNull() ) { + aFacesList.Append( aFace ); + aSewing.Add( aFace ); + } + } else { + TopExp_Explorer anExp( aRegionShape, TopAbs_FACE ); for ( ; anExp.More(); anExp.Next() ) { TopoDS_Face aFace = TopoDS::Face( anExp.Current() ); if ( !aFace.IsNull() ) { @@ -403,11 +409,6 @@ TopoDS_Shell HYDROData_CalculationCase::GetShell() aSewing.Add( aFace ); } } - } else { - if ( aRegionShape.ShapeType() == TopAbs_FACE ) { - aFacesList.Append( aRegionShape ); - } - aSewing.Add( aRegionShape ); } } } // regions iterator