]> git.mxchange.org Git - flightgear.git/commitdiff
Added rudder trim and aileron trim to FGControls, and bound them to
authordavid <david>
Mon, 17 Dec 2001 01:42:11 +0000 (01:42 +0000)
committerdavid <david>
Mon, 17 Dec 2001 01:42:11 +0000 (01:42 +0000)
properties analogous to elevator trim.

src/Controls/controls.cxx
src/Controls/controls.hxx

index 4aa0288cda9f5299441c7ce995e1717baddb1749..0b4f7ff9419a8d47e21cf156bd9b9f48fd2569ba 100644 (file)
 // Constructor
 FGControls::FGControls() :
     aileron( 0.0 ),
+    aileron_trim( 0.0 ),
     elevator( 0.0 ),
     elevator_trim( 1.969572E-03 ),
     rudder( 0.0 ),
+    rudder_trim( 0.0 ),
     throttle_idle( true )
 {
 }
@@ -41,9 +43,11 @@ FGControls::FGControls() :
 void FGControls::reset_all()
 {
     set_aileron(0.0);
+    set_aileron_trim(0.0);
     set_elevator(0.0);
     set_elevator_trim(0.0);
     set_rudder(0.0);
+    set_rudder_trim(0.0);
     set_throttle(FGControls::ALL_ENGINES, 0.0);
     set_starter(FGControls::ALL_ENGINES, false);
     set_magnetos(FGControls::ALL_ENGINES, 0);
@@ -82,6 +86,9 @@ FGControls::bind ()
   fgTie("/controls/aileron", this,
        &FGControls::get_aileron, &FGControls::set_aileron);
   fgSetArchivable("/controls/aileron");
+  fgTie("/controls/aileron-trim", this,
+       &FGControls::get_aileron_trim, &FGControls::set_aileron_trim);
+  fgSetArchivable("/controls/aileron-trim");
   fgTie("/controls/elevator", this,
        &FGControls::get_elevator, &FGControls::set_elevator);
   fgSetArchivable("/controls/elevator");
@@ -91,6 +98,9 @@ FGControls::bind ()
   fgTie("/controls/rudder", this,
        &FGControls::get_rudder, &FGControls::set_rudder);
   fgSetArchivable("/controls/rudder");
+  fgTie("/controls/rudder-trim", this,
+       &FGControls::get_rudder_trim, &FGControls::set_rudder_trim);
+  fgSetArchivable("/controls/rudder-trim");
   fgTie("/controls/flaps", this,
        &FGControls::get_flaps, &FGControls::set_flaps);
   fgSetArchivable("/controls/flaps");
@@ -136,9 +146,11 @@ FGControls::unbind ()
 {
                                // Tie control properties.
   fgUntie("/controls/aileron");
+  fgUntie("/controls/aileron-trim");
   fgUntie("/controls/elevator");
   fgUntie("/controls/elevator-trim");
   fgUntie("/controls/rudder");
+  fgUntie("/controls/rudder-trim");
   fgUntie("/controls/flaps");
   int index;
   for (index = 0; index < MAX_ENGINES; index++) {
index 225a05a357b742cfc140d9c8ea5bfe5cedfe75c8..de965ec2c7b040b441e6169daaa15a6e472bf003 100644 (file)
@@ -56,9 +56,11 @@ public:
 private:
 
     double aileron;
+    double aileron_trim;
     double elevator;
     double elevator_trim;
     double rudder;
+    double rudder_trim;
     double flaps;
     double throttle[MAX_ENGINES];
     double mixture[MAX_ENGINES];
@@ -97,9 +99,11 @@ public:
        
     // Query functions
     inline double get_aileron() const { return aileron; }
+    inline double get_aileron_trim() const { return aileron_trim; }
     inline double get_elevator() const { return elevator; }
     inline double get_elevator_trim() const { return elevator_trim; }
     inline double get_rudder() const { return rudder; }
+    inline double get_rudder_trim() const { return rudder_trim; }
     inline double get_flaps() const { return flaps; }
     inline double get_throttle(int engine) const { return throttle[engine]; }
     inline double get_mixture(int engine) const { return mixture[engine]; }
@@ -132,6 +136,14 @@ public:
            set_rudder( aileron / 2.0 );
        }
     }
+    inline void set_aileron_trim( double pos ) {
+       aileron_trim = pos;
+       CLAMP( &aileron_trim, -1.0, 1.0 );
+    }
+    inline void move_aileron_trim( double amt ) {
+       aileron_trim += amt;
+       CLAMP( &aileron_trim, -1.0, 1.0 );
+    }
     inline void set_elevator( double pos ) {
        elevator = pos;
        CLAMP( &elevator, -1.0, 1.0 );
@@ -156,6 +168,14 @@ public:
        rudder += amt;
        CLAMP( &rudder, -1.0, 1.0 );
     }
+    inline void set_rudder_trim( double pos ) {
+       rudder_trim = pos;
+       CLAMP( &rudder_trim, -1.0, 1.0 );
+    }
+    inline void move_rudder_trim( double amt ) {
+       rudder_trim += amt;
+       CLAMP( &rudder_trim, -1.0, 1.0 );
+    }
     inline void set_flaps( double pos ) {
        flaps = pos;
        CLAMP( &flaps, 0.0, 1.0 );