Salome HOME
Sorting alphabetically.
[modules/hydro.git] / src / HYDROData / HYDROData_Calculation.cxx
index 8b9c94d7bd051a384b9fc6244a04367d7e791ff4..9514bcbd5945ca2f2df3295d0979e1f327c3b410 100644 (file)
@@ -5,12 +5,13 @@
 #include "HYDROData_Iterator.h"
 #include "HYDROData_Polyline.h"
 #include "HYDROData_Zone.h"
+#include "HYDROData_Region.h"
 
 #include <TDataStd_ReferenceList.hxx>
 
 #include <QStringList>
 
-#define PYTHON_BATHYMETRY_ID "KIND_CALCULATION"
+#define PYTHON_CALCULATION_ID "KIND_CALCULATION"
 
 IMPLEMENT_STANDARD_HANDLE(HYDROData_Calculation, HYDROData_Object)
 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Calculation, HYDROData_Object)
@@ -35,11 +36,35 @@ QStringList HYDROData_Calculation::DumpToPython( MapOfTreatedObjects& theTreated
   QString aCalculName = GetName();
 
   aResList << QString( "%1 = %2.CreateObject( %3 );" )
-              .arg( aCalculName ).arg( aDocName ).arg( PYTHON_BATHYMETRY_ID );
+              .arg( aCalculName ).arg( aDocName ).arg( PYTHON_CALCULATION_ID );
   aResList << QString( "%1.SetName( \"%2\" );" )
               .arg( aCalculName ).arg( aCalculName );
-
-  // TO_IMPLEMENT
+  aResList << QString( "" );
+
+  Handle(HYDROData_Polyline) aBoundaryPolyline = GetBoundaryPolyline();
+  setPythonReferenceObject( theTreatedObjects, aResList, aBoundaryPolyline, "SetBoundaryPolyline" );
+  aResList << QString( "" );
+
+  HYDROData_SequenceOfObjects aZones = GetZones();
+  HYDROData_SequenceOfObjects::Iterator anIter( aZones );
+  for ( ; anIter.More(); anIter.Next() )
+  {
+    Handle(HYDROData_Zone) aRefZone =
+      Handle(HYDROData_Zone)::DownCast( anIter.Value() );
+    if ( !aRefZone.IsNull() )
+      setPythonReferenceObject( theTreatedObjects, aResList, aRefZone, "AddZone" );
+  }
+  aResList << QString( "" );
+
+  aZones = GetRegions();
+  anIter.Init( aZones );
+  for ( ; anIter.More(); anIter.Next() )
+  {
+    Handle(HYDROData_Region) aRegion =
+      Handle(HYDROData_Region)::DownCast( anIter.Value() );
+    if ( !aRegion.IsNull() )
+      setPythonReferenceObject( theTreatedObjects, aResList, aRegion, "AddRegion" );
+  }
 
   return aResList;
 }
@@ -97,40 +122,40 @@ void HYDROData_Calculation::RemoveZones()
   ClearReferenceObjects( DataTag_Zone );
 }
 
-int HYDROData_Calculation::NbSplittedZones() const
+int HYDROData_Calculation::NbRegions() const
 {
-  return NbReferenceObjects( DataTag_SplittedZone );
+  return NbReferenceObjects( DataTag_Region );
 }
 
-void HYDROData_Calculation::AddSplittedZone( const Handle(HYDROData_Zone)& theZone )
+void HYDROData_Calculation::AddRegion( const Handle(HYDROData_Region)& theRegion )
 {
-  AddReferenceObject( theZone, DataTag_SplittedZone );
+  AddReferenceObject( theRegion, DataTag_Region );
 }
 
-void HYDROData_Calculation::SetSplittedZone( const int                     theIndex,
-                                             const Handle(HYDROData_Zone)& theZone )
+void HYDROData_Calculation::SetRegion( const int                       theIndex,
+                                       const Handle(HYDROData_Region)& theRegion )
 {
-  SetReferenceObject( theZone, DataTag_SplittedZone, theIndex );
+  SetReferenceObject( theRegion, DataTag_Region, theIndex );
 }
 
-void HYDROData_Calculation::SetSplittedZones( const HYDROData_SequenceOfObjects& theZones )
+void HYDROData_Calculation::SetRegions( const HYDROData_SequenceOfObjects& theRegions )
 {
-  SetReferenceObjects( theZones, DataTag_SplittedZone );
+  SetReferenceObjects( theRegions, DataTag_Region );
 }
 
-Handle(HYDROData_Zone) HYDROData_Calculation::GetSplittedZone( const int theIndex ) const
+Handle(HYDROData_Region) HYDROData_Calculation::GetRegion( const int theIndex ) const
 {
-  return Handle(HYDROData_Zone)::DownCast( 
-           GetReferenceObject( DataTag_SplittedZone, theIndex ) );
+  return Handle(HYDROData_Region)::DownCast( 
+           GetReferenceObject( DataTag_Region, theIndex ) );
 }
 
-HYDROData_SequenceOfObjects HYDROData_Calculation::GetSplittedZones() const
+HYDROData_SequenceOfObjects HYDROData_Calculation::GetRegions() const
 {
-  return GetReferenceObjects( DataTag_SplittedZone );
+  return GetReferenceObjects( DataTag_Region );
 }
 
-void HYDROData_Calculation::RemoveSplittedZones()
+void HYDROData_Calculation::RemoveRegions()
 {
-  ClearReferenceObjects( DataTag_SplittedZone );
+  ClearReferenceObjects( DataTag_Region );
 }