Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members

CelsiusTemperature.cc

Go to the documentation of this file.
00001 
00005 /* Copyright (C) 2004, Bernd Speiser */
00006 
00007 /* This file is part of PhysicalQuantities.
00008 
00009 PhysicalQuantities is free software; you can redistribute it and/or
00010 modify it under the terms of the GNU General Public License
00011 as published by the Free Software Foundation; either version 2
00012 of the License, or (at your option) any later version.
00013 
00014 PhysicalQuantities is distributed in the hope that it will be useful,
00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 GNU General Public License for more details.
00018   
00019 You should have received a copy of the GNU General Public License
00020 along with this program; if not, write to the Free Software
00021 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
00022 02111-1307, USA.
00023 */
00024 
00025 #ifndef _CelsiusTemperature_cc
00026 #define _CelsiusTemperature_cc
00027 
00028 #include "Quantity/Variable.h"
00029 
00030 #include "PhysicalQuantities/CelsiusTemperature.h"
00031 #include "PhysicalQuantities/ThermodynamicTemperature.h"
00032 #include "PhysicalQuantities/FahrenheitTemperature.h"
00033 
00034 namespace Quantities {
00035   namespace CelsiusTemperatureUnits {
00036 
00037 /* the Degree Celsius */
00038 
00039 template<> const double DegreeCelsius::StandardRatio = 1.;
00040 template<> const std::string DegreeCelsius::Namestring 
00041                                                       = "degreecelsius";
00042 template<> const std::string DegreeCelsius::Symbolstring = "oC";
00043 template<> const bool DegreeCelsius::SI = false;
00044 template<> const bool DegreeCelsius::Exact = true;
00045 
00046   }
00047 
00048 template<> const std::string Name<CelsiusTemperatureQuantities>::String 
00049                                                 = "celsius temperature";
00050 template<> const std::string 
00051                  Symbol<CelsiusTemperatureQuantities>::String = "Theta";
00052 
00054 
00056 template<>
00057   CelsiusTemperature::Variable (const ThermodynamicTemperature &temp)
00058     : variable_value (Unit::Reverse (temp.value () - 273.15))
00059                                             {namestring = temp.name ();}
00060 
00062 
00064 template<>
00065   CelsiusTemperature::Variable (const FahrenheitTemperature &fahrenheit)
00066     : variable_value 
00067                    (Unit::Reverse (5./9. * (fahrenheit.value () - 32.)))
00068                                       {namestring = fahrenheit.name ();}
00069 
00070 }
00071 
00072 #endif /* _CelsiusTemperature_cc */

Generated on Sun Jan 15 13:58:03 2006 for PhysicalQuantities by doxygen 1.3.6