#include <LightApp_Application.h>
#include <LightApp_UpdateFlags.h>
+#include <TopoDS.hxx>
HYDROGUI_ChannelOp::HYDROGUI_ChannelOp( HYDROGUI_Module* theModule,
const bool theIsEdit )
}
// 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 );
if ( !myViewManager || !myPreviewPrs )
return;
- myPreviewPrs->update();
+ myPreviewPrs->update( true, true );
}
void HYDROGUI_ChannelOp::erasePreview()