Salome HOME
Bug #334: Different behavior in Edit calculation case input panel.
[modules/hydro.git] / src / HYDROData / HYDROData_Channel.cxx
index 50a27326a9ab5fd4a4e4d3d897d2d9397d07dd36..ab054c726d6d2ed1a744b90499ced9cd1b03ee81 100644 (file)
@@ -13,7 +13,6 @@
 #include <BRepOffsetAPI_MakePipeShell.hxx>
 #include <BRepOffsetAPI_MakePipe.hxx>
 #include <BRepCheck_Analyzer.hxx>
-#include <BRepTools.hxx>
 
 #include <TopExp.hxx>
 
@@ -30,8 +29,6 @@
 #include <QColor>
 #include <QStringList>
 
-#define PYTHON_CHANNEL_ID "KIND_CHANNEL"
-
 IMPLEMENT_STANDARD_HANDLE(HYDROData_Channel,HYDROData_ArtificialObject)
 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Channel,HYDROData_ArtificialObject)
 
@@ -47,22 +44,18 @@ HYDROData_Channel::~HYDROData_Channel()
 
 QStringList HYDROData_Channel::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
 {
-  QStringList aResList;
+  QStringList aResList = dumpObjectCreation( theTreatedObjects );
+  QString aName = GetObjPyName();
 
-  Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( myLab );
-  if ( aDocument.IsNull() )
-    return aResList;
+  Handle(HYDROData_Polyline3D) aRefGideLine = GetGuideLine();
+  setPythonReferenceObject( theTreatedObjects, aResList, aRefGideLine, "SetGuideLine" );
 
-  QString aDocName = aDocument->GetDocPyName();
-  QString aChannelName = GetName();
+  Handle(HYDROData_Profile) aRefProfile = GetProfile();
+  setPythonReferenceObject( theTreatedObjects, aResList, aRefProfile, "SetProfile" );
 
-  aResList << QString( "%1 = %2.CreateObject( %3 );" )
-              .arg( aChannelName ).arg( aDocName ).arg( PYTHON_CHANNEL_ID );
-  aResList << QString( "%1.SetName( \"%2\" );" )
-              .arg( aChannelName ).arg( aChannelName );
   aResList << QString( "" );
-
-  // TODO
+  aResList << QString( "%1.Update();" ).arg( aName );
+  aResList << QString( "" );
 
   return aResList;
 }
@@ -109,8 +102,10 @@ void HYDROData_Channel::Update()
   if(aProfileWire.IsNull())
     return;
 
+#ifdef DEB_CHANNEL
   BRepTools::Write( aPathWire, "guideline.brep" );
   BRepTools::Write( aProfileWire, "profile.brep" );
+#endif
 
   HYDROData_Canal3dAnd2d aChannelConstructor( aProfileWire, aPathWire );
   aChannelConstructor.Create3dPresentation();
@@ -118,8 +113,10 @@ void HYDROData_Channel::Update()
   SetShape3D( aChannelConstructor.Get3dPresentation() );
   SetTopShape( aChannelConstructor.Get2dPresentation() );
 
+#ifdef DEB_CHANNEL
   BRepTools::Write( aChannelConstructor.Get2dPresentation(), "channel2d.brep" );
   BRepTools::Write( aChannelConstructor.Get3dPresentation(), "channel3d.brep" );
+#endif
 
   TopAbs_ShapeEnum aType = GetTopShape().ShapeType();
 
@@ -129,6 +126,14 @@ void HYDROData_Channel::Update()
   TopoDS_Wire anInlet = aChannelConstructor.GetInlet();
   TopoDS_Wire anOutlet = aChannelConstructor.GetOutlet();
 
+#ifdef DEB_CHANNEL
+  HYDROData_ShapesTool::DumpShapeSubShapes( std::cout, "Top shape edges:", GetTopShape(), TopAbs_EDGE );
+  HYDROData_ShapesTool::DumpShapeSubShapes( std::cout, "Left bank edges:", aLeftBank, TopAbs_EDGE );
+  HYDROData_ShapesTool::DumpShapeSubShapes( std::cout, "Right bank edges:", aRightBank, TopAbs_EDGE );
+  HYDROData_ShapesTool::DumpShapeSubShapes( std::cout, "Inlet edges:", anInlet, TopAbs_EDGE );
+  HYDROData_ShapesTool::DumpShapeSubShapes( std::cout, "Outlet edges:", anOutlet, TopAbs_EDGE );
+#endif
+
   TopTools_SequenceOfShape aLeftBankEdges;
   HYDROData_ShapesTool::ExploreShapeToShapes( aLeftBank, TopAbs_EDGE, aLeftBankEdges );