X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ChannelOp.cxx;h=38d16ae440520b49ededb060e2939842a09b3827;hb=f34b90e9e4e02ba65419134d5d37a2e42aecfabf;hp=2ffdc5430d9462acec9f976708c2513cad10a1b4;hpb=b7337e3ea5eeb15fdad4eac991480a20405f8cff;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ChannelOp.cxx b/src/HYDROGUI/HYDROGUI_ChannelOp.cxx index 2ffdc543..38d16ae4 100644 --- a/src/HYDROGUI/HYDROGUI_ChannelOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ChannelOp.cxx @@ -39,6 +39,7 @@ #include #include +#include HYDROGUI_ChannelOp::HYDROGUI_ChannelOp( HYDROGUI_Module* theModule, const bool theIsEdit ) @@ -87,7 +88,24 @@ void HYDROGUI_ChannelOp::startOperation() } // collect information about existing 3d polylines - QStringList aGuideLines = HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_POLYLINE ); + QStringList aGuideLines; + QStringList anAllGuideLines = HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_POLYLINE ); + foreach( QString aGuideLine, anAllGuideLines ) + { + Handle( HYDROData_Polyline3D ) aPolyline3d = + Handle( HYDROData_Polyline3D )::DownCast( + HYDROGUI_Tool::FindObjectByName( module(), aGuideLine, KIND_POLYLINE ) ); + if( !aPolyline3d.IsNull() ) + { + TopoDS_Shape aShape = aPolyline3d->GetShape3D(); + if( aShape.ShapeType()==TopAbs_WIRE ) + { + TopoDS_Wire aWire = TopoDS::Wire( aShape ); + if( !aWire.Closed() ) + aGuideLines.append( aGuideLine ); + } + } + } // collect information about existing profiles QStringList aProfiles = HYDROGUI_Tool::FindExistingObjectsNames( doc(), KIND_PROFILE );