class HYDROData_ShapeFile
{
+enum ShapeType
+{
+ ShapeType_Polyline,
+ ShapeType_Polygon
+};
+
public:
HYDRODATA_EXPORT HYDROData_ShapeFile( );
virtual HYDRODATA_EXPORT ~HYDROData_ShapeFile();
-public:
//Export operation
HYDRODATA_EXPORT void Export(const QString& aFileName,
NCollection_Sequence<Handle_HYDROData_PolylineXY> aPolyXYSeq,
int WriteObjectPolyXY(SHPHandle theShpHandle, Handle_HYDROData_PolylineXY thePoly );
int WriteObjectPoly3D(SHPHandle theShpHandle, Handle_HYDROData_Polyline3D thePoly );
int WriteObjectLC(SHPHandle theShpHandle, Handle_HYDROData_LandCover theLC );
+ //Import
+ bool Parse(SHPHandle theHandle, ShapeType theType, int& theShapeTypeOfFile);
//Import Landcover
- void Parse1(SHPHandle theHandle);
- void ProcessSHP(SHPObject* anObj, int i, TopoDS_Face& F);
- HYDRODATA_EXPORT bool ImportLandCovers(const QString theFileName, QStringList& thePolygonsList, TopTools_SequenceOfShape& theFaces);
+ void ReadSHPPolygon(SHPObject* anObj, int i, TopoDS_Face& F);
+ HYDRODATA_EXPORT int ImportLandCovers(const QString theFileName, QStringList& thePolygonsList, TopTools_SequenceOfShape& theFaces, int& theShapeTypeOfFile);
HYDRODATA_EXPORT void Free();
//Import Polyline
- void Parse2( SHPHandle theHandle);
- void ProcessSHPPolyXY(Handle(HYDROData_Document) theDocument, SHPObject* anObj, QString theFileName,
+ void ReadSHPPolyXY(Handle(HYDROData_Document) theDocument, SHPObject* anObj, QString theFileName,
int theInd, NCollection_Sequence<Handle_HYDROData_Entity>& theEntities);
- void ProcessSHPPoly3D(Handle(HYDROData_Document) theDocument, SHPObject* anObj, QString theFileName,
+ void ReadSHPPoly3D(Handle(HYDROData_Document) theDocument, SHPObject* anObj, QString theFileName,
int theInd, NCollection_Sequence<Handle_HYDROData_Entity>& theEntities);
- HYDRODATA_EXPORT bool ImportPolylines(Handle(HYDROData_Document) theDocument, const QString& theFileName,
- NCollection_Sequence<Handle_HYDROData_Entity>& theEntities);
+ HYDRODATA_EXPORT int ImportPolylines(Handle(HYDROData_Document) theDocument, const QString& theFileName,
+ NCollection_Sequence<Handle_HYDROData_Entity>& theEntities, int& theShapeTypeOfFile);
+ HYDRODATA_EXPORT QString GetShapeTypeName(int theType);
private:
void ProcessFace(TopoDS_Face theFace, SHPHandle theShpHandle);
+ int TryOpenShapeFile(QString theFileName);
private:
std::vector<SHPObject*> mySHPObjects;
SHPHandle myHSHP;