Salome HOME
Sorting alphabetically.
[modules/hydro.git] / src / HYDROData / HYDROData_Calculation.cxx
index d56296faa6f63366f663fc3853b8463b7e6b3d60..9514bcbd5945ca2f2df3295d0979e1f327c3b410 100644 (file)
@@ -2,10 +2,16 @@
 #include "HYDROData_Calculation.h"
 
 #include "HYDROData_Document.h"
+#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)
@@ -30,11 +36,126 @@ 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 );
+  aResList << QString( "" );
+
+  Handle(HYDROData_Polyline) aBoundaryPolyline = GetBoundaryPolyline();
+  setPythonReferenceObject( theTreatedObjects, aResList, aBoundaryPolyline, "SetBoundaryPolyline" );
+  aResList << QString( "" );
 
-  // TO_IMPLEMENT
+  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;
 }
+
+void HYDROData_Calculation::SetBoundaryPolyline( const Handle(HYDROData_Polyline)& thePolyline )
+{
+  SetReferenceObject( thePolyline, DataTag_BoundaryPolyline );
+}
+
+Handle(HYDROData_Polyline) HYDROData_Calculation::GetBoundaryPolyline() const
+{
+  return Handle(HYDROData_Polyline)::DownCast( 
+           GetReferenceObject( DataTag_BoundaryPolyline ) );
+}
+
+void HYDROData_Calculation::RemoveBoundaryPolyline()
+{
+  ClearReferenceObjects( DataTag_BoundaryPolyline );
+}
+
+int HYDROData_Calculation::NbZones() const
+{
+  return NbReferenceObjects( DataTag_Zone );
+}
+
+void HYDROData_Calculation::AddZone( const Handle(HYDROData_Zone)& theZone )
+{
+  AddReferenceObject( theZone, DataTag_Zone );
+}
+
+void HYDROData_Calculation::SetZone( const int                     theIndex,
+                                     const Handle(HYDROData_Zone)& theZone )
+{
+  SetReferenceObject( theZone, DataTag_Zone, theIndex );
+}
+
+void HYDROData_Calculation::SetZones( const HYDROData_SequenceOfObjects& theZones )
+{
+  SetReferenceObjects( theZones, DataTag_Zone );
+}
+
+Handle(HYDROData_Zone) HYDROData_Calculation::GetZone( const int theIndex ) const
+{
+  return Handle(HYDROData_Zone)::DownCast( 
+           GetReferenceObject( DataTag_Zone, theIndex ) );
+}
+
+HYDROData_SequenceOfObjects HYDROData_Calculation::GetZones() const
+{
+  return GetReferenceObjects( DataTag_Zone );
+}
+
+void HYDROData_Calculation::RemoveZones()
+{
+  ClearReferenceObjects( DataTag_Zone );
+}
+
+int HYDROData_Calculation::NbRegions() const
+{
+  return NbReferenceObjects( DataTag_Region );
+}
+
+void HYDROData_Calculation::AddRegion( const Handle(HYDROData_Region)& theRegion )
+{
+  AddReferenceObject( theRegion, DataTag_Region );
+}
+
+void HYDROData_Calculation::SetRegion( const int                       theIndex,
+                                       const Handle(HYDROData_Region)& theRegion )
+{
+  SetReferenceObject( theRegion, DataTag_Region, theIndex );
+}
+
+void HYDROData_Calculation::SetRegions( const HYDROData_SequenceOfObjects& theRegions )
+{
+  SetReferenceObjects( theRegions, DataTag_Region );
+}
+
+Handle(HYDROData_Region) HYDROData_Calculation::GetRegion( const int theIndex ) const
+{
+  return Handle(HYDROData_Region)::DownCast( 
+           GetReferenceObject( DataTag_Region, theIndex ) );
+}
+
+HYDROData_SequenceOfObjects HYDROData_Calculation::GetRegions() const
+{
+  return GetReferenceObjects( DataTag_Region );
+}
+
+void HYDROData_Calculation::RemoveRegions()
+{
+  ClearReferenceObjects( DataTag_Region );
+}
+