JSBSim Flight Dynamics Model 1.3.0 (09 Apr 2026)
An Open Source Flight Dynamics and Control Software Library in C++
Loading...
Searching...
No Matches
FGJSBBase Class Reference

Detailed Description

JSBSim Base class.

This class provides universal constants, utility functions, messaging functions, and enumerated constants to JSBSim.

Author
Jon S. Berndt

Definition at line 118 of file FGJSBBase.h.

#include <FGJSBBase.h>

+ Inheritance diagram for FGJSBBase:
+ Collaboration diagram for FGJSBBase:

Classes

class  Filter
 First order, (low pass / lag) filter. More...
 

Public Member Functions

 FGJSBBase ()
 Constructor for FGJSBBase.
 
virtual ~FGJSBBase ()
 Destructor for FGJSBBase.
 

JSBSim console output highlighting terms.

enum  { eL = 1 , eM , eN }
 Moments L, M, N. More...
 
enum  { eP = 1 , eQ , eR }
 Rates P, Q, R. More...
 
enum  { eU = 1 , eV , eW }
 Velocities U, V, W. More...
 
enum  { eX = 1 , eY , eZ }
 Positions X, Y, Z. More...
 
enum  { ePhi = 1 , eTht , ePsi }
 Euler angles Phi, Theta, Psi. More...
 
enum  { eDrag = 1 , eSide , eLift }
 Stability axis forces, Drag, Side force, Lift. More...
 
enum  { eRoll = 1 , ePitch , eYaw }
 Local frame orientation Roll, Pitch, Yaw. More...
 
enum  { eNorth = 1 , eEast , eDown }
 Local frame position North, East, Down. More...
 
enum  { eLat = 1 , eLong , eRad }
 Locations Radius, Latitude, Longitude. More...
 
enum  {
  inNone = 0 , inDegrees , inRadians , inMeters ,
  inFeet
}
 Conversion specifiers. More...
 
static char highint [5] = {27, '[', '1', 'm', '\0' }
 highlights text
 
static char halfint [5] = {27, '[', '2', 'm', '\0' }
 low intensity text
 
static char normint [6] = {27, '[', '2', '2', 'm', '\0' }
 normal intensity text
 
static char reset [5] = {27, '[', '0', 'm', '\0' }
 resets text properties
 
static char underon [5] = {27, '[', '4', 'm', '\0' }
 underlines text
 
static char underoff [6] = {27, '[', '2', '4', 'm', '\0' }
 underline off
 
static char fgblue [6] = {27, '[', '3', '4', 'm', '\0' }
 blue text
 
static char fgcyan [6] = {27, '[', '3', '6', 'm', '\0' }
 cyan text
 
static char fgred [6] = {27, '[', '3', '1', 'm', '\0' }
 red text
 
static char fggreen [6] = {27, '[', '3', '2', 'm', '\0' }
 green text
 
static char fgdef [6] = {27, '[', '3', '9', 'm', '\0' }
 default text
 
static short debug_lvl = 1
 
static constexpr double radtodeg = 180. / M_PI
 
static constexpr double degtorad = M_PI / 180.
 
static constexpr double hptoftlbssec = 550.0
 
static constexpr double psftoinhg = 0.014138
 
static constexpr double psftopa = 47.88
 
static constexpr double fttom = 0.3048
 
static constexpr double ktstofps = 1852./(3600*fttom)
 
static constexpr double fpstokts = 1.0 / ktstofps
 
static constexpr double inchtoft = 1.0/12.0
 
static constexpr double m3toft3 = 1.0/(fttom*fttom*fttom)
 
static constexpr double in3tom3 = inchtoft*inchtoft*inchtoft/m3toft3
 
static constexpr double inhgtopa = 3386.38
 
static constexpr double slugtolb = 32.174049
 Note that definition of lbtoslug by the inverse of slugtolb and not to a different constant you can also get from some tables will make lbtoslug*slugtolb == 1 up to the magnitude of roundoff.
 
static constexpr double lbtoslug = 1.0/slugtolb
 
static constexpr double kgtolb = 2.20462
 
static constexpr double kgtoslug = 0.06852168
 
static const std::string needed_cfg_version = "2.0"
 
static const std::string JSBSim_version = JSBSIM_VERSION " " __DATE__ " " __TIME__
 
void disableHighLighting (void)
 Disables highlighting in the console output.
 
