X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FUFO.hxx;h=d22832f70d56f25f12eb88ad692566b58eb8ab02;hb=bb2b03c7e392e107aeaf7dbc4eecc59064b28512;hp=b680fd953ef541554697d72ab9d45384cb031720;hpb=26af6a3207026f142360ece205275c47a24778a8;p=flightgear.git diff --git a/src/FDM/UFO.hxx b/src/FDM/UFO.hxx index b680fd953..d22832f70 100644 --- a/src/FDM/UFO.hxx +++ b/src/FDM/UFO.hxx @@ -28,18 +28,23 @@ class FGUFO: public FGInterface { +private: + class lowpass { + private: + static double _dt; double _coeff; double _last; bool _initialized; public: lowpass(double coeff) : _coeff(coeff), _initialized(false) {} - double filter(double dt, double value) { + static inline void set_delta(double dt) { _dt = dt; } + double filter(double value) { if (!_initialized) { _initialized = true; return _last = value; } - double c = dt / (_coeff + dt); + double c = _dt / (_coeff + _dt); return _last = value * c + _last * (1.0 - c); } }; @@ -57,7 +62,7 @@ public: FGUFO( double dt ); ~FGUFO(); - // reset flight params to a specific position + // reset flight params to a specific position void init(); // update position based on inputs, positions, velocities, etc.