From 59cde588126a85dd4c5b7ef5b501d757afad0370 Mon Sep 17 00:00:00 2001 From: szy Date: Fri, 6 Dec 2013 11:02:20 +0000 Subject: [PATCH] 6.12.2013. Build Channel shape3d. --- src/HYDROData/CMakeLists.txt | 2 +- src/HYDROData/HYDROData_Channel.cxx | 32 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) 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" <