1 /*
2  * Copyright (c), Recep Aslantas.
3  *
4  * MIT License (MIT), http://opensource.org/licenses/MIT
5  * Full license can be found in the LICENSE file
6  */
7 
8 #ifndef cglmc_persp_rh_zo_h
9 #define cglmc_persp_rh_zo_h
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include "../../cglm.h"
15 
16 CGLM_EXPORT
17 void
18 glmc_frustum_rh_zo(float left,    float right,
19                    float bottom,  float top,
20                    float nearZ,   float farZ,
21                    mat4  dest);
22 
23 CGLM_EXPORT
24 void
25 glmc_perspective_rh_zo(float fovy,
26                        float aspect,
27                        float nearVal,
28                        float farVal,
29                        mat4 dest);
30 
31 CGLM_EXPORT
32 void
33 glmc_persp_move_far_rh_zo(mat4 proj, float deltaFar);
34 
35 CGLM_EXPORT
36 void
37 glmc_persp_decomp_rh_zo(mat4 proj,
38                         float * __restrict nearZ, float * __restrict farZ,
39                         float * __restrict top,   float * __restrict bottom,
40                         float * __restrict left,  float * __restrict right);
41 
42 CGLM_EXPORT
43 void
44 glmc_persp_decompv_rh_zo(mat4 proj, float dest[6]);
45 
46 CGLM_EXPORT
47 void
48 glmc_persp_decomp_x_rh_zo(mat4 proj,
49                           float * __restrict left,
50                           float * __restrict right);
51 
52 CGLM_EXPORT
53 void
54 glmc_persp_decomp_y_rh_zo(mat4 proj,
55                           float * __restrict top,
56                           float * __restrict bottom);
57 
58 CGLM_EXPORT
59 void
60 glmc_persp_decomp_z_rh_zo(mat4 proj,
61                           float * __restrict nearZ,
62                           float * __restrict farZ);
63 
64 CGLM_EXPORT
65 void
66 glmc_persp_decomp_far_rh_zo(mat4 proj, float * __restrict farZ);
67 
68 CGLM_EXPORT
69 void
70 glmc_persp_decomp_near_rh_zo(mat4 proj, float * __restrict nearZ);
71 
72 CGLM_EXPORT
73 void
74 glmc_persp_sizes_rh_zo(mat4 proj, float fovy, vec4 dest);
75 
76 CGLM_EXPORT
77 float
78 glmc_persp_fovy_rh_zo(mat4 proj);
79 
80 CGLM_EXPORT
81 float
82 glmc_persp_aspect_rh_zo(mat4 proj);
83 
84 #ifdef __cplusplus
85 }
86 #endif
87 #endif /* cglmc_persp_rh_zo_h */
88