From: andy Date: Mon, 23 Jul 2007 16:10:21 +0000 (+0000) Subject: Maik: add a downwashfactor tunable X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=0368accc6dd6c67fb9774cff57719c3ab64cd167;p=flightgear.git Maik: add a downwashfactor tunable --- diff --git a/src/FDM/YASim/FGFDM.cpp b/src/FDM/YASim/FGFDM.cpp index 53a59707e..b0a5be51d 100644 --- a/src/FDM/YASim/FGFDM.cpp +++ b/src/FDM/YASim/FGFDM.cpp @@ -728,6 +728,7 @@ Rotor* FGFDM::parseRotor(XMLAttributes* a, const char* type) w->setTiltCenterX(attrf(a,"tiltcenterx",0.0)); w->setTiltCenterY(attrf(a,"tiltcentery",0.0)); w->setTiltCenterZ(attrf(a,"tiltcenterz",0.0)); + w->setDownwashFactor(attrf(a, "downwashfactor", 1)); if(attrb(a,"ccw")) w->setCcw(1); if(attrb(a,"sharedflaphinge")) diff --git a/src/FDM/YASim/Rotor.cpp b/src/FDM/YASim/Rotor.cpp index 9031c3e6c..6bb69ca49 100644 --- a/src/FDM/YASim/Rotor.cpp +++ b/src/FDM/YASim/Rotor.cpp @@ -150,6 +150,7 @@ Rotor::Rotor() _max_tilt_yaw=0; _max_tilt_pitch=0; _max_tilt_roll=0; + _downwash_factor=1; } Rotor::~Rotor() @@ -652,6 +653,11 @@ void Rotor::setRelLenHinge(float value) _rel_len_hinge=value; } +void Rotor::setDownwashFactor(float value) +{ + _downwash_factor=value; +} + void Rotor::setAlphaoutput(int i, const char *text) { strncpy(_alphaoutput[i],text,255); @@ -1019,7 +1025,7 @@ void Rotor::getDownWash(float *pos, float *v_heli, float *downwash) //at dist = rotor radius it is assumed to be 1/e * v1 + (1-1/e)* v2 float v = g * v1 + (1-g) * v2; - Math::mul3(-v,_normal_with_yaw_roll,downwash); + Math::mul3(-v*_downwash_factor,_normal_with_yaw_roll,downwash); //the downwash is calculated in the opposite direction of the normal } diff --git a/src/FDM/YASim/Rotor.hpp b/src/FDM/YASim/Rotor.hpp index 03d2be4cd..5bec0a43f 100644 --- a/src/FDM/YASim/Rotor.hpp +++ b/src/FDM/YASim/Rotor.hpp @@ -39,6 +39,7 @@ private: float _old_tilt_roll; float _old_tilt_pitch; float _old_tilt_yaw; + float _downwash_factor; public: Rotor(); @@ -107,6 +108,7 @@ public: void calcLiftFactor(float* v, float rho, State *s); void getDownWash(float *pos, float * v_heli, float *downwash); int getNumberOfBlades(){return _number_of_blades;} + void setDownwashFactor(float value); // Query the list of Rotorpart objects int numRotorparts();