#ifndef _VIEWER_HXX
-#define _VIEWER_HXX
-
-
-#ifndef __cplusplus
-# error This library requires C++
-#endif
+#define _VIEWER_HXX
namespace flightgear
{
// pilot view, model in model view).
// FIXME: the model view position (ie target positions)
// should be in the model class.
- virtual double getLongitude_deg () const { return _position.getLongitudeDeg(); }
- virtual double getLatitude_deg () const { return _position.getLatitudeDeg(); }
-
virtual void setPosition (double lon_deg, double lat_deg, double alt_ft);
const SGGeod& getPosition() const { return _position; }
-
// Reference geodetic target position...
virtual void setTargetPosition (double lon_deg, double lat_deg, double alt_ft);
const SGGeod& getTargetPosition() const { return _target; }
// 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(); }
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
bool _dirty;
SGQuatd mViewOrientation;
+ SGQuatd mViewOffsetOr;
SGVec3d _absolute_view_pos;
SGGeod _position;