X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_SplitToZonesTool.cxx;h=9b279724a040996e7fa09b21da7cd82861812c62;hb=c52bda48bea5753316f128f52a3be1abb5aff055;hp=24e53396744d51f6a70987aa41ebf1689d1946fc;hpb=bf760f54f1c4db789f50f25bff055eb6127f81db;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_SplitToZonesTool.cxx b/src/HYDROData/HYDROData_SplitToZonesTool.cxx index 24e53396..9b279724 100644 --- a/src/HYDROData/HYDROData_SplitToZonesTool.cxx +++ b/src/HYDROData/HYDROData_SplitToZonesTool.cxx @@ -1,7 +1,7 @@ #include "HYDROData_SplitToZonesTool.h" -#include "HYDROData_Polyline.h" +#include "HYDROData_PolylineXY.h" #include #include @@ -36,7 +36,7 @@ TopoDS_Face HYDROData_SplitToZonesTool::SplitData::Face() const HYDROData_SplitToZonesTool::SplitDataList HYDROData_SplitToZonesTool::SplitToZones( const HYDROData_SequenceOfObjects& theObjectList, - const Handle(HYDROData_Polyline)& thePolyline ) + const Handle(HYDROData_PolylineXY)& thePolyline ) { SplitDataList anOutputSplitDataList; @@ -46,23 +46,26 @@ HYDROData_SplitToZonesTool::SplitToZones( const HYDROData_SequenceOfObjects& the { Handle(HYDROData_Object) aGeomObj = Handle(HYDROData_Object)::DownCast( theObjectList.Value( anIndex ) ); - if( !aGeomObj.IsNull() ) - { - TopoDS_Shape aShape = aGeomObj->GetTopShape(); - if ( !aShape.IsNull() && aShape.ShapeType() == TopAbs_COMPOUND ) { - // Create split data for each face contained in the compound - TopExp_Explorer anExp( aShape, TopAbs_FACE ); - for ( ; anExp.More(); anExp.Next() ) { - TopoDS_Face aFace = TopoDS::Face( anExp.Current() ); - if ( !aFace.IsNull() ) { - SplitData aSplitData( aFace, aGeomObj->GetName() ); - anInputSplitDataList.append( aSplitData ); - } + if( aGeomObj.IsNull() ) + continue; + + TopoDS_Shape aShape = aGeomObj->GetTopShape(); + if ( aShape.IsNull() ) + continue; + + if ( aShape.ShapeType() == TopAbs_COMPOUND ) { + // Create split data for each face contained in the compound + TopExp_Explorer anExp( aShape, TopAbs_FACE ); + for ( ; anExp.More(); anExp.Next() ) { + TopoDS_Face aFace = TopoDS::Face( anExp.Current() ); + if ( !aFace.IsNull() ) { + SplitData aSplitData( aFace, aGeomObj->GetName() ); + anInputSplitDataList.append( aSplitData ); } - } else { - SplitData aSplitData( aShape, aGeomObj->GetName() ); - anInputSplitDataList.append( aSplitData ); } + } else { + SplitData aSplitData( aShape, aGeomObj->GetName() ); + anInputSplitDataList.append( aSplitData ); } } @@ -106,7 +109,7 @@ HYDROData_SplitToZonesTool::SplitToZones( const HYDROData_SequenceOfObjects& the // Step 2. Take into account the boundary polyline. if( !thePolyline.IsNull() ) { - TopoDS_Wire aWire = TopoDS::Wire( thePolyline->GetTopShape() ); + TopoDS_Wire aWire = TopoDS::Wire( thePolyline->GetShape() ); if( !aWire.IsNull() ) { BRepBuilderAPI_MakeFace aMakeFace( aWire, Standard_True );