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 #include "../../include/cglm/clipspace/persp_rh_zo.h"
9 #include "../../include/cglm/call/clipspace/persp_rh_zo.h"
10 
11 CGLM_EXPORT
12 void
glmc_frustum_rh_zo(float left,float right,float bottom,float top,float nearZ,float farZ,mat4 dest)13 glmc_frustum_rh_zo(float left,    float right,
14                    float bottom,  float top,
15                    float nearZ, float farZ,
16                    mat4  dest) {
17   glm_frustum_rh_zo(left, right,
18                     bottom, top,
19                     nearZ, farZ,
20                     dest);
21 }
22 
23 CGLM_EXPORT
24 void
glmc_perspective_rh_zo(float fovy,float aspect,float nearVal,float farVal,mat4 dest)25 glmc_perspective_rh_zo(float fovy,
26                        float aspect,
27                        float nearVal,
28                        float farVal,
29                        mat4 dest) {
30   glm_perspective_rh_zo(fovy,
31                         aspect,
32                         nearVal,
33                         farVal,
34                         dest);
35 }
36 
37 CGLM_EXPORT
38 void
glmc_persp_move_far_rh_zo(mat4 proj,float deltaFar)39 glmc_persp_move_far_rh_zo(mat4 proj, float deltaFar) {
40   glm_persp_move_far_rh_zo(proj, deltaFar);
41 }
42 
43 CGLM_EXPORT
44 void
glmc_persp_decomp_rh_zo(mat4 proj,float * __restrict nearZ,float * __restrict farZ,float * __restrict top,float * __restrict bottom,float * __restrict left,float * __restrict right)45 glmc_persp_decomp_rh_zo(mat4 proj,
46                         float * __restrict nearZ, float * __restrict farZ,
47                         float * __restrict top,   float * __restrict bottom,
48                         float * __restrict left,  float * __restrict right) {
49   glm_persp_decomp_rh_zo(proj, nearZ, farZ, top, bottom, left, right);
50 }
51 
52 CGLM_EXPORT
53 void
glmc_persp_decompv_rh_zo(mat4 proj,float dest[6])54 glmc_persp_decompv_rh_zo(mat4 proj, float dest[6]) {
55   glm_persp_decompv_rh_zo(proj, dest);
56 }
57 
58 CGLM_EXPORT
59 void
glmc_persp_decomp_x_rh_zo(mat4 proj,float * __restrict left,float * __restrict right)60 glmc_persp_decomp_x_rh_zo(mat4 proj,
61                           float * __restrict left,
62                           float * __restrict right) {
63   glm_persp_decomp_x_rh_zo(proj, left, right);
64 }
65 
66 CGLM_EXPORT
67 void
glmc_persp_decomp_y_rh_zo(mat4 proj,float * __restrict top,float * __restrict bottom)68 glmc_persp_decomp_y_rh_zo(mat4 proj,
69                           float * __restrict top,
70                           float * __restrict bottom) {
71   glm_persp_decomp_y_rh_zo(proj, top, bottom);
72 }
73 
74 CGLM_EXPORT
75 void
glmc_persp_decomp_z_rh_zo(mat4 proj,float * __restrict nearZ,float * __restrict farZ)76 glmc_persp_decomp_z_rh_zo(mat4 proj,
77                           float * __restrict nearZ,
78                           float * __restrict farZ) {
79   glm_persp_decomp_z_rh_zo(proj, nearZ, farZ);
80 }
81 
82 CGLM_EXPORT
83 void
glmc_persp_decomp_far_rh_zo(mat4 proj,float * __restrict farZ)84 glmc_persp_decomp_far_rh_zo(mat4 proj, float * __restrict farZ) {
85   glm_persp_decomp_far_rh_zo(proj, farZ);
86 }
87 
88 CGLM_EXPORT
89 void
glmc_persp_decomp_near_rh_zo(mat4 proj,float * __restrict nearZ)90 glmc_persp_decomp_near_rh_zo(mat4 proj, float * __restrict nearZ) {
91   glm_persp_decomp_near_rh_zo(proj, nearZ);
92 }
93 
94 CGLM_EXPORT
95 void
glmc_persp_sizes_rh_zo(mat4 proj,float fovy,vec4 dest)96 glmc_persp_sizes_rh_zo(mat4 proj, float fovy, vec4 dest) {
97   glm_persp_sizes_rh_zo(proj, fovy, dest);
98 }
99 
100 CGLM_EXPORT
101 float
glmc_persp_fovy_rh_zo(mat4 proj)102 glmc_persp_fovy_rh_zo(mat4 proj) {
103   return glm_persp_fovy_rh_zo(proj);
104 }
105 
106 CGLM_EXPORT
107 float
glmc_persp_aspect_rh_zo(mat4 proj)108 glmc_persp_aspect_rh_zo(mat4 proj) {
109   return glm_persp_aspect_rh_zo(proj);
110 }
111