3 template<
typename T,
typename U, qualifier Q>
4 GLM_FUNC_QUALIFIER
vec<3, T, Q> projectZO(
vec<3, T, Q> const& obj,
mat<4, 4, T, Q> const& model,
mat<4, 4, T, Q> const&
proj,
vec<4, U, Q> const& viewport)
11 tmp.x = tmp.x *
static_cast<T
>(0.5) +
static_cast<T
>(0.5);
12 tmp.y = tmp.y *
static_cast<T
>(0.5) +
static_cast<T
>(0.5);
14 tmp[0] = tmp[0] * T(viewport[2]) + T(viewport[0]);
15 tmp[1] = tmp[1] * T(viewport[3]) + T(viewport[1]);
20 template<
typename T,
typename U, qualifier Q>
21 GLM_FUNC_QUALIFIER
vec<3, T, Q> projectNO(
vec<3, T, Q> const& obj,
mat<4, 4, T, Q> const& model,
mat<4, 4, T, Q> const&
proj,
vec<4, U, Q> const& viewport)
28 tmp = tmp *
static_cast<T
>(0.5) +
static_cast<T
>(0.5);
29 tmp[0] = tmp[0] * T(viewport[2]) + T(viewport[0]);
30 tmp[1] = tmp[1] * T(viewport[3]) + T(viewport[1]);
35 template<
typename T,
typename U, qualifier Q>
36 GLM_FUNC_QUALIFIER
vec<3, T, Q> project(
vec<3, T, Q> const& obj,
mat<4, 4, T, Q> const& model,
mat<4, 4, T, Q> const&
proj,
vec<4, U, Q> const& viewport)
38 if(GLM_CONFIG_CLIP_CONTROL & GLM_CLIP_CONTROL_ZO_BIT)
44 template<
typename T,
typename U, qualifier Q>
45 GLM_FUNC_QUALIFIER
vec<3, T, Q> unProjectZO(
vec<3, T, Q> const& win,
mat<4, 4, T, Q> const& model,
mat<4, 4, T, Q> const&
proj,
vec<4, U, Q> const& viewport)
50 tmp.x = (tmp.x - T(viewport[0])) / T(viewport[2]);
51 tmp.y = (tmp.y - T(viewport[1])) / T(viewport[3]);
52 tmp.x = tmp.x *
static_cast<T
>(2) -
static_cast<T
>(1);
53 tmp.y = tmp.y *
static_cast<T
>(2) -
static_cast<T
>(1);
61 template<
typename T,
typename U, qualifier Q>
62 GLM_FUNC_QUALIFIER
vec<3, T, Q> unProjectNO(
vec<3, T, Q> const& win,
mat<4, 4, T, Q> const& model,
mat<4, 4, T, Q> const&
proj,
vec<4, U, Q> const& viewport)
67 tmp.x = (tmp.x - T(viewport[0])) / T(viewport[2]);
68 tmp.y = (tmp.y - T(viewport[1])) / T(viewport[3]);
69 tmp = tmp *
static_cast<T
>(2) -
static_cast<T
>(1);
77 template<
typename T,
typename U, qualifier Q>
78 GLM_FUNC_QUALIFIER
vec<3, T, Q> unProject(
vec<3, T, Q> const& win,
mat<4, 4, T, Q> const& model,
mat<4, 4, T, Q> const&
proj,
vec<4, U, Q> const& viewport)
80 if(GLM_CONFIG_CLIP_CONTROL & GLM_CLIP_CONTROL_ZO_BIT)
86 template<
typename T, qualifier Q,
typename U>
87 GLM_FUNC_QUALIFIER
mat<4, 4, T, Q> pickMatrix(
vec<2, T, Q> const& center,
vec<2, T, Q> const& delta,
vec<4, U, Q> const& viewport)
89 assert(delta.x >
static_cast<T
>(0) && delta.y >
static_cast<T
>(0));
92 if(!(delta.x >
static_cast<T
>(0) && delta.y >
static_cast<T
>(0)))
96 (
static_cast<T
>(viewport[2]) -
static_cast<T
>(2) * (center.x -
static_cast<T
>(viewport[0]))) / delta.x,
97 (
static_cast<T
>(viewport[3]) -
static_cast<T
>(2) * (center.y -
static_cast<T
>(viewport[1]))) / delta.y,
102 return scale(Result,
vec<3, T, Q>(
static_cast<T
>(viewport[2]) / delta.x,
static_cast<T
>(viewport[3]) / delta.y,
static_cast<T
>(1)));
GLM_FUNC_QUALIFIER mat< C, R, T, Q > inverse(mat< C, R, T, Q > const &m)
Definition func_matrix.inl:388
GLM_FUNC_DECL mat< 4, 4, T, Q > pickMatrix(vec< 2, T, Q > const ¢er, vec< 2, T, Q > const &delta, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:87
GLM_FUNC_DECL vec< 3, T, Q > project(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:36
GLM_FUNC_DECL vec< 3, T, Q > unProjectNO(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:62
GLM_FUNC_DECL vec< 3, T, Q > projectNO(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:21
GLM_FUNC_DECL vec< 3, T, Q > unProjectZO(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:45
GLM_FUNC_DECL vec< 3, T, Q > unProject(vec< 3, T, Q > const &win, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:78
GLM_FUNC_DECL vec< 3, T, Q > projectZO(vec< 3, T, Q > const &obj, mat< 4, 4, T, Q > const &model, mat< 4, 4, T, Q > const &proj, vec< 4, U, Q > const &viewport)
Definition matrix_projection.inl:4
GLM_FUNC_DECL genType proj(genType const &x, genType const &Normal)
Definition projection.inl:6
Core features
Definition common.hpp:21
Definition qualifier.hpp:36
Definition qualifier.hpp:35