/* 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, Overview}; /// initialize the camera void init(); /// shutdown the camera void shutdown(); /// draw the OpenGL camera transformation void draw(float elapsed); /// rotate the camera left void key_left(); /// rotate the camera right void key_right(); /// rotate the camera up void key_up(); /// rotate the camera down void key_down(); /// switch to next camera mode void next_mode(); /// gameworld coordinates of the camera target extern math::Vector3f target; /// gameworld coordinates of the camera eye extern math::Vector3f eye; /// current camera mode extern Mode mode; } // namespace camera } // namespace client #endif // __INCLUDED_CLIENT_CAMERA_H__