Salome HOME
copyrights are updated
[modules/hydro.git] / src / HYDROData / HYDROData_LandCoverMap.h
index bcc4c0c9196f9f93acf42d0d4883530f46b7b44d..cf6b7ca508dd1e4d2704f2af03d30438da92c58f 100644 (file)
@@ -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<int>& 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