2 #include "HYDROData_Region.h"
4 #include "HYDROData_Document.h"
5 #include "HYDROData_Iterator.h"
6 #include "HYDROData_Zone.h"
10 #define PYTHON_REGION_ID "KIND_REGION"
12 IMPLEMENT_STANDARD_HANDLE(HYDROData_Region, HYDROData_Entity)
13 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Region, HYDROData_Entity)
16 HYDROData_Region::HYDROData_Region()
20 HYDROData_Region::~HYDROData_Region()
24 QStringList HYDROData_Region::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
28 Handle(HYDROData_Document) aDocument = HYDROData_Document::Document( this );
29 if ( aDocument.IsNull() )
32 QString aDocName = aDocument->GetDocPyName();
33 QString aRegionName = GetName();
35 aResList << QString( "%1 = %2.CreateObject( %3 );" )
36 .arg( aRegionName ).arg( aDocName ).arg( PYTHON_REGION_ID );
37 aResList << QString( "%1.SetName( \"%2\" );" )
38 .arg( aRegionName ).arg( aRegionName );
39 aResList << QString( "" );
41 HYDROData_SequenceOfObjects aZones = GetZones();
42 HYDROData_SequenceOfObjects::Iterator anIter( aZones );
43 for ( ; anIter.More(); anIter.Next() )
45 Handle(HYDROData_Zone) aRefZone =
46 Handle(HYDROData_Zone)::DownCast( anIter.Value() );
47 if ( !aRefZone.IsNull() )
48 setPythonReferenceObject( theTreatedObjects, aResList, aRefZone, "AddZone" );
50 aResList << QString( "" );
55 Handle(HYDROData_Zone) HYDROData_Region::AddNewZone()
57 TDF_Label aNewLab = myLab.FindChild( ChildTag_Zone ).NewChild();
59 return Handle(HYDROData_Zone)::DownCast(
60 HYDROData_Iterator::CreateObject( aNewLab, KIND_ZONE ) );
63 void HYDROData_Region::RemoveChildZones()
65 myLab.FindChild( ChildTag_Zone ).ForgetAllAttributes( true );
68 int HYDROData_Region::NbZones() const
70 return NbReferenceObjects( DataTag_Zone );
73 void HYDROData_Region::AddZone( const Handle(HYDROData_Zone)& theZone )
75 AddReferenceObject( theZone, DataTag_Zone );
78 void HYDROData_Region::SetZone( const int theIndex,
79 const Handle(HYDROData_Zone)& theZone )
81 SetReferenceObject( theZone, DataTag_Zone, theIndex );
84 void HYDROData_Region::InsertZone( const int theBeforeIndex,
85 const Handle(HYDROData_Zone)& theZone )
87 InsertReferenceObject( theZone, DataTag_Zone, theBeforeIndex );
90 void HYDROData_Region::SetZones( const HYDROData_SequenceOfObjects& theZones )
92 SetReferenceObjects( theZones, DataTag_Zone );
95 Handle(HYDROData_Zone) HYDROData_Region::GetZone( const int theIndex ) const
97 return Handle(HYDROData_Zone)::DownCast(
98 GetReferenceObject( DataTag_Zone, theIndex ) );
101 HYDROData_SequenceOfObjects HYDROData_Region::GetZones() const
103 return GetReferenceObjects( DataTag_Zone );
106 void HYDROData_Region::RemoveZone( const Handle(HYDROData_Zone)& theZone )
108 if ( theZone.IsNull() )
111 RemoveReferenceObject( theZone->Label(), DataTag_Zone );
114 void HYDROData_Region::RemoveZone( const int theIndex )
116 RemoveReferenceObject( DataTag_Zone, theIndex );
119 void HYDROData_Region::RemoveZones()
121 ClearReferenceObjects( DataTag_Zone );