]> git.mxchange.org Git - flightgear.git/blobdiff - FDM/flight.hxx
Set the runway height in cur_fdm_state as well as base_fdm_state.
[flightgear.git] / FDM / flight.hxx
index 17d3c47332b45fab30f7433d429ca2b6866f8400..4948bda9fce90342712434e84c70ef89e965629c 100644 (file)
 #define _FLIGHT_HXX
 
 
+#ifndef __cplusplus                                                          
+# error This library requires C++
+#endif                                   
+
+
 /* Required get_()
 
    `FGState::get_Longitude ()'
@@ -52,6 +57,7 @@
 
    `FGState::get_Gamma_vert_rad ()'
    `FGState::get_Climb_Rate ()'
+   `FGState::get_Alpha ()'
    `FGState::get_Beta ()'
 
    `FGState::get_Runway_altitude ()'
    `FGState::get_Sea_level_radius ()'
    `FGState::get_Earth_position_angle ()'
 
+   `FGState::get_Latitude_dot()'
+   `FGState::get_Longitude_dot()'
+   `FGState::get_Radius_dot()'
+
    `FGState::get_Dx_cg ()'
    `FGState::get_Dy_cg ()'
    `FGState::get_Dz_cg ()'
@@ -71,8 +81,8 @@
 
  */
 
-#include <Flight/Slew/slew.hxx>
 
+#include <Time/timestamp.hxx>
 
 #ifndef __cplusplus                                                          
 # error This library requires C++
@@ -511,14 +521,14 @@ public:
 
     FG_VECTOR_3    geocentric_rates_v;     // Geocentric linear velocities
     // inline double * get_Geocentric_rates_v() { return geocentric_rates_v; }
-    // inline double get_Latitude_dot() const { return geocentric_rates_v[0]; }
-    // inline double get_Longitude_dot() const { return geocentric_rates_v[1]; }
-    // inline double get_Radius_dot() const { return geocentric_rates_v[2]; }
-    /* inline void set_Geocentric_Rates( double lat, double lon, double rad ) {
+    inline double get_Latitude_dot() const { return geocentric_rates_v[0]; }
+    inline double get_Longitude_dot() const { return geocentric_rates_v[1]; }
+    inline double get_Radius_dot() const { return geocentric_rates_v[2]; }
+    inline void set_Geocentric_Rates( double lat, double lon, double rad ) {
        geocentric_rates_v[0] = lat;
        geocentric_rates_v[1] = lon;
        geocentric_rates_v[2] = rad;
-    } */
+    }
     
     /*=============================== Positions ===============================*/
 
@@ -538,6 +548,7 @@ public:
     inline void set_Radius_to_vehicle(double radius) {
        geocentric_position_v[2] = radius;
     }
+
     inline void set_Geocentric_Position( double lat, double lon, double rad ) {
        geocentric_position_v[0] = lat;
        geocentric_position_v[1] = lon;
@@ -621,8 +632,8 @@ public:
     // inline void set_Centrifugal_relief(double cr) { centrifugal_relief = cr; }
 
     double    alpha, beta, alpha_dot, beta_dot;   // in radians  
-    // inline double get_Alpha() const { return alpha; }
-    // inline void set_Alpha( double a ) { alpha = a; }
+    inline double get_Alpha() const { return alpha; }
+    inline void set_Alpha( double a ) { alpha = a; }
     inline double get_Beta() const { return beta; }
     inline void set_Beta( double b ) { beta = b; }
     // inline double get_Alpha_dot() const { return alpha_dot; }
@@ -769,6 +780,15 @@ public:
     double        climb_rate;           // in feet per second
     inline double get_Climb_Rate() const { return climb_rate; }
     inline void set_Climb_Rate(double rate) { climb_rate = rate; }
+
+    FGTimeStamp valid_stamp;       // time this record is valid
+    FGTimeStamp next_stamp;       // time this record is valid
+    inline FGTimeStamp get_time_stamp() const { return valid_stamp; }
+    inline void stamp_time() { valid_stamp = next_stamp; next_stamp.stamp(); }
+
+    // Extrapolate FDM based on time_offset (in usec)
+    void extrapolate( int time_offset );
+
 };
 
 
@@ -778,19 +798,37 @@ extern FGState cur_fdm_state;
 // General interface to the flight model routines
 
 // Initialize the flight model parameters
-int fgFlightModelInit(int model, FGState& f, double dt);
+int fgFDMInit(int model, FGState& f, double dt);
 
 // Run multiloop iterations of the flight model
-int fgFlightModelUpdate(int model, FGState& f, int multiloop, int jitter);
+int fgFDMUpdate(int model, FGState& f, int multiloop, int jitter);
 
 // Set the altitude (force)
-void fgFlightModelSetAltitude(int model, double alt_meters);
+void fgFDMForceAltitude(int model, double alt_meters);
+
+// Set the local ground elevation
+void fgFDMSetGroundElevation(int model, double alt_meters);
 
 
 #endif // _FLIGHT_HXX
 
 
 // $Log$
+// Revision 1.12  1999/01/20 13:42:23  curt
+// Tweaked FDM interface.
+// Testing check sum support for NMEA serial output.
+//
+// Revision 1.11  1999/01/19 17:52:07  curt
+// Working on being able to extrapolate a new position and orientation
+// based on a position, orientation, and time offset.
+//
+// Revision 1.10  1999/01/09 13:37:33  curt
+// Convert fgTIMESTAMP to FGTimeStamp which holds usec instead of ms.
+//
+// Revision 1.9  1999/01/08 19:27:38  curt
+// Fixed AOA reading on HUD.
+// Continued work on time jitter compensation.
+//
 // Revision 1.8  1999/01/08 03:23:52  curt
 // Beginning work on compensating for sim time vs. real world time "jitter".
 //