17 #ifndef IGNITION_MATH_TEMPERATURE_HH_ 18 #define IGNITION_MATH_TEMPERATURE_HH_ 23 #include <ignition/math/config.hh> 30 inline namespace IGNITION_MATH_VERSION_NAMESPACE
33 class TemperaturePrivate;
87 public:
static double KelvinToCelsius(
const double _temp);
92 public:
static double KelvinToFahrenheit(
const double _temp);
97 public:
static double CelsiusToFahrenheit(
const double _temp);
102 public:
static double CelsiusToKelvin(
const double _temp);
107 public:
static double FahrenheitToCelsius(
const double _temp);
112 public:
static double FahrenheitToKelvin(
const double _temp);
116 public:
void SetKelvin(
const double _temp);
120 public:
void SetCelsius(
const double _temp);
124 public:
void SetFahrenheit(
const double _temp);
128 public:
double Kelvin()
const;
132 public:
double Celsius()
const;
136 public:
double Fahrenheit()
const;
141 public:
double operator()()
const;
146 public:
Temperature &operator=(
const double _temp);
169 return _t + _temp.
Kelvin();
175 public:
const Temperature &operator+=(
const double _temp);
198 return _t - _temp.
Kelvin();
204 public:
const Temperature &operator-=(
const double _temp);
227 return _t * _temp.
Kelvin();
233 public:
const Temperature &operator*=(
const double _temp);
256 return _t / _temp.
Kelvin();
262 public:
const Temperature &operator/=(
const double _temp);
272 public:
bool operator==(
const Temperature &_temp)
const;
278 public:
bool operator==(
const double _temp)
const;
283 public:
bool operator!=(
const Temperature &_temp)
const;
289 public:
bool operator!=(
const double _temp)
const;
294 public:
bool operator<(
const Temperature &_temp)
const;
300 public:
bool operator<(
const double _temp)
const;
305 public:
bool operator<=(
const Temperature &_temp)
const;
311 public:
bool operator<=(
const double _temp)
const;
316 public:
bool operator>(
const Temperature &_temp)
const;
322 public:
bool operator>(
const double _temp)
const;
327 public:
bool operator>=(
const Temperature &_temp)
const;
333 public:
bool operator>=(
const double _temp)
const;
340 const ignition::math::Temperature &_temp)
342 _out << _temp.Kelvin();
352 ignition::math::Temperature &_temp)
355 _in.setf(std::ios_base::skipws);
360 _temp.SetKelvin(kelvin);
367 #pragma warning(push) 368 #pragma warning(disable: 4251) 370 private: std::unique_ptr<TemperaturePrivate> dataPtr;
friend Temperature operator/(double _t, const Temperature &_temp)
Division operator for double type.
Definition: Temperature.hh:254
friend std::istream & operator>>(std::istream &_in, ignition::math::Temperature &_temp)
Stream extraction operator.
Definition: Temperature.hh:351
friend Temperature operator-(double _t, const Temperature &_temp)
Subtraction operator for double type.
Definition: Temperature.hh:196
friend Temperature operator+(double _t, const Temperature &_temp)
Addition operator for double type.
Definition: Temperature.hh:167
double Kelvin() const
Get the temperature in Kelvin.
friend std::ostream & operator<<(std::ostream &_out, const ignition::math::Temperature &_temp)
Stream insertion operator.
Definition: Temperature.hh:339
A class that stores temperature information, and allows conversion between different units.
Definition: Temperature.hh:67