static const std::string & GetVersion (void)
 Returns the version number of JSBSim.
 
static constexpr double KelvinToFahrenheit (double kelvin)
 Converts from degrees Kelvin to degrees Fahrenheit.
 
static constexpr double CelsiusToRankine (double celsius)
 Converts from degrees Celsius to degrees Rankine.
 
static constexpr double RankineToCelsius (double rankine)
 Converts from degrees Rankine to degrees Celsius.
 
static constexpr double KelvinToRankine (double kelvin)
 Converts from degrees Kelvin to degrees Rankine.
 
static constexpr double RankineToKelvin (double rankine)
 Converts from degrees Rankine to degrees Kelvin.
 
static constexpr double FahrenheitToCelsius (double fahrenheit)
 Converts from degrees Fahrenheit to degrees Celsius.
 
static constexpr double CelsiusToFahrenheit (double celsius)
 Converts from degrees Celsius to degrees Fahrenheit.
 
static constexpr double CelsiusToKelvin (double celsius)
 Converts from degrees Celsius to degrees Kelvin.
 
static constexpr double KelvinToCelsius (double kelvin)
 Converts from degrees Kelvin to degrees Celsius.
 
static constexpr double FeetToMeters (double measure)
 Converts from feet to meters.
 
static bool EqualToRoundoff (double a, double b)
 Finite precision comparison.
 
static bool EqualToRoundoff (float a, float b)
 Finite precision comparison.
 
static bool EqualToRoundoff (float a, double b)
 Finite precision comparison.
 
static bool EqualToRoundoff (double a, float b)
 Finite precision comparison.
 
static constexpr double Constrain (double min, double value, double max)
 Constrain a value between a minimum and a maximum value.
 
static constexpr double sign (double num)
 
static std::string CreateIndexedPropertyName (const std::string &Property, int index)
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Moments L, M, N.

Definition at line 325 of file FGJSBBase.h.

325{eL = 1, eM, eN };

◆ anonymous enum

anonymous enum

Rates P, Q, R.

Definition at line 327 of file FGJSBBase.h.

327{eP = 1, eQ, eR };

◆ anonymous enum

anonymous enum

Velocities U, V, W.

Definition at line 329 of file FGJSBBase.h.

329{eU = 1, eV, eW };

◆ anonymous enum

anonymous enum

Positions X, Y, Z.

Definition at line 331 of file FGJSBBase.h.

331{eX = 1, eY, eZ };

◆ anonymous enum

anonymous enum

Euler angles Phi, Theta, Psi.

Definition at line 333 of file FGJSBBase.h.

333{ePhi = 1, eTht, ePsi };

◆ anonymous enum

anonymous enum

Stability axis forces, Drag, Side force, Lift.

Definition at line 335 of file FGJSBBase.h.

335{eDrag = 1, eSide, eLift };

◆ anonymous enum

anonymous enum

Local frame orientation Roll, Pitch, Yaw.

Definition at line 337 of file FGJSBBase.h.

337{eRoll = 1, ePitch, eYaw };

◆ anonymous enum

anonymous enum

Local frame position North, East, Down.

Definition at line 339 of file FGJSBBase.h.

339{eNorth = 1, eEast, eDown };

◆ anonymous enum

anonymous enum

Locations Radius, Latitude, Longitude.

Definition at line 341 of file FGJSBBase.h.

341{eLat = 1, eLong, eRad };

◆ anonymous enum

anonymous enum

Conversion specifiers.

Definition at line 343 of file FGJSBBase.h.

343{inNone = 0, inDegrees, inRadians, inMeters, inFeet };

Constructor & Destructor Documentation

◆ FGJSBBase()

FGJSBBase ( )
inline

Constructor for FGJSBBase.

Definition at line 121 of file FGJSBBase.h.

121{};

◆ ~FGJSBBase()

virtual ~FGJSBBase ( )
inlinevirtual

Destructor for FGJSBBase.

Definition at line 124 of file FGJSBBase.h.

124{};

Member Function Documentation

◆ CelsiusToFahrenheit()

static constexpr double CelsiusToFahrenheit ( double  celsius)
inlinestaticconstexpr

Converts from degrees Celsius to degrees Fahrenheit.

Parameters
celsiusThe temperature in degrees Celsius.
Returns
The temperature in Fahrenheit.

Definition at line 228 of file FGJSBBase.h.

