X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Fviewmgr.hxx;h=6461af11a90fdaad16b99e92ab235470d7610d67;hb=38226af24ec01e8f0a20d7fd73ef838a69f6ef25;hp=f1a0eccd44baccf69508875892ebc4256f992d23;hpb=ab149d0036f21fd2ad685f7efea28f84986534b0;p=flightgear.git diff --git a/src/Main/viewmgr.hxx b/src/Main/viewmgr.hxx index f1a0eccd4..6461af11a 100644 --- a/src/Main/viewmgr.hxx +++ b/src/Main/viewmgr.hxx @@ -29,6 +29,7 @@ #include #include +#include #include // forward decls @@ -69,14 +70,12 @@ public: // setters void clear(); - inline void set_view( const int v ) { current = v; } + void add_view( FGViewer * v ); - // copies current offset settings to current-view path... - void copyToCurrent (); - private: - + void do_bind(); + list tied_props; double axis_long; @@ -119,13 +118,27 @@ private: void setViewAxisLat (double axis); int getView () const; void setView (int newview); -// quaternion accessors: - const char* getCurrentViewOrientation() const; - const char* getCurrentViewOrOffset() const; - const char* getCurrentView1200() const; + +// 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; + // copies current offset settings to current-view path... + void copyToCurrent (); + + bool inited; SGPropertyNode_ptr view_number; vector config_list; typedef std::vector viewer_list; @@ -139,5 +152,14 @@ private: }; +// 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