X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Channel.cxx;h=f8e30fbbf434480905e1af09f467dad51c5a7a19;hb=4ef4f1809f4602d520ddfe0f8c82630cbc2fda2f;hp=2640d5ef61a6b1f6d40a9461be583cb01e30d1ff;hpb=2d99821157e770385d7af917b2d22d6aa3cacb7e;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Channel.cxx b/src/HYDROData/HYDROData_Channel.cxx index 2640d5ef..f8e30fbb 100644 --- a/src/HYDROData/HYDROData_Channel.cxx +++ b/src/HYDROData/HYDROData_Channel.cxx @@ -4,11 +4,24 @@ #include "HYDROData_Document.h" #include "HYDROData_Polyline3D.h" #include "HYDROData_Profile.h" +#include "HYDROData_PolylineXY.h" +#include "HYDROData_Projection.h" +#include "HYDROData_ShapesGroup.h" +#include "HYDROData_ShapesTool.h" +#include "HYDROData_Pipes.h" -#include -#include #include +#include #include +#include + +#include + +#include +#include +#include +#include + //#define DEB_CHANNEL 1 #ifdef DEB_CHANNEL #include @@ -88,33 +101,64 @@ void HYDROData_Channel::Update() if ( aGuideLine.IsNull() || aProfile.IsNull() ) return; - // TODO + // build 3d shape TopoDS_Wire aPathWire = TopoDS::Wire(aGuideLine->GetShape3D()); if(aPathWire.IsNull()) return; - TopoDS_Wire aProfileWire = TopoDS::Wire( aProfile->GetShape3D() ); + TopoDS_Wire aProfileWire = TopoDS::Wire( aProfile->GetShape3D() ); if(aProfileWire.IsNull()) - return; - - BRepOffsetAPI_MakePipeShell aMkSweep(aPathWire); - aMkSweep.Add(aProfileWire,Standard_True, Standard_True); - aMkSweep.SetTransitionMode(BRepBuilderAPI_RightCorner); - aMkSweep.SetMode(Standard_True); - aMkSweep.Build(); - if(aMkSweep.IsDone()) { - const TopoDS_Shape& aChannel = aMkSweep.Shape(); - BRepCheck_Analyzer aCheck(aChannel); - if(aCheck.IsValid()) - { - //BRepTools::Write(aChannel, "ChanV.brep"); - SetShape3D( aMkSweep.Shape()); - } else { -#ifdef DEB_CHANNEL - cout <<"NOT VALID" <SetName( aLeftGroupName ); + aLeftGroup->SetShapes( aLeftBankEdges ); + + QString aRightGroupName = GetName() + "_Right_Bank"; + + Handle(HYDROData_ShapesGroup) aRightGroup = createGroupObject(); + aRightGroup->SetName( aRightGroupName ); + aRightGroup->SetShapes( aRightBankEdges ); + + QString anInGroupName = GetName() + "_Inlet"; + + Handle(HYDROData_ShapesGroup) anInGroup = createGroupObject(); + anInGroup->SetName( anInGroupName ); + anInGroup->SetShapes( anInletEdges ); + + QString anOutGroupName = GetName() + "_Outlet"; + + Handle(HYDROData_ShapesGroup) anOutGroup = createGroupObject(); + anOutGroup->SetName( anOutGroupName ); + anOutGroup->SetShapes( anOutletEdges ); } QColor HYDROData_Channel::DefaultFillingColor() @@ -218,3 +262,9 @@ void HYDROData_Channel::RemoveProfile() // Indicate model of the need to update the chanel presentation SetToUpdate( true ); } + +ObjectKind HYDROData_Channel::getAltitudeObjectType() const +{ + return KIND_OBSTACLE_ALTITUDE; +} +