Salome HOME
Merge branch 'BR_RIVER' of ssh://git.salome-platform.org/modules/hydro into BR_RIVER
[modules/hydro.git] / src / HYDROData / HYDROData_IProfilesInterpolator.h
index 1b4ec9cd0fdc9d28d81cfc9fdae9f15d44a00858..096957270b5a64e2c4111582d21764c81c5f1730 100644 (file)
@@ -106,8 +106,12 @@ public:
   /**
    * Perform interpolation calculations.
    */
-  HYDRODATA_EXPORT virtual InterpolationError Calculate() = 0;
+  HYDRODATA_EXPORT virtual void Calculate() = 0;
 
+  /**
+   * Get number of calculated profiles ( could be less than the number of profiles to be computed set as a parameter ).
+   * @return the number of really calculated profiles
+   */
   HYDRODATA_EXPORT virtual int GetCalculatedProfilesNumber() const;
 
   /**
@@ -115,7 +119,7 @@ public:
    * \param theProfileIndex the profile index [0, <number of profiles to compute>]
    * \return the profile with the given index or empty vector if the index is out of range
    */
-  std::vector<double> GetResultProfile( const int theProfileIndex ) const;
+  HYDRODATA_EXPORT std::vector<double> GetResultProfile( const int theProfileIndex ) const;
 
 protected:
   /**
@@ -130,6 +134,35 @@ protected:
    */
   HYDRODATA_EXPORT virtual void SetErrorMessage( const std::string& theMessage );
 
+  /**
+   * Get the first profile.
+   * \return the first profile points
+   */
+  HYDRODATA_EXPORT std::vector<double> GetFirstProfile() const;
+
+  /**
+   * Get the second profile.
+   * \return the second profile points
+   */
+  HYDRODATA_EXPORT std::vector<double> GetSecondProfile() const;
+
+  /**
+   * Get number of profiles to compute.
+   * \return the current value of number of result profiles parameter
+   */
+  HYDRODATA_EXPORT virtual int GetNbProfilesToCompute() const;
+
+  /**
+   * Clear result data (including errors).
+   */
+  HYDRODATA_EXPORT void ClearResults();
+
+  /**
+   * Insert the calculated profile to the resuls.
+   * \param theProfile the profile to insert
+   */
+  HYDRODATA_EXPORT void InsertResultProfile( const std::vector<double>& theProfile );
+
 private:
   std::vector<double> myProfile1, myProfile2; ///< the two input profiles
   int myResultProfilesNumber; ///< the number of profiles to compute
@@ -138,7 +171,7 @@ private:
   InterpolationError myErrorCode; ///< the last error code
   std::string myErrorMessage; ///< the last error message
 
-  std::vector<std::vector<double>> myResultProfiles; ///< the list of result profiles
+  std::vector< std::vector<double> > myResultProfiles; ///< the list of result profiles
 };
 
 #endif