]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGJSBBase.h
Ron JENSEN: turn cout into SG_LOG/SG_WARN (merge from JSBSim/cvs)
[flightgear.git] / src / FDM / JSBSim / FGJSBBase.h
index 34537f0582facbfa4849c90bd63a3dde91625e52..6147248e68aba3a66f49a75d8dcaea580fb2f562 100644 (file)
@@ -7,20 +7,20 @@
  ------------- Copyright (C) 2001  Jon S. Berndt (jsb@hal-pc.org) -------------
 
  This program is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free Software
+ the terms of the GNU Lesser General Public License as published by the Free Software
  Foundation; either version 2 of the License, or (at your option) any later
  version.
 
  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
  details.
 
- You should have received a copy of the GNU General Public License along with
+ You should have received a copy of the GNU Lesser General Public License along with
  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  Place - Suite 330, Boston, MA  02111-1307, USA.
 
- Further information about the GNU General Public License can also be found on
+ Further information about the GNU Lesser General Public License can also be found on
  the world wide web at http://www.gnu.org.
 
 HISTORY
@@ -48,12 +48,12 @@ INCLUDES
 
 SG_USING_STD(string);
 
-# ifndef M_PI
-#  include <simgear/constants.h>
-#  define M_PI SG_PI
-# endif
+#  ifndef M_PI
+#    include <simgear/constants.h>
+#    define M_PI SG_PI
+#  endif
 
-#else
+#else  // JSBSim section
 
 #  include <queue>
 #  include <string>
@@ -65,13 +65,27 @@ SG_USING_STD(string);
 
 using std::string;
 
-# ifndef M_PI
-#  define M_PI 3.14159265358979323846
-# endif
+#  if defined(_MSC_VER) && _MSC_VER <= 1200
+#    ifndef max
+#      define max(a,b)            (((a) > (b)) ? (a) : (b))
+#    endif
+
+#    ifndef min
+#      define min(a,b)            (((a) < (b)) ? (a) : (b))
+#    endif
+#  else
+
+using std::fabs;
+
+#  endif
+
+#  ifndef M_PI
+#    define M_PI 3.14159265358979323846
+#  endif
 
 #endif
 
-#if !defined(WIN32) || defined(__GNUC__)
+#if !defined(WIN32) || defined(__GNUC__) || (defined(_MSC_VER) && (_MSC_VER >= 1300))
 using std::max;
 #endif
 
@@ -92,6 +106,8 @@ CLASS DOCUMENTATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
 /** JSBSim Base class.
+*   This class provides universal constants, utility functions, messaging
+*   functions, and enumerated constants to JSBSim.
     @author Jon S. Berndt
     @version $Id$
 */
@@ -178,23 +194,47 @@ public:
       @return pointer to a Message structure (or NULL if no mesage) */
   Message* ProcessMessage(void);
   //@}
+
+  /** Returns the version number of JSBSim.
+  *   @return The version number of JSBSim. */
   string GetVersion(void) {return JSBSim_version;}
 
+  /// Disables highlighting in the console output.
   void disableHighLighting(void);
 
   static short debug_lvl;
+
+  /** Converts from degrees Kelvin to degrees Fahrenheit.
+  *   @param kelvin The temperature in degrees Kelvin.
+  *   @return The temperature in Fahrenheit. */
   static double KelvinToFahrenheit (double kelvin) {
     return 1.8*kelvin - 459.4;
   }
 
+  /** Converts from degrees Rankine to degrees Celsius.
+  *   @param rankine The temperature in degrees Rankine.
+  *   @return The temperature in Celsius. */
   static double RankineToCelsius (double rankine) {
     return (rankine - 491.67)/1.8;
   }
 
+  /** Converts from degrees Rankine to degrees Kelvin.
+  *   @param rankine The temperature in degrees Rankine.
+  *   @return The temperature in Kelvin. */
+  static double RankineToKelvin (double rankine) {
+    return rankine/1.8;
+  }
+
+  /** Converts from degrees Fahrenheit to degrees Celsius.
+  *   @param fahrenheit The temperature in degrees Fahrenheit.
+  *   @return The temperature in Celsius. */
   static double FahrenheitToCelsius (double fahrenheit) {
     return (fahrenheit - 32.0)/1.8;
   }
 
+  /** Converts from degrees Celsius to degrees Fahrenheit.
+  *   @param celsius The temperature in degrees Celsius.
+  *   @return The temperature in Fahrenheit. */
   static double CelsiusToFahrenheit (double celsius) {
     return celsius * 1.8 + 32.0;
   }
@@ -240,13 +280,13 @@ protected:
 
   void Debug(int from) {};
 
-  static unsigned int frame;
   static unsigned int messageId;
 
   static const double radtodeg;
   static const double degtorad;
   static const double hptoftlbssec;
   static const double psftoinhg;
+  static const double psftopa;
   static const double fpstokts;
   static const double ktstofps;
   static const double inchtoft;
@@ -257,8 +297,8 @@ protected:
   static const double slugtolb;
   static const string needed_cfg_version;
   static const string JSBSim_version;
-};
 
+public:
 /// Moments L, M, N
 enum {eL     = 1, eM,     eN    };
 /// Rates P, Q, R
@@ -280,6 +320,8 @@ enum {eLat = 1, eLong, eRad     };
 /// Conversion specifiers
 enum {inNone = 0, inDegrees, inRadians, inMeters, inFeet };
 
+};
+
 }
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 #endif