Salome HOME
e22f7a575c00af47958f6ec196aa4f6a69e84081
[modules/hydro.git] / src / HYDROData / HYDROData_Calculation.cxx
1
2 #include "HYDROData_Calculation.h"
3
4 #include "HYDROData_Document.h"
5 #include "HYDROData_Iterator.h"
6 #include "HYDROData_Polyline.h"
7
8 #include <TDataStd_ReferenceList.hxx>
9
10 #include <QStringList>
11
12 #define PYTHON_BATHYMETRY_ID "KIND_CALCULATION"
13
14 IMPLEMENT_STANDARD_HANDLE(HYDROData_Calculation, HYDROData_Object)
15 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Calculation, HYDROData_Object)
16
17 HYDROData_Calculation::HYDROData_Calculation()
18 {
19 }
20
21 HYDROData_Calculation::~HYDROData_Calculation()
22 {
23 }
24
25 QStringList HYDROData_Calculation::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
26 {
27   QStringList aResList;
28
29   Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( this );
30   if ( aDocument.IsNull() )
31     return aResList;
32                              
33   QString aDocName = aDocument->GetDocPyName();
34   QString aCalculName = GetName();
35
36   aResList << QString( "%1 = %2.CreateObject( %3 );" )
37               .arg( aCalculName ).arg( aDocName ).arg( PYTHON_BATHYMETRY_ID );
38   aResList << QString( "%1.SetName( \"%2\" );" )
39               .arg( aCalculName ).arg( aCalculName );
40
41   // TO_IMPLEMENT
42
43   return aResList;
44 }
45
46 void HYDROData_Calculation::SetBoundaryPolyline( const Handle(HYDROData_Polyline)& thePolyline )
47 {
48   Handle(TDataStd_ReferenceList) aRefs;
49   myLab.FindChild( DataTag_BoundaryPolyline ).FindAttribute( TDataStd_ReferenceList::GetID(), aRefs );
50   if ( aRefs.IsNull() )
51     aRefs = TDataStd_ReferenceList::Set( myLab.FindChild( DataTag_BoundaryPolyline ) );
52
53   aRefs->Clear();
54
55   if ( thePolyline.IsNull() )
56     return;
57
58   aRefs->Append( thePolyline->Label() );
59 }
60
61 Handle(HYDROData_Polyline) HYDROData_Calculation::GetBoundaryPolyline() const
62 {
63   Handle(HYDROData_Polyline) aRes;
64
65   Handle(TDataStd_ReferenceList) aRefs;
66   myLab.FindChild( DataTag_BoundaryPolyline ).FindAttribute( TDataStd_ReferenceList::GetID(), aRefs );
67   if ( !aRefs.IsNull() && !aRefs->IsEmpty() )
68   {
69     aRes = Handle(HYDROData_Polyline)::DownCast( HYDROData_Iterator::Object( aRefs->First() ) );
70   }
71
72   return aRes;
73 }