/** \file Declaration of class ProfileResult \author Luis Prado Jr \version $Id$ \date 06 Jun 2005 */ #ifndef _atm_ProfileResult_h_ #define _atm_ProfileResult_h_ static const char CVSId_atm_ProfileResult[] = "$Id$"; #include #include #include namespace utl { class TabulatedFunctionErrors; } namespace atm { /** \class ProfileResult \brief Class describing the Atmospheric profile \author Luis Prado Jr \date 06 Jun 2005 \ingroup atm */ class ProfileResult { public: /// Specify whether data are tabulated on log or linear scale // enum Binning { // ordinate is linear scale eLinear = 0, // ordinate is log scale eLog }; ProfileResult(); ProfileResult(const utl::TabulatedFunctionErrors& profile, const Binning bX, const Binning bY); ~ProfileResult(); ProfileResult(const ProfileResult& profResult); ProfileResult& operator=(const ProfileResult& profResult); /// Get the Y value (coordinate) for given X (ordinate) double Y(const double x) const; /// Get the error on Y (coordinate) for given X (ordinate) // TO BE IMPLEMENTED (to start, could take error for closest point) double YError(const double /*x*/) const { return 0; } /// Return the maximum value for X (ordinate) stored in the profile double MaxX() const; /// Return the minimum value for X (ordinate) stored in the profile double MinX() const; /// returns true, if the X (ordinate) is in the range covered by the results bool IsInValidRange(const double x) const; /// Return the binning type (log or linear) use for the Y axis Binning BinningX() const { return fBinningX; } /// Return the binning type (log or linear) use for the Y axis Binning BinningY() const { return fBinningY; } private: utl::TabulatedFunctionErrors* fProfile; Binning fBinningX; Binning fBinningY; void Clear(); friend class VProfileModel; friend class InclinedAtmosphericProfile; }; } // atm #endif // _atm_ProfileResult_h_ // Configure (x)emacs for this file ... // Local Variables: // mode:c++ // compile-command: "make -C .. -k" // End: