#define _FLIGHT_HXX
+#ifndef __cplusplus
+# error This library requires C++
+#endif
+
+
/* Required get_()
`FGState::get_Longitude ()'
`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 ()'
*/
-#include <Flight/Slew/slew.hxx>
-
-
-#ifndef __cplusplus
-# error This library requires C++
-#endif
+#include <Time/timestamp.hxx>
typedef double FG_VECTOR_3[3];
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 ===============================*/
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;
// 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; }
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 );
+
};
// $Log$
+// 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".
//