]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/viewer.hxx
Restore splash screen for the Rembrandt renderer
[flightgear.git] / src / Main / viewer.hxx
index 965e8569a8a8cb3cdf8bb6829c482522f375908c..ef5df5049d5201938185511a34b2a55e1961a4fd 100644 (file)
@@ -119,6 +119,7 @@ public:
     //   orientation rotations listed below.  This has the effect of the 
     //   eye moving around and "looking at" the object (model) from 
     //   different angles.
+    virtual SGVec3d getOffset_m () const { return _offset_m; }
     virtual double getXOffset_m () const { return _offset_m.x(); }
     virtual double getYOffset_m () const { return _offset_m.y(); }
     virtual double getZOffset_m () const { return _offset_m.z(); }
@@ -201,6 +202,7 @@ public:
     const SGVec3d& get_view_pos() { if ( _dirty ) { recalc(); } return _absolute_view_pos; }
     const SGVec3d& getViewPosition() { if ( _dirty ) { recalc(); } return _absolute_view_pos; }
     const SGQuatd& getViewOrientation() { if ( _dirty ) { recalc(); } return mViewOrientation; }
+    const SGQuatd& getViewOrientationOffset() { if ( _dirty ) { recalc(); } return mViewOffsetOr; }
 
     //////////////////////////////////////////////////////////////////////
     // Part 4: View and frustrum data setters and getters
@@ -213,10 +215,7 @@ public:
     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;
@@ -247,6 +246,7 @@ private:
     bool _dirty;
 
     SGQuatd mViewOrientation;
+    SGQuatd mViewOffsetOr;
     SGVec3d _absolute_view_pos;
 
     SGGeod _position;
@@ -259,15 +259,10 @@ private:
     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
@@ -307,11 +302,6 @@ private:
     // 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;
@@ -325,8 +315,12 @@ private:
     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();