Salome HOME
Merge branch 'BR_v14_rc' into BR_quadtree
[modules/hydro.git] / src / HYDROData / HYDROData_Bathymetry.h
index e8682fd461db8beaa38415f8104c4907c0bc61ad..427199688f9ac274de2a2a927b43788b8ba8fd36 100644 (file)
@@ -1,11 +1,30 @@
+// Copyright (C) 2014-2015  EDF-R&D
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
 #ifndef HYDROData_Bathymetry_HeaderFile
 #define HYDROData_Bathymetry_HeaderFile
 
 #include "HYDROData_IAltitudeObject.h"
+#include "HYDROData_QuadtreeNode.hxx"
 
 class QFile;
 class gp_XYZ;
+class Handle_HYDROData_PolylineXY;
 
 DEFINE_STANDARD_HANDLE(HYDROData_Bathymetry, HYDROData_IAltitudeObject)
 
@@ -19,8 +38,8 @@ class HYDROData_Bathymetry : public HYDROData_IAltitudeObject
 {
 public:
 
-  typedef gp_XYZ               AltitudePoint;
-  typedef QList<AltitudePoint> AltitudePoints;
+  typedef gp_XYZ                              AltitudePoint;
+  typedef NCollection_Sequence<AltitudePoint> AltitudePoints;
 
 protected:
 
@@ -64,6 +83,7 @@ public:
    * \return points list
    */
   HYDRODATA_EXPORT virtual AltitudePoints   GetAltitudePoints() const;
+  HYDRODATA_EXPORT virtual HYDROData_QuadtreeNode* GetQuadtreeNodes() const;
 
   /**
    * Remove all altitude points.
@@ -84,12 +104,12 @@ public:
    * Stores the bathymetry file path
    * \param theFilePath image file path
    */
-  HYDRODATA_EXPORT void                     SetFilePath( const QString& theFilePath );
+  HYDRODATA_EXPORT void                     SetFilePath( const TCollection_AsciiString& theFilePath );
 
   /**
    * Returns uploaded bathymetry file path
    */
-  HYDRODATA_EXPORT QString                  GetFilePath() const;
+  HYDRODATA_EXPORT TCollection_AsciiString  GetFilePath() const;
 
   /**
    * Set flag indicating needs to invert altitude values
@@ -110,9 +130,11 @@ public:
    * \param theFileName the path to file
    * \return \c true if file has been successfully read
    */
-  HYDRODATA_EXPORT virtual bool             ImportFromFile( const QString& theFileName );
+  HYDRODATA_EXPORT virtual bool             ImportFromFile( const TCollection_AsciiString& theFileName );
 
-  HYDRODATA_EXPORT bool CreateBoundaryPolyline() const;
+  HYDRODATA_EXPORT Handle_HYDROData_PolylineXY CreateBoundaryPolyline() const;
+
+  HYDRODATA_EXPORT virtual void UpdateLocalCS( double theDx, double theDy );
 
 private:
 
@@ -121,6 +143,10 @@ private:
    */
   bool                                      importFromXYZFile( QFile&          theFile,
                                                                AltitudePoints& thePoints ) const;
+  static std::map<int, HYDROData_QuadtreeNode*> myQuadtrees;
+
+  bool                                      importFromASCFile( QFile&          theFile,
+                                                               AltitudePoints& thePoints ) const;
 
 protected: