mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
new project function for projecting Z
someitmes we need to project z only. this function reduces a few calculations and parameters.
This commit is contained in:
@@ -43,6 +43,7 @@
|
||||
* @param[in] pos point/position in viewport coordinates
|
||||
* @param[in] invMat matrix (see brief)
|
||||
* @param[in] vp viewport as [x, y, width, height]
|
||||
*
|
||||
* @returns unprojected coordinates
|
||||
*/
|
||||
CGLM_INLINE
|
||||
@@ -63,6 +64,7 @@ glms_unprojecti_no(vec3s pos, mat4s invMat, vec4s vp, vec3 dest) {
|
||||
* @param[in] pos object coordinates
|
||||
* @param[in] m MVP matrix
|
||||
* @param[in] vp viewport as [x, y, width, height]
|
||||
*
|
||||
* @returns projected coordinates
|
||||
*/
|
||||
CGLM_INLINE
|
||||
@@ -73,4 +75,22 @@ glms_project_no(vec3s pos, mat4s m, vec4s vp, vec3s dest) {
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief map object's z coordinate to window coordinates
|
||||
*
|
||||
* Computing MVP:
|
||||
* glm_mat4_mul(proj, view, viewProj);
|
||||
* glm_mat4_mul(viewProj, model, MVP);
|
||||
*
|
||||
* @param[in] v object coordinates
|
||||
* @param[in] m MVP matrix
|
||||
*
|
||||
* @returns projected z coordinate
|
||||
*/
|
||||
CGLM_INLINE
|
||||
vec3s
|
||||
glms_project_z_no(vec3s v, mat4s m) {
|
||||
return glm_project_z_no(v.raw, m.raw);
|
||||
}
|
||||
|
||||
#endif /* cglms_project_rh_no_h */
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
* @param[in] pos point/position in viewport coordinates
|
||||
* @param[in] invMat matrix (see brief)
|
||||
* @param[in] vp viewport as [x, y, width, height]
|
||||
*
|
||||
* @returns unprojected coordinates
|
||||
*/
|
||||
CGLM_INLINE
|
||||
@@ -63,6 +64,7 @@ glms_unprojecti_zo(vec3s pos, mat4s invMat, vec4s vp, vec3 dest) {
|
||||
* @param[in] pos object coordinates
|
||||
* @param[in] m MVP matrix
|
||||
* @param[in] vp viewport as [x, y, width, height]
|
||||
*
|
||||
* @returns projected coordinates
|
||||
*/
|
||||
CGLM_INLINE
|
||||
@@ -73,4 +75,22 @@ glms_project_zo(vec3s pos, mat4s m, vec4s vp, vec3 dest) {
|
||||
return dest;
|
||||
}
|
||||
|
||||
/*!
|
||||
* @brief map object's z coordinate to window coordinates
|
||||
*
|
||||
* Computing MVP:
|
||||
* glm_mat4_mul(proj, view, viewProj);
|
||||
* glm_mat4_mul(viewProj, model, MVP);
|
||||
*
|
||||
* @param[in] v object coordinates
|
||||
* @param[in] m MVP matrix
|
||||
*
|
||||
* @returns projected z coordinate
|
||||
*/
|
||||
CGLM_INLINE
|
||||
vec3s
|
||||
glms_project_z_zo(vec3s v, mat4s m) {
|
||||
return glm_project_z_zo(v.raw, m.raw);
|
||||
}
|
||||
|
||||
#endif /* cglm_project_zo_h */
|
||||
|
||||
Reference in New Issue
Block a user