SEScalarTemperature.h
1 /* Distributed under the Apache License, Version 2.0.
2  See accompanying NOTICE file for details.*/
3 
4 #pragma once
5 #include "properties/SEScalar.h"
6 
7 class CDM_DECL TemperatureUnit : public CCompoundUnit
8 {
9 public:
10  TemperatureUnit(const std::string& u) : CCompoundUnit(u) {}
11  virtual ~TemperatureUnit() {}
12 
13  static bool IsValidUnit(const std::string& unit);
14  static const TemperatureUnit& GetCompoundUnit(const std::string& unit);
15 
16  static const TemperatureUnit F;
17  static const TemperatureUnit C;
18  static const TemperatureUnit K;
19  static const TemperatureUnit R;
20 };
21 
22 class CDM_DECL SEScalarTemperature : public SEScalarQuantity<TemperatureUnit>
23 {
24 public:
26  virtual ~SEScalarTemperature() {}
27 
28  double GetValue(const TemperatureUnit& unit) const;// Zero is not Zero for all units, gotta remove that logic for this scalar type
29 };
double GetValue() const =delete
SEScalarTemperature()
Definition: SEScalarTemperature.h:25
virtual ~TemperatureUnit()
Definition: SEScalarTemperature.h:11
virtual ~SEScalarTemperature()
Definition: SEScalarTemperature.h:26
Definition: SEScalar.h:127
static const TemperatureUnit C
Definition: SEScalarTemperature.h:17
Definition: SEScalarTemperature.h:22
TemperatureUnit(const std::string &u)
Definition: SEScalarTemperature.h:10
Definition: SEScalarTemperature.h:7
static const TemperatureUnit R
Definition: SEScalarTemperature.h:19
Definition: CompoundUnit.h:39
static const TemperatureUnit F
Definition: SEScalarTemperature.h:16
static const TemperatureUnit K
Definition: SEScalarTemperature.h:18