#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"
if ( aDocument.IsNull() )
return;
- Handle(HYDROData_Polyline) aBoundaryPolyline = GetBoundaryPolyline();
+ Handle(HYDROData_PolylineXY) aBoundaryPolyline = GetBoundaryPolyline();
HYDROData_SequenceOfObjects aGeomObjects = GetGeometryObjects();
if ( aGeomObjects.IsEmpty() )
return;
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 );
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 );
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() ) {
aSewing.Add( aFace );
}
}
- } else {
- if ( aRegionShape.ShapeType() == TopAbs_FACE ) {
- aFacesList.Append( aRegionShape );
- }
- aSewing.Add( aRegionShape );
}
}
} // regions iterator