]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/YASim/Wing.cpp
MSVC (warning) fixes.
[flightgear.git] / src / FDM / YASim / Wing.cpp
index 42cbb3cfdfb3aa383bc90ef0721fc9549ba994e8..8816cfa994617f83e1c2ac5da556c6cedb19524b 100644 (file)
@@ -15,6 +15,7 @@ Wing::Wing()
     _stall = 0;
     _stallWidth = 0;
     _stallPeak = 0;
+    _twist = 0;
     _camber = 0;
     _incidence = 0;
     _inducedDrag = 1;
@@ -114,6 +115,11 @@ void Wing::setStallPeak(float fraction)
     _stallPeak = fraction;
 }
 
+void Wing::setTwist(float angle)
+{
+    _twist = angle;
+}
+
 void Wing::setCamber(float camber)
 {
     _camber = camber;
@@ -324,6 +330,8 @@ void Wing::compile()
         // and flap1 are set.  Right now flap1 overrides.
 
         int nSegs = (int)Math::ceil((end-start)/segLen);
+        if (_twist != 0 && nSegs < 8) // more segments if twisted
+            nSegs = 8;
         float segWid = _length * (end - start)/nSegs;
 
         int j;
@@ -341,6 +349,7 @@ void Wing::compile()
             sr->surface = s;
             sr->weight = chord * segWid;
             s->setTotalDrag(sr->weight);
+            s->setTwist(_twist * frac);
             _surfs.add(sr);
 
             if(_mirror) {
@@ -351,6 +360,7 @@ void Wing::compile()
                 sr->surface = s;
                 sr->weight = chord * segWid;
                 s->setTotalDrag(sr->weight);
+                s->setTwist(_twist * frac);
                 _surfs.add(sr);
             }
         }