X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_LandCoverMap.h;h=cf6b7ca508dd1e4d2704f2af03d30438da92c58f;hb=545854182f0363f61284d5abe34c3627d4f3b088;hp=bcc4c0c9196f9f93acf42d0d4883530f46b7b44d;hpb=b7783f8b6083202f887c371c74395cf7da13b990;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_LandCoverMap.h b/src/HYDROData/HYDROData_LandCoverMap.h index bcc4c0c9..cf6b7ca5 100644 --- a/src/HYDROData/HYDROData_LandCoverMap.h +++ b/src/HYDROData/HYDROData_LandCoverMap.h @@ -28,9 +28,10 @@ class TopoDS_Face; class TopoDS_Shape; class TopoDS_Iterator; class TopTools_ListOfShape; -class Handle( HYDROData_Polyline ); +class Handle( HYDROData_PolylineXY ); class Handle( HYDROData_Object ); -class HYDROData_MapOfShapeToStricklerType; +class HYDROData_MapOfFaceToStricklerType; +class gp_Pnt2d; class HYDROData_LandCoverMap : public HYDROData_Entity { @@ -49,14 +50,17 @@ public: { public: Iterator( const HYDROData_LandCoverMap& ); - ~Iterator(); + HYDRODATA_EXPORT Iterator( const Handle( HYDROData_LandCoverMap )& ); + HYDRODATA_EXPORT ~Iterator(); void Init( const HYDROData_LandCoverMap& ); - bool More() const; - void Next(); + HYDRODATA_EXPORT bool More() const; + HYDRODATA_EXPORT void Next(); - TopoDS_Face Face() const; - QString StricklerType() const; + int Index() const; + HYDRODATA_EXPORT TopoDS_Face Face() const; + HYDRODATA_EXPORT QString StricklerType() const; + void SetStricklerType( const QString& ); private: TopoDS_Iterator* myIterator; @@ -64,35 +68,62 @@ public: Handle(TDataStd_ExtStringArray) myArray; }; - HYDROData_LandCoverMap(); - ~HYDROData_LandCoverMap(); + enum DBFStatus + { + DBFStatus_OK, + DBFStatus_DIFF_SIZE_ERROR, + DBFStatus_OPEN_FILE_ERROR, + DBFStatus_NO_SUCH_FIELD_ERROR, + DBFStatus_NO_DBFVALUES_CORRESPONDENCE_WARNING + }; + + HYDRODATA_EXPORT HYDROData_LandCoverMap(); + HYDRODATA_EXPORT virtual ~HYDROData_LandCoverMap(); + + HYDRODATA_EXPORT virtual const ObjectKind GetKind() const; + + HYDRODATA_EXPORT DBFStatus ImportDBF( const QString& theDBFFileName, + const QString& theFieldName, + const QStringList& DBFValues, + const QStringList& StricklerTypes, + const QList& theIndices ); + + HYDRODATA_EXPORT void ExportDBF( const QString& theDBFFileName, + const QString& theFieldName, + const QStringList& theDBFValues, + const QStringList& theStricklerTypes ) const; + + HYDRODATA_EXPORT bool ExportTelemac( const QString& theFileName, double theDeflection ) const; + + HYDRODATA_EXPORT bool Add( const Handle( HYDROData_Object )&, const QString& theType ); + HYDRODATA_EXPORT bool Add( const Handle( HYDROData_PolylineXY )&, const QString& theType ); - virtual const ObjectKind GetKind() const; + HYDRODATA_EXPORT bool Remove( const TopoDS_Face& ); + HYDRODATA_EXPORT bool Remove( const TopTools_ListOfShape& ); - bool ImportQGIS( const QString& theFileName ); - bool ExportQGIS( const QString& theFileName ) const; - bool ExportTelemac( const QString& theFileName ) const; + HYDRODATA_EXPORT bool Split( const Handle( HYDROData_PolylineXY )& ); + HYDRODATA_EXPORT bool Merge( const TopTools_ListOfShape&, const QString& theType ); - bool Add( const Handle( HYDROData_Object )&, const QString& theType ); - bool Add( const Handle( HYDROData_Polyline )&, const QString& theType ); + HYDRODATA_EXPORT TopoDS_Face FindByPoint( const gp_Pnt2d&, QString& theType ) const; - bool Remove( const TopoDS_Face& ); + HYDRODATA_EXPORT TopoDS_Shape GetShape() const; - bool Split( const Handle( HYDROData_Polyline )& ); - bool Merge( const TopTools_ListOfShape&, const QString& theType ); + HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const; protected: - TopoDS_Shape GetShape() const; void SetShape( const TopoDS_Shape& ); bool LocalPartition( const TopoDS_Shape&, const QString& theNewType ); - void StoreLandCovers( const HYDROData_MapOfShapeToStricklerType& ); + static TopoDS_Shape MergeFaces(const TopTools_ListOfShape& theFaces, + bool IsToUnify, double theTolerance = 1E-3 ); + void StoreLandCovers( const HYDROData_MapOfFaceToStricklerType& ); public: DEFINE_STANDARD_RTTI( HYDROData_LandCoverMap ); private: friend class Iterator; + friend class test_HYDROData_LandCoverMap; }; #endif