From: szy Date: Fri, 6 Dec 2013 11:02:20 +0000 (+0000) Subject: 6.12.2013. Build Channel shape3d. X-Git-Tag: BR_hydro_v_0_4~8 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=59cde588126a85dd4c5b7ef5b501d757afad0370;p=modules%2Fhydro.git 6.12.2013. Build Channel shape3d. --- diff --git a/src/HYDROData/CMakeLists.txt b/src/HYDROData/CMakeLists.txt index ad5063cd..f5b04d56 100644 --- a/src/HYDROData/CMakeLists.txt +++ b/src/HYDROData/CMakeLists.txt @@ -90,7 +90,7 @@ include_directories( ) add_library(HYDROData SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS}) -target_link_libraries(HYDROData ${GEOM_GEOMUtils} ${CAS_OCAF} ${CAS_OCAFVIS} ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKGeomAlgo} ${CAS_TKBrep} ${CAS_TKIGES} ${CAS_TKSTEP} ${CAS_TKTopAlgo} ${CAS_TKBO} ${CAS_TKBool} ${QT_LIBRARIES} ${GUI_ImageComposer}) +target_link_libraries(HYDROData ${GEOM_GEOMUtils} ${CAS_OCAF} ${CAS_OCAFVIS} ${CAS_TKG3d} ${CAS_TKGeomBase} ${CAS_TKGeomAlgo} ${CAS_TKBrep} ${CAS_TKIGES} ${CAS_TKSTEP} ${CAS_TKTopAlgo} ${CAS_TKBO} ${CAS_TKBool} ${CAS_TKOffset} ${QT_LIBRARIES} ${GUI_ImageComposer}) INSTALL(TARGETS HYDROData EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS}) set(PROJECT_LIBRARIES HYDROData) diff --git a/src/HYDROData/HYDROData_Channel.cxx b/src/HYDROData/HYDROData_Channel.cxx index 3aab98b5..e1363d79 100644 --- a/src/HYDROData/HYDROData_Channel.cxx +++ b/src/HYDROData/HYDROData_Channel.cxx @@ -7,6 +7,12 @@ #include #include +#include +#include +//#define DEB_CHANNEL 1 +#ifdef DEB_CHANNEL +#include +#endif #include @@ -82,6 +88,32 @@ void HYDROData_Channel::Update() return; // TODO + TopoDS_Wire aPathWire = TopoDS::Wire(aGuideLine->GetShape3D()); + if(aPathWire.IsNull()) + return; + 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" <