virtual double get_h_fov(); // Get horizontal fov, in degrees.
virtual double get_v_fov(); // Get vertical fov, in degrees.
- virtual void set_aspect_ratio( double r ) {
- _aspect_ratio = r;
- }
- virtual double get_aspect_ratio() const { return _aspect_ratio; }
+ virtual double get_aspect_ratio() const;
virtual void set_aspect_ratio_multiplier( double m ) {
_aspect_ratio_multiplier = m;
double _target_pitch_deg;
double _target_heading_deg;
- double _damp_sync;
- double _damp_roll;
- double _damp_pitch;
- double _damp_heading;
-
- double _damped_roll_deg;
- double _damped_pitch_deg;
- double _damped_heading_deg;
-
+ SGVec3d _dampTarget; ///< current target value we are damping towards
+ SGVec3d _dampOutput; ///< current output of damping filter
+ SGVec3d _dampFactor; ///< weighting of the damping filter
+
// Position offsets from FDM origin. The X axis is positive
// out the tail, Y is out the right wing, and Z is positive up.
// distance in meters
// the nominal field of view (angle, in degrees)
double _fov_deg;
- // Ratio of window width and height; height = width *
- // aspect_ratio. This value is automatically calculated based on
- // window dimentions.
- double _aspect_ratio;
-
// default = 1.0, this value is user configurable and is
// multiplied into the aspect_ratio to get the actual vertical fov
double _aspect_ratio_multiplier;
void recalc ();
void recalcLookFrom();
void recalcLookAt();
- void dampEyeData(double &roll_deg, double &pitch_deg, double &heading_deg);
+ void setDampTarget(double h, double p, double r);
+ void getDampOutput(double& roll, double& pitch, double& heading);
+
+ void updateDampOutput(double dt);
+
// add to _heading_offset_deg
inline void incHeadingOffset_deg( double amt ) {
set_dirty();