#define HYDROData_LANDCOVER_MAP_HeaderFile
#include <HYDROData_Entity.h>
+#include <TDataStd_ExtStringArray.hxx>
DEFINE_STANDARD_HANDLE( HYDROData_LandCoverMap, HYDROData_Entity )
class TopoDS_Face;
-class TopoDS_Shell;
-class Handle( HYDROData_Polyline );
+class TopoDS_Shape;
+class TopoDS_Iterator;
+class TopTools_ListOfShape;
+class Handle( HYDROData_PolylineXY );
class Handle( HYDROData_Object );
+class HYDROData_MapOfFaceToStricklerType;
+class gp_Pnt2d;
class HYDROData_LandCoverMap : public HYDROData_Entity
{
DataTag_Types,
};
- HYDROData_LandCoverMap();
- ~HYDROData_LandCoverMap();
+public:
+ class Iterator
+ {
+ public:
+ Iterator( const HYDROData_LandCoverMap& );
+ HYDRODATA_EXPORT Iterator( const Handle( HYDROData_LandCoverMap )& );
+ HYDRODATA_EXPORT ~Iterator();
+
+ void Init( const HYDROData_LandCoverMap& );
+ HYDRODATA_EXPORT bool More() const;
+ HYDRODATA_EXPORT void Next();
+
+ int Index() const;
+ HYDRODATA_EXPORT TopoDS_Face Face() const;
+ HYDRODATA_EXPORT QString StricklerType() const;
+ void SetStricklerType( const QString& );
+
+ private:
+ TopoDS_Iterator* myIterator;
+ int myIndex;
+ Handle(TDataStd_ExtStringArray) myArray;
+ };
+
+ enum DBFStatus
+ {
+ DBFStatus_OK,
+ DBFStatus_DIFF_SIZE_ERROR,
+ DBFStatus_OPEN_FILE_ERROR,
+ DBFStatus_NO_SUCH_FIELD_ERROR,
+ DBFStatus_NO_DBFVALUES_CORRESPONDENCE_WARNING
+ };
- int GetNbFaces() const;
- TopoDS_Face GetFace( int theIndex ) const;
+ HYDRODATA_EXPORT HYDROData_LandCoverMap();
+ HYDRODATA_EXPORT virtual ~HYDROData_LandCoverMap();
- QString GetStricklerType( int theIndex ) const;
- void SetStricklerType( int theIndex, const QString& theType );
+ HYDRODATA_EXPORT virtual const ObjectKind GetKind() const;
- bool ImportQGIS( const QString& theFileName );
- bool ExportQGIS( const QString& theFileName ) const;
- bool ExportTelemac( const QString& theFileName ) 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;
- bool Add( const Handle( HYDROData_Object )&, const QString& theType );
- bool Add( const Handle( HYDROData_Polyline )&, const QString& theType );
+ HYDRODATA_EXPORT bool ExportTelemac( const QString& theFileName, double theDeflection ) const;
- bool Remove( int theIndex );
+ HYDRODATA_EXPORT bool Add( const Handle( HYDROData_Object )&, const QString& theType );
+ HYDRODATA_EXPORT bool Add( const Handle( HYDROData_PolylineXY )&, const QString& theType );
- bool Split( const Handle( HYDROData_Polyline )& );
- bool Merge( const QList<int>&, const QString& theType );
+ HYDRODATA_EXPORT bool Remove( const TopoDS_Face& );
+ HYDRODATA_EXPORT bool Remove( const TopTools_ListOfShape& );
+
+ HYDRODATA_EXPORT bool Split( const Handle( HYDROData_PolylineXY )& );
+ HYDRODATA_EXPORT bool Merge( const TopTools_ListOfShape&, const QString& theType );
+
+ HYDRODATA_EXPORT TopoDS_Face FindByPoint( const gp_Pnt2d&, QString& theType ) const;
+
+ HYDRODATA_EXPORT TopoDS_Shape GetShape() const;
+
+ HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
protected:
- TopoDS_Shell GetShape() const;
- void SetShape( const TopoDS_Shell& );
- bool Add( const TopoDS_Face&, const QString& theType );
+ void SetShape( const TopoDS_Shape& );
+
+ bool LocalPartition( const TopoDS_Shape&, const QString& theNewType );
+ 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