2 #include "HYDROData_Zone.h"
4 #include "HYDROData_Bathymetry.h"
5 #include "HYDROData_Document.h"
6 #include "HYDROData_Polyline.h"
7 #include "HYDROData_Iterator.h"
9 #include <BRepBuilderAPI_MakeFace.hxx>
10 #include <TDataStd_IntegerArray.hxx>
11 #include <TopoDS_Wire.hxx>
14 #include <QStringList>
16 #define PYTHON_ZONE_ID "KIND_ZONE"
18 IMPLEMENT_STANDARD_HANDLE(HYDROData_Zone, HYDROData_Domain)
19 IMPLEMENT_STANDARD_RTTIEXT(HYDROData_Zone, HYDROData_Domain)
21 HYDROData_Zone::HYDROData_Zone()
25 HYDROData_Zone::~HYDROData_Zone()
29 QStringList HYDROData_Zone::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
31 QStringList aResList = HYDROData_Domain::DumpToPython( theTreatedObjects );
32 if ( aResList.isEmpty() )
35 aResList << QString( "" );
37 Handle(HYDROData_Polyline) aRefPolyline = GetPolyline();
38 setPythonReferenceObject( theTreatedObjects, aResList, aRefPolyline, "SetPolyline" );
43 void HYDROData_Zone::SetPolyline( const Handle(HYDROData_Polyline)& thePolyline )
45 SetReferenceObject( thePolyline, DataTag_Polyline );
48 Handle(HYDROData_Polyline) HYDROData_Zone::GetPolyline() const
50 return Handle(HYDROData_Polyline)::DownCast(
51 GetReferenceObject( DataTag_Polyline ) );
54 void HYDROData_Zone::RemovePolyline()
56 ClearReferenceObjects( DataTag_Polyline );
59 TopoDS_Face HYDROData_Zone::Face() const
61 Handle(HYDROData_Polyline) aPolyline = GetPolyline();
62 if( !aPolyline.IsNull() )
64 TopoDS_Wire aWire = aPolyline->Wire();
67 BRepBuilderAPI_MakeFace aMakeFace( aWire, Standard_True );
69 if( aMakeFace.IsDone() )
70 return aMakeFace.Face();
76 QString HYDROData_Zone::getPythonKindId() const
78 return QString( PYTHON_ZONE_ID );