]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
File path data has been added for Bathymetry and Image objects.
authoradv <adv@opencascade.com>
Fri, 6 Sep 2013 08:08:10 +0000 (08:08 +0000)
committeradv <adv@opencascade.com>
Fri, 6 Sep 2013 08:08:10 +0000 (08:08 +0000)
src/HYDROData/HYDROData_Bathymetry.cxx
src/HYDROData/HYDROData_Bathymetry.h
src/HYDROData/HYDROData_Image.cxx
src/HYDROData/HYDROData_Image.h

index 7da61f7089c0795b2c0a557e2a9c150065cd6461..14e6a24af744e33d274ce3c545a5ac1a777d4a53 100644 (file)
@@ -6,6 +6,7 @@
 #include <gp_XYZ.hxx>
 
 #include <TDataStd_RealArray.hxx>
+#include <TDataStd_AsciiString.hxx>
 
 #include <QFile>
 #include <QFileInfo>
@@ -274,6 +275,23 @@ double HYDROData_Bathymetry::GetAltitudeForPoint( const gp_XY& thePoint ) const
   return aResAltitude;
 }
 
+void HYDROData_Bathymetry::SetFilePath(const QString& theFilePath)
+{
+  TCollection_AsciiString anAsciiStr( theFilePath.toStdString().c_str() );
+  TDataStd_AsciiString::Set( myLab.FindChild( DataTag_FilePath ), anAsciiStr );
+}
+
+QString HYDROData_Bathymetry::GetFilePath() const
+{
+  QString aRes;
+
+  Handle(TDataStd_AsciiString) anAsciiStr;
+  if ( myLab.FindChild( DataTag_FilePath ).FindAttribute( TDataStd_AsciiString::GetID(), anAsciiStr ) )
+    aRes = QString( anAsciiStr->Get().ToCString() );
+
+  return aRes;
+}
+
 bool HYDROData_Bathymetry::ImportFromFile( const QString& theFileName )
 {
   // Try to open the file
@@ -296,7 +314,8 @@ bool HYDROData_Bathymetry::ImportFromFile( const QString& theFileName )
 
   if ( aRes )
   {
-    // Update altitude points of this Bathymetry
+    // Update file path and altitude points of this Bathymetry
+    SetFilePath( theFileName );
     SetAltitudePoints( aPoints );
   }
 
index d14110f828cad3536b02167efe9ac3f0d4cdbc3c..3b74f4695473824aa9fe2fd73fecf84827cbbe81 100644 (file)
@@ -32,7 +32,8 @@ protected:
   enum DataTag
   {
     DataTag_First = HYDROData_Object::DataTag_First + 100, ///< first tag, to reserve
-    DataTag_AltitudePoints ///< altitude points, array of reals
+    DataTag_AltitudePoints, ///< altitude points, array of reals
+    DataTag_FilePath        ///< bathymetry imported file path
   };
 
 public:
@@ -89,6 +90,17 @@ public:
 public:
   // Public methods to work with files.
 
+  /**
+   * Stores the bathymetry file path
+   * \param theFilePath image file path
+   */
+  HYDRODATA_EXPORT void                     SetFilePath( const QString& theFilePath );
+
+  /**
+   * Returns uploaded bathymetry file path
+   */
+  HYDRODATA_EXPORT QString                  GetFilePath() const;
+
   /**
    * Imports Bathymetry data from file. The supported file types:
    *  - xyz
index a41cc26415820521fa13192f7b5471a25bdacd61..930d2a0e0733b9c04f8aa5c4ee5761e3cc7fc69a 100644 (file)
@@ -7,6 +7,7 @@
 #include <TDataStd_ReferenceList.hxx>
 #include <TDataStd_Name.hxx>
 #include <TDataStd_UAttribute.hxx>
+#include <TDataStd_AsciiString.hxx>
 #include <TDF_ListIteratorOfLabelList.hxx>
 
 static const Standard_GUID GUID_MUST_BE_UPDATED("80f2bb81-3873-4631-8ddd-940d2119f000");
@@ -58,6 +59,23 @@ QImage HYDROData_Image::Image()
   return aResult;
 }
 
+void HYDROData_Image::SetFilePath(const QString& theFilePath)
+{
+  TCollection_AsciiString anAsciiStr( theFilePath.toStdString().c_str() );
+  TDataStd_AsciiString::Set( myLab.FindChild( DataTag_FilePath ), anAsciiStr );
+}
+
+QString HYDROData_Image::GetFilePath() const
+{
+  QString aRes;
+
+  Handle(TDataStd_AsciiString) anAsciiStr;
+  if ( myLab.FindChild( DataTag_FilePath ).FindAttribute( TDataStd_AsciiString::GetID(), anAsciiStr ) )
+    aRes = QString( anAsciiStr->Get().ToCString() );
+
+  return aRes;
+}
+
 void HYDROData_Image::SetTrsf(const QTransform& theTrsf)
 {
   // locate 9 coeffs of matrix into the real array
index e2df2a4e2465363e8de8c381e593452dd282df4b..8b069add8f2f4d5fc2f2263a417163f1221c08ca 100644 (file)
@@ -23,8 +23,9 @@ protected:
   enum DataTag
   {
     DataTag_First = HYDROData_Object::DataTag_First + 100, ///< first tag, to reserve
-    DataTag_Operator,   ///< name of the operator that must be executed for image update
-    DataTag_TrsfPoints  ///< image transformation points (3 input + 3 output)
+    DataTag_Operator,    ///< name of the operator that must be executed for image update
+    DataTag_TrsfPoints,  ///< image transformation points (3 input + 3 output)
+    DataTag_FilePath     ///< image imported file path
   };
 
 public:
@@ -46,6 +47,17 @@ public:
    */
   HYDRODATA_EXPORT QImage Image();
 
+  /**
+   * Stores the image file path
+   * \param theFilePath image file path
+   */
+  HYDRODATA_EXPORT void SetFilePath(const QString& theFilePath);
+
+  /**
+   * Returns uploaded image file path
+   */
+  HYDRODATA_EXPORT QString GetFilePath() const;
+
   /**
    * Stores the image transformation
    * \param theTrsf new transformation