/* client/camera.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_CAMERA_H__ #define __INCLUDED_CLIENT_CAMERA_H__ #include "math/mathlib.h" namespace client { /// camera functions namespace camera { /// enum indicating the camera mode enum Mode {Free, Track, Cockpit, Overview}; /// initialize the camera void init(); /// shutdown the camera void shutdown(); /// draw the OpenGL camera transformation void draw(float elapsed); /// set target direction void set_direction(float direction); /// set target pitch void set_pitch(float pitch); /// switch to next camera mode void next_mode(); /// reset the current mode void reset(); /// gameworld coordinates of the camera target extern math::Vector3f target; /// gameworld coordinates of the camera eye extern math::Vector3f eye; /// global camera axis coordinate system extern math::Axis axis; /// current camera mode extern Mode mode; } // namespace camera } // namespace client #endif // __INCLUDED_CLIENT_CAMERA_H__