core: move viewpoint to vlc_viewpoint.h
[vlc.git] / include / vlc_viewpoint.h
1 /*****************************************************************************
2  * vlc_viewpoint.h: viewpoint struct and helpers
3  *****************************************************************************
4  * Copyright (C) 2017 VLC authors and VideoLAN
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20
21 #ifndef VLC_VIEWPOINT_H_
22 #define VLC_VIEWPOINT_H_ 1
23
24 #include <vlc_common.h>
25
26 /**
27  * \defgroup output Output
28  * \ingroup output
29  *
30  * @{
31  * \file
32  * Video and audio viewpoint struct and helpers
33  */
34
35 #define FIELD_OF_VIEW_DEGREES_DEFAULT  80.f
36 #define FIELD_OF_VIEW_DEGREES_MAX 150.f
37 #define FIELD_OF_VIEW_DEGREES_MIN 20.f
38
39 /**
40  * Viewpoints
41  */
42 struct vlc_viewpoint_t {
43     float yaw;   /* yaw in degrees */
44     float pitch; /* pitch in degrees */
45     float roll;  /* roll in degrees */
46     float fov;   /* field of view in degrees */
47 };
48
49 static inline void vlc_viewpoint_init( vlc_viewpoint_t *p_vp )
50 {
51     p_vp->yaw = p_vp->pitch = p_vp->roll = 0.0f;
52     p_vp->fov = FIELD_OF_VIEW_DEGREES_DEFAULT;
53 }
54
55 /**@}*/
56
57 #endif /* VLC_VIEWPOINT_H_ */