//************************************************************************************************** //* FRIDA: fast reliable interactive data analysis //* (C) Joachim Wuttke 1990-, v2(C++) 2001- //* http://apps.jcns.fz-juelich.de/frida //************************************************************************************************** //! \file axis.hpp //! \brief CAxis: One axis of a coordinate frame. //! One axis of a coordinate frame, for use in plotting. class CAxis { public: std::string name; //!< usually "x" or "y" double inf; //!< infimum: lower plot limit double sup; //!< supremum: upper plot limit bool logflag; //!< is logarithmic ? bool force; //!< force points into range ? CAxis( const std::string _name, bool _log ) : name(_name), logflag(_log), force(false) { set_auto(); } void set_log( bool _log ); void set_auto(); void set_limits( double _inf, double _sup ); void set_rounded_limits( double _inf, double _sup ); void ask_and_set( const std::string& quest ); std::string str() const; std::string info() const; bool finite() const; bool contains( double val ) const; bool close_enough( double v1, double v2, double tol ) const; double value2plotcoord( double v ) const; double value2ploterror( double v, double dv ) const; void set_xgrid( std::vector<double>& x, int n ) const; double pc( double v ) const; double pcerr( double v, double dv ) const; void calc_ticks( std::vector<double>& Tacks, int *ntpt, double *ticklim ) const; };