228 {
229 return celsius * 1.8 + 32.0;
230 }

◆ CelsiusToKelvin()

static constexpr double CelsiusToKelvin ( double  celsius)
inlinestaticconstexpr

Converts from degrees Celsius to degrees Kelvin.

Parameters
celsiusThe temperature in degrees Celsius.
Returns
The temperature in Kelvin.

Definition at line 235 of file FGJSBBase.h.

235 {
236 return celsius + 273.15;
237 }

◆ CelsiusToRankine()

static constexpr double CelsiusToRankine ( double  celsius)
inlinestaticconstexpr

Converts from degrees Celsius to degrees Rankine.

Parameters
celsiusThe temperature in degrees Celsius.
Returns
The temperature in Rankine.

Definition at line 193 of file FGJSBBase.h.

193 {
194 return celsius * 1.8 + 491.67;
195 }
+ Here is the caller graph for this function:

◆ Constrain()

static constexpr double Constrain ( double  min,
double  value,
double  max 
)
inlinestaticconstexpr

Constrain a value between a minimum and a maximum value.

Definition at line 289 of file FGJSBBase.h.

289 {
290 return value<min?(min):(value>max?(max):(value));
291 }
+ Here is the caller graph for this function:

◆ CreateIndexedPropertyName()

string CreateIndexedPropertyName ( const std::string &  Property,
int  index 
)
staticprotected

Definition at line 85 of file FGJSBBase.cpp.

86{
87 ostringstream buf;
88 buf << Property << '[' << index << ']';
89 return buf.str();
90}

◆ disableHighLighting()

void disableHighLighting ( void  )

Disables highlighting in the console output.

Definition at line 68 of file FGJSBBase.cpp.

69{
70 highint[0]='\0';
71 halfint[0]='\0';
72 normint[0]='\0';
73 reset[0]='\0';
74 underon[0]='\0';
75 underoff[0]='\0';
76 fgblue[0]='\0';
77 fgcyan[0]='\0';
78 fgred[0]='\0';
79 fggreen[0]='\0';
80 fgdef[0]='\0';
81}
static char fgcyan[6]
cyan text
Definition FGJSBBase.h:165
static char fggreen[6]
green text
Definition FGJSBBase.h:169
static char normint[6]
normal intensity text
Definition FGJSBBase.h:155
static char fgred[6]
red text
Definition FGJSBBase.h:167
static char fgblue[6]
blue text
Definition FGJSBBase.h:163
static char underon[5]
underlines text
Definition FGJSBBase.h:159
static char halfint[5]
low intensity text
Definition FGJSBBase.h:153
static char fgdef[6]
default text
Definition FGJSBBase.h:171
static char reset[5]
resets text properties
Definition FGJSBBase.h:157
static char underoff[6]
underline off
Definition FGJSBBase.h:161
static char highint[5]
highlights text
Definition FGJSBBase.h:151

◆ EqualToRoundoff() [1/4]

static bool EqualToRoundoff ( double  a,
double  b 
)
inlinestatic

Finite precision comparison.

Parameters
afirst value to compare
bsecond value to compare
Returns
if the two values can be considered equal up to roundoff

Definition at line 257 of file FGJSBBase.h.

257 {
258 double eps = 2.0*DBL_EPSILON;
259 return std::fabs(a - b) <= eps * std::max<double>(std::fabs(a), std::fabs(b));
260 }
+ Here is the caller graph for this function:

◆ EqualToRoundoff() [2/4]

static bool EqualToRoundoff ( double  a,
float  b 
)
inlinestatic

Finite precision comparison.

Parameters
afirst value to compare
bsecond value to compare
Returns
if the two values can be considered equal up to roundoff

Definition at line 283 of file FGJSBBase.h.

283 {
284 return EqualToRoundoff((float)a, b);
285 }
static bool EqualToRoundoff(double a, double b)
Finite precision comparison.
Definition FGJSBBase.h:257

◆ EqualToRoundoff() [3/4]

static bool EqualToRoundoff ( float  a,
double  b 
)
inlinestatic

Finite precision comparison.

Parameters
afirst value to compare
bsecond value to compare
Returns
if the two values can be considered equal up to roundoff

Definition at line 275 of file FGJSBBase.h.

275 {
276 return EqualToRoundoff(a, (float)b);
277 }

◆ EqualToRoundoff() [4/4]

