X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Fviewmgr.hxx;h=c296b71559b50e2018d585e3272c58d52f1ebcb3;hb=b587400846111cc4d6713dcdd38b715c97923d5a;hp=2c0feb428fdd1c778dd28996222ca12c4e261034;hpb=b582c118bd6bba58a32d75d2d8ef45b612b231d3;p=flightgear.git diff --git a/src/Main/viewmgr.hxx b/src/Main/viewmgr.hxx index 2c0feb428..c296b7155 100644 --- a/src/Main/viewmgr.hxx +++ b/src/Main/viewmgr.hxx @@ -25,6 +25,7 @@ #define _VIEWMGR_HXX #include +#include #include #include @@ -76,6 +77,8 @@ public: private: + list tied_props; + double axis_long; double axis_lat; @@ -116,6 +119,21 @@ private: void setViewAxisLat (double axis); int getView () const; void setView (int newview); + +// quaternion accessors, for debugging: + double getCurrentViewOrientation_w() const; + double getCurrentViewOrientation_x() const; + double getCurrentViewOrientation_y() const; + double getCurrentViewOrientation_z() const; + double getCurrentViewOrOffset_w() const; + double getCurrentViewOrOffset_x() const; + double getCurrentViewOrOffset_y() const; + double getCurrentViewOrOffset_z() const; + double getCurrentViewFrame_w() const; + double getCurrentViewFrame_x() const; + double getCurrentViewFrame_y() const; + double getCurrentViewFrame_z() const; + bool stationary () const; SGPropertyNode_ptr view_number; @@ -125,10 +143,20 @@ private: SGVec3d abs_viewer_position; int current; + SGQuatd current_view_orientation, current_view_or_offset; SGSoundMgr *smgr; }; +// This takes the conventional aviation XYZ body system +// i.e. x=forward, y=starboard, z=bottom +// which is widely used in FGFS +// and rotates it into the OpenGL camera system +// i.e. Xprime=starboard, Yprime=top, Zprime=aft. +inline const SGQuatd fsb2sta() +{ + return SGQuatd(-0.5, -0.5, 0.5, 0.5); +} #endif // _VIEWMGR_HXX