]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
6.12.2013. Build Channel shape3d.
authorszy <szy@opencascade.com>
Fri, 6 Dec 2013 11:02:20 +0000 (11:02 +0000)
committerszy <szy@opencascade.com>
Fri, 6 Dec 2013 11:02:20 +0000 (11:02 +0000)
src/HYDROData/CMakeLists.txt
src/HYDROData/HYDROData_Channel.cxx

index ad5063cd6b8c88005e9df73555cc8e5299218bea..f5b04d56f8ab9a1b260368d1fe8d8472aee5fc39 100644 (file)
@@ -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)
index 3aab98b5ac6ea61db8394bc8904aa6fbefc5ddab..e1363d79e9db29b016e712ba7efdbaad1ddf84a5 100644 (file)
@@ -7,6 +7,12 @@
 
 #include <TopoDS.hxx>
 #include <TopoDS_Wire.hxx>
+#include <BRepOffsetAPI_MakePipeShell.hxx>
+#include <BRepCheck_Analyzer.hxx>
+//#define DEB_CHANNEL 1
+#ifdef DEB_CHANNEL
+#include <BRepTools.hxx>
+#endif
 
 #include <QStringList>
 
@@ -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" <<endl;
+         BRepTools::Write(aChannel, "ChanNV.brep");  
+#endif
+       }
+  }
 }
 
 bool HYDROData_Channel::SetGuideLine( const Handle(HYDROData_Polyline3D)& theGuideLine )