static bool EqualToRoundoff ( float  a,
float  b 
)
inlinestatic

Finite precision comparison.

Parameters
afirst value to compare
bsecond value to compare
Returns
if the two values can be considered equal up to roundoff

Definition at line 266 of file FGJSBBase.h.

266 {
267 float eps = 2.0*FLT_EPSILON;
268 return std::fabs(a - b) <= eps * std::max<double>(std::fabs(a), std::fabs(b));
269 }

◆ FahrenheitToCelsius()

static constexpr double FahrenheitToCelsius ( double  fahrenheit)
inlinestaticconstexpr

Converts from degrees Fahrenheit to degrees Celsius.

Parameters
fahrenheitThe temperature in degrees Fahrenheit.
Returns
The temperature in Celsius.

Definition at line 221 of file FGJSBBase.h.

221 {
222 return (fahrenheit - 32.0)/1.8;
223 }
+ Here is the caller graph for this function:

◆ FeetToMeters()

static constexpr double FeetToMeters ( double  measure)
inlinestaticconstexpr

Converts from feet to meters.

Parameters
measureThe length in feet.
Returns
The length in meters.

Definition at line 249 of file FGJSBBase.h.

249 {
250 return measure*0.3048;
251 }

◆ GetVersion()

static const std::string & GetVersion ( void  )
inlinestatic

Returns the version number of JSBSim.

Returns
The version number of JSBSim.

Definition at line 176 of file FGJSBBase.h.

176{return JSBSim_version;}

◆ KelvinToCelsius()

static constexpr double KelvinToCelsius ( double  kelvin)
inlinestaticconstexpr

Converts from degrees Kelvin to degrees Celsius.

Parameters
celsiusThe temperature in degrees Kelvin.
Returns
The temperature in Celsius.

Definition at line 242 of file FGJSBBase.h.

242 {
243 return kelvin - 273.15;
244 }

◆ KelvinToFahrenheit()

static constexpr double KelvinToFahrenheit ( double  kelvin)
inlinestaticconstexpr

Converts from degrees Kelvin to degrees Fahrenheit.

Parameters
kelvinThe temperature in degrees Kelvin.
Returns
The temperature in Fahrenheit.

Definition at line 186 of file FGJSBBase.h.

186 {
187 return 1.8*kelvin - 459.4;
188 }

◆ KelvinToRankine()

static constexpr double KelvinToRankine ( double  kelvin)
inlinestaticconstexpr

Converts from degrees Kelvin to degrees Rankine.

Parameters
kelvinThe temperature in degrees Kelvin.
Returns
The temperature in Rankine.

Definition at line 207 of file FGJSBBase.h.

207 {
208 return kelvin * 1.8;
209 }
+ Here is the caller graph for this function:

◆ RankineToCelsius()

static constexpr double RankineToCelsius ( double  rankine)
inlinestaticconstexpr

Converts from degrees Rankine to degrees Celsius.

Parameters
rankineThe temperature in degrees Rankine.
Returns
The temperature in Celsius.

Definition at line 200 of file FGJSBBase.h.

200 {
201 return (rankine - 491.67)/1.8;
202 }
+ Here is the caller graph for this function:

◆ RankineToKelvin()

static constexpr double RankineToKelvin ( double  rankine)
inlinestaticconstexpr

Converts from degrees Rankine to degrees Kelvin.

Parameters
rankineThe temperature in degrees Rankine.
Returns
The temperature in Kelvin.

Definition at line 214 of file FGJSBBase.h.

214 {
215 return rankine/1.8;
216 }
+ Here is the caller graph for this function:

◆ sign()

static constexpr double sign ( double  num)
inlinestaticconstexpr

Definition at line 293 of file FGJSBBase.h.

293{return num>=0.0?1.0:-1.0;}

Member Data Documentation

◆ debug_lvl

short debug_lvl = 1
static

Definition at line 181 of file FGJSBBase.h.

◆ degtorad

constexpr double degtorad = M_PI / 180.
staticconstexprprotected

Definition at line 297 of file FGJSBBase.h.

◆ fgblue

char fgblue = {27, '[', '3', '4', 'm', '\0' }
static

blue text

Definition at line 163 of file FGJSBBase.h.

◆ fgcyan

char fgcyan = {27, '[', '3', '6', 'm', '\0' }
static

cyan text

Definition at line 165 of file FGJSBBase.h.

