X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Calculation.cxx;h=9514bcbd5945ca2f2df3295d0979e1f327c3b410;hb=f108c7fd8c3b2dbb8c263b14456a31f8dd1d0921;hp=d56296faa6f63366f663fc3853b8463b7e6b3d60;hpb=1c5e5ce146491c870ecaf7fbffa48d43254aed88;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Calculation.cxx b/src/HYDROData/HYDROData_Calculation.cxx index d56296fa..9514bcbd 100644 --- a/src/HYDROData/HYDROData_Calculation.cxx +++ b/src/HYDROData/HYDROData_Calculation.cxx @@ -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 #include -#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 ); +} +