YASim: move common helper functions to new yasim-common.cpp
This commit is contained in:
parent
c63ded1c44
commit
78f7950fa6
8 changed files with 58 additions and 70 deletions
|
@ -26,6 +26,7 @@ set(COMMON
|
||||||
Turbulence.cpp
|
Turbulence.cpp
|
||||||
Wing.cpp
|
Wing.cpp
|
||||||
Version.cpp
|
Version.cpp
|
||||||
|
yasim-common.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SOURCES
|
set(SOURCES
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "yasim-common.hpp"
|
||||||
#include "Jet.hpp"
|
#include "Jet.hpp"
|
||||||
#include "Thruster.hpp"
|
#include "Thruster.hpp"
|
||||||
#include "PropEngine.hpp"
|
#include "PropEngine.hpp"
|
||||||
|
@ -281,26 +282,6 @@ float ControlMap::rangeMax(Control control)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// duplicate null-terminated string
|
|
||||||
char* ControlMap::dup(const char* s)
|
|
||||||
{
|
|
||||||
int len=0;
|
|
||||||
while(s[len++]);
|
|
||||||
char* s2 = new char[len+1];
|
|
||||||
char* p = s2;
|
|
||||||
while((*p++ = *s++));
|
|
||||||
s2[len] = 0;
|
|
||||||
return s2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// compare null-terminated strings
|
|
||||||
bool ControlMap::eq(const char* a, const char* b)
|
|
||||||
{
|
|
||||||
while(*a && *b && *a == *b) { a++; b++; }
|
|
||||||
// equal if both a and b points to null chars
|
|
||||||
return !(*a || *b);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// register property name, return ID (int)
|
/// register property name, return ID (int)
|
||||||
int ControlMap::propertyHandle(const char* name)
|
int ControlMap::propertyHandle(const char* name)
|
||||||
{
|
{
|
||||||
|
|
|
@ -142,10 +142,6 @@ private:
|
||||||
Vector _outputs;
|
Vector _outputs;
|
||||||
// control properties
|
// control properties
|
||||||
Vector _properties;
|
Vector _properties;
|
||||||
|
|
||||||
// helper
|
|
||||||
char* dup(const char* s);
|
|
||||||
bool eq(const char* a, const char* b);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}; // namespace yasim
|
}; // namespace yasim
|
||||||
|
|
|
@ -1114,24 +1114,6 @@ void FGFDM::parseWeight(XMLAttributes* a)
|
||||||
_weights.add(wr);
|
_weights.add(wr);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FGFDM::eq(const char* a, const char* b)
|
|
||||||
{
|
|
||||||
// Figure it out for yourself. :)
|
|
||||||
while(*a && *b && *a == *b) { a++; b++; }
|
|
||||||
return !(*a || *b);
|
|
||||||
}
|
|
||||||
|
|
||||||
char* FGFDM::dup(const char* s)
|
|
||||||
{
|
|
||||||
int len=0;
|
|
||||||
while(s[len++]);
|
|
||||||
char* s2 = new char[len+1];
|
|
||||||
char* p = s2;
|
|
||||||
while((*p++ = *s++));
|
|
||||||
s2[len] = 0;
|
|
||||||
return s2;
|
|
||||||
}
|
|
||||||
|
|
||||||
int FGFDM::attri(XMLAttributes* atts, const char* attr)
|
int FGFDM::attri(XMLAttributes* atts, const char* attr)
|
||||||
{
|
{
|
||||||
if(!atts->hasAttribute(attr)) {
|
if(!atts->hasAttribute(attr)) {
|
||||||
|
|
|
@ -59,9 +59,6 @@ private:
|
||||||
void parseTurbineEngine(XMLAttributes* a);
|
void parseTurbineEngine(XMLAttributes* a);
|
||||||
void parsePistonEngine(XMLAttributes* a);
|
void parsePistonEngine(XMLAttributes* a);
|
||||||
void parsePropeller(XMLAttributes* a);
|
void parsePropeller(XMLAttributes* a);
|
||||||
bool eq(const char* a, const char* b);
|
|
||||||
bool caseeq(const char* a, const char* b);
|
|
||||||
char* dup(const char* s);
|
|
||||||
int attri(XMLAttributes* atts, const char* attr);
|
int attri(XMLAttributes* atts, const char* attr);
|
||||||
int attri(XMLAttributes* atts, const char* attr, int def);
|
int attri(XMLAttributes* atts, const char* attr, int def);
|
||||||
float attrf(XMLAttributes* atts, const char* attr);
|
float attrf(XMLAttributes* atts, const char* attr);
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
namespace yasim {
|
||||||
//
|
//
|
||||||
// Excruciatingly simple vector-of-pointers class. Easy & useful.
|
// Excruciatingly simple vector-of-pointers class. Easy & useful.
|
||||||
// No support for addition of elements anywhere but at the end of the
|
// No support for addition of elements anywhere but at the end of the
|
||||||
|
@ -78,5 +80,5 @@ inline void Vector::realloc()
|
||||||
delete[] _array;
|
delete[] _array;
|
||||||
_array = array;
|
_array = array;
|
||||||
}
|
}
|
||||||
|
}; //namespace yasim
|
||||||
#endif // _VECTOR_HPP
|
#endif // _VECTOR_HPP
|
||||||
|
|
23
src/FDM/YASim/yasim-common.cpp
Normal file
23
src/FDM/YASim/yasim-common.cpp
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#include "yasim-common.hpp"
|
||||||
|
|
||||||
|
namespace yasim {
|
||||||
|
/// duplicate null-terminated string
|
||||||
|
char* dup(const char* s)
|
||||||
|
{
|
||||||
|
int len=0;
|
||||||
|
while(s[len++]);
|
||||||
|
char* s2 = new char[len+1];
|
||||||
|
char* p = s2;
|
||||||
|
while((*p++ = *s++));
|
||||||
|
s2[len] = 0;
|
||||||
|
return s2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// compare null-terminated strings
|
||||||
|
bool eq(const char* a, const char* b)
|
||||||
|
{
|
||||||
|
while(*a && *b && *a == *b) { a++; b++; }
|
||||||
|
// equal if both a and b points to null chars
|
||||||
|
return !(*a || *b);
|
||||||
|
}
|
||||||
|
}; //namespace yasim
|
|
@ -1,34 +1,40 @@
|
||||||
#ifndef _YASIM_COMMON_HPP
|
#ifndef _YASIM_COMMON_HPP
|
||||||
#define _YASIM_COMMON_HPP
|
#define _YASIM_COMMON_HPP
|
||||||
|
|
||||||
|
/*
|
||||||
|
common file for YASim wide constants and static helper functions
|
||||||
|
*/
|
||||||
namespace yasim {
|
namespace yasim {
|
||||||
static const float YASIM_PI = 3.14159265358979323846f;
|
static const float YASIM_PI = 3.14159265358979323846f;
|
||||||
static const float PI2 = YASIM_PI*2;
|
static const float PI2 = YASIM_PI*2;
|
||||||
static const float RAD2DEG = 180/YASIM_PI;
|
static const float RAD2DEG = 180/YASIM_PI;
|
||||||
static const float DEG2RAD = YASIM_PI/180;
|
static const float DEG2RAD = YASIM_PI/180;
|
||||||
static const float RPM2RAD = YASIM_PI/30;
|
static const float RPM2RAD = YASIM_PI/30;
|
||||||
|
|
||||||
static const float KTS2MPS = 1852.0f/3600.0f;
|
static const float KTS2MPS = 1852.0f/3600.0f;
|
||||||
static const float MPS2KTS = 3600.0f/1852.0f;
|
static const float MPS2KTS = 3600.0f/1852.0f;
|
||||||
static const float KMH2MPS = 1/3.6f;
|
static const float KMH2MPS = 1/3.6f;
|
||||||
|
|
||||||
static const float FT2M = 0.3048f;
|
static const float FT2M = 0.3048f;
|
||||||
static const float M2FT = 1/FT2M;
|
static const float M2FT = 1/FT2M;
|
||||||
|
|
||||||
static const float LBS2N = 4.44822f;
|
static const float LBS2N = 4.44822f;
|
||||||
static const float N2LB = 1/LBS2N;
|
static const float N2LB = 1/LBS2N;
|
||||||
static const float LBS2KG = 0.45359237f;
|
static const float LBS2KG = 0.45359237f;
|
||||||
static const float KG2LBS = 1/LBS2KG;
|
static const float KG2LBS = 1/LBS2KG;
|
||||||
static const float CM2GALS = 264.172037284f;
|
static const float CM2GALS = 264.172037284f;
|
||||||
static const float HP2W = 745.700f;
|
static const float HP2W = 745.700f;
|
||||||
static const float INHG2PA = 3386.389f;
|
static const float INHG2PA = 3386.389f;
|
||||||
static const float K2DEGF = 1.8f;
|
static const float K2DEGF = 1.8f;
|
||||||
static const float K2DEGFOFFSET = -459.4f;
|
static const float K2DEGFOFFSET = -459.4f;
|
||||||
static const float CIN2CM = 1.6387064e-5f;
|
static const float CIN2CM = 1.6387064e-5f;
|
||||||
|
|
||||||
static const float NM2FTLB = (1/(LBS2N*FT2M));
|
|
||||||
static const float SLUG2KG = 14.59390f;
|
|
||||||
|
|
||||||
};
|
static const float NM2FTLB = (1/(LBS2N*FT2M));
|
||||||
|
static const float SLUG2KG = 14.59390f;
|
||||||
|
|
||||||
|
char* dup(const char* s);
|
||||||
|
bool eq(const char* a, const char* b);
|
||||||
|
|
||||||
|
}; //namespace yasim
|
||||||
|
|
||||||
#endif // ifndef _YASIM_COMMON_HPP
|
#endif // ifndef _YASIM_COMMON_HPP
|
||||||
|
|
Loading…
Reference in a new issue