Salome HOME
#571 - Land Cover: calculation of Strickler coefficient
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImportPolylineOp.h
index 4e7a066e808a62d7edba884661740035f54798f4..20b2f6e2ee657f03a0124221aab41729005e38da 100644 (file)
 #include "HYDROGUI_Operation.h"
 #include <vector>
 
+//extern "C" {
+#include <shapelib/shapefil.h> 
+//};
+
 class SUIT_FileDlg;
 class QFile;
 class gp_XYZ;
+
 struct HYDROGUI_CurveBlock
 {
+  //HYDROGUI_CurveBlock() : myType(-1), myIsConnected(false), myIsClosed(false), myName(""), myCurvePlane(-1), myRefRatio(1.0) 
+    //{};
   std::vector<gp_XYZ> myXYZPoints;
-  bool myType;
+  int myType;
   bool myIsConnected;
   bool myIsClosed;
   int myCurvePlane;
   QString myName;
+  std::vector<double> myAdditionalCurveInfo;
+  std::vector<double> myRefCoords;
+  double myRefRatio;
 };
 
 class HYDROGUI_ImportPolylineOp : public HYDROGUI_Operation
@@ -50,11 +60,15 @@ public:
 protected:
   virtual void startOperation();
   virtual void onApply();
-  virtual void Process();
-  bool Parse( QFile&  theFile );
+  void ProcessSX();
+  bool Parse( QFile& theFile );
+  void Parse( SHPHandle theHandle);
+  void ProcessSHPPolyXY(SHPObject* anObj, QString theFileName, int theInd);
+  void ProcessSHPPoly3D(SHPObject* anObj, QString theFileName, int theInd);
 private:
   SUIT_FileDlg* myFileDlg;
   std::vector<HYDROGUI_CurveBlock> myCurveBlocks;
+  std::vector<SHPObject*> mySHPObjects;
 };
 
 #endif