◆ fgdef

char fgdef = {27, '[', '3', '9', 'm', '\0' }
static

default text

Definition at line 171 of file FGJSBBase.h.

◆ fggreen

char fggreen = {27, '[', '3', '2', 'm', '\0' }
static

green text

Definition at line 169 of file FGJSBBase.h.

◆ fgred

char fgred = {27, '[', '3', '1', 'm', '\0' }
static

red text

Definition at line 167 of file FGJSBBase.h.

◆ fpstokts

constexpr double fpstokts = 1.0 / ktstofps
staticconstexprprotected

Definition at line 303 of file FGJSBBase.h.

◆ fttom

constexpr double fttom = 0.3048
staticconstexprprotected

Definition at line 301 of file FGJSBBase.h.

◆ halfint

char halfint = {27, '[', '2', 'm', '\0' }
static

low intensity text

Definition at line 153 of file FGJSBBase.h.

◆ highint

char highint = {27, '[', '1', 'm', '\0' }
static

highlights text

Definition at line 151 of file FGJSBBase.h.

◆ hptoftlbssec

constexpr double hptoftlbssec = 550.0
staticconstexprprotected

Definition at line 298 of file FGJSBBase.h.

◆ in3tom3

constexpr double in3tom3 = inchtoft*inchtoft*inchtoft/m3toft3
staticconstexprprotected

Definition at line 306 of file FGJSBBase.h.

◆ inchtoft

constexpr double inchtoft = 1.0/12.0
staticconstexprprotected

Definition at line 304 of file FGJSBBase.h.

◆ inhgtopa

constexpr double inhgtopa = 3386.38
staticconstexprprotected

Definition at line 307 of file FGJSBBase.h.

◆ JSBSim_version

const string JSBSim_version = JSBSIM_VERSION " " __DATE__ " " __TIME__
staticprotected

Definition at line 319 of file FGJSBBase.h.

◆ kgtolb

constexpr double kgtolb = 2.20462
staticconstexprprotected

Definition at line 316 of file FGJSBBase.h.

◆ kgtoslug

constexpr double kgtoslug = 0.06852168
staticconstexprprotected

Definition at line 317 of file FGJSBBase.h.

◆ ktstofps

constexpr double ktstofps = 1852./(3600*fttom)
staticconstexprprotected

Definition at line 302 of file FGJSBBase.h.

◆ lbtoslug

constexpr double lbtoslug = 1.0/slugtolb
staticconstexprprotected

Definition at line 315 of file FGJSBBase.h.

◆ m3toft3

constexpr double m3toft3 = 1.0/(fttom*fttom*fttom)
staticconstexprprotected

Definition at line 305 of file FGJSBBase.h.

◆ needed_cfg_version

const string needed_cfg_version = "2.0"
staticprotected

Definition at line 318 of file FGJSBBase.h.

◆ normint

char normint = {27, '[', '2', '2', 'm', '\0' }
static

normal intensity text

Definition at line 155 of file FGJSBBase.h.

◆ psftoinhg

constexpr double psftoinhg = 0.014138
staticconstexprprotected

Definition at line 299 of file FGJSBBase.h.

◆ psftopa

constexpr double psftopa = 47.88
staticconstexprprotected

Definition at line 300 of file FGJSBBase.h.

◆ radtodeg

constexpr double radtodeg = 180. / M_PI
staticconstexprprotected

Definition at line 296 of file FGJSBBase.h.

◆ reset

char reset = {27, '[', '0', 'm', '\0' }
static

resets text properties

Definition at line 157 of file FGJSBBase.h.

◆ slugtolb

constexpr double slugtolb = 32.174049
staticconstexprprotected

Note that definition of lbtoslug by the inverse of slugtolb and not to a different constant you can also get from some tables will make lbtoslug*slugtolb == 1 up to the magnitude of roundoff.

So converting from slug to lb and back will yield to the original value you started with up to the magnitude of roundoff. Taken from units gnu commandline tool

Definition at line 314 of file FGJSBBase.h.

◆ underoff

char underoff = {27, '[', '2', '4', 'm', '\0' }
static

underline off

Definition at line 161 of file FGJSBBase.h.

◆ underon

char underon = {27, '[', '4', 'm', '\0' }
static

underlines text

Definition at line 159 of file FGJSBBase.h.


The documentation for this class was generated from the following files: