Salome HOME
Minor changes.
[modules/hydro.git] / src / HYDROData / HYDROData_CalculationCase.cxx
index 4a75528ca44800db58791a6f757aa3f61d79b865..3441d309b83d1d5a41c56415ee27cff13b20274c 100644 (file)
@@ -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