|
|
@@ -8,216 +8,258 @@ namespace glm
|
|
|
/// @addtogroup gtc_type_ptr
|
|
|
/// @{
|
|
|
|
|
|
- /// Return the constant address to the data of the vector input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(vec<2, T, Q> const& v)
|
|
|
{
|
|
|
return &(v.x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the vector input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(vec<2, T, Q>& v)
|
|
|
{
|
|
|
return &(v.x);
|
|
|
}
|
|
|
|
|
|
- /// Return the constant address to the data of the vector input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const * value_ptr(vec<3, T, Q> const& v)
|
|
|
{
|
|
|
return &(v.x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the vector input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(vec<3, T, Q>& v)
|
|
|
{
|
|
|
return &(v.x);
|
|
|
}
|
|
|
-
|
|
|
- /// Return the constant address to the data of the vector input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(vec<4, T, Q> const& v)
|
|
|
{
|
|
|
return &(v.x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the vector input.
|
|
|
- //! From GLM_GTC_type_ptr extension.
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(vec<4, T, Q>& v)
|
|
|
{
|
|
|
return &(v.x);
|
|
|
}
|
|
|
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<2, 2, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<2, 2, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<3, 3, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<3, 3, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
-
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<4, 4, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- //! From GLM_GTC_type_ptr extension.
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<4, 4, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<2, 3, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<2, 3, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
-
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<3, 2, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<3, 2, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
-
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<2, 4, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<2, 4, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
-
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<4, 2, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<4, 2, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
-
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<3, 4, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- //! Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(mat<3, 4, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
-
|
|
|
- /// Return the constant address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const* value_ptr(mat<4, 3, T, Q> const& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- /// Return the address to the data of the matrix input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T * value_ptr(mat<4, 3, T, Q>& m)
|
|
|
{
|
|
|
return &(m[0].x);
|
|
|
}
|
|
|
|
|
|
- /// Return the constant address to the data of the input parameter.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T const * value_ptr(tquat<T, Q> const& q)
|
|
|
{
|
|
|
return &(q[0]);
|
|
|
}
|
|
|
|
|
|
- /// Return the address to the data of the quaternion input.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T, qualifier Q>
|
|
|
GLM_FUNC_QUALIFIER T* value_ptr(tquat<T, Q>& q)
|
|
|
{
|
|
|
return &(q[0]);
|
|
|
}
|
|
|
|
|
|
- /// Build a vector from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<1, T, Q> make_vec1(vec<1, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return v;
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<1, T, Q> make_vec1(vec<2, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<1, T, Q>(v);
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<1, T, Q> make_vec1(vec<3, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<1, T, Q>(v);
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<1, T, Q> make_vec1(vec<4, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<1, T, Q>(v);
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<2, T, Q> make_vec2(vec<1, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<2, T, Q>(v.x, static_cast<T>(0));
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<2, T, Q> make_vec2(vec<2, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return v;
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<2, T, Q> make_vec2(vec<3, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<2, T, Q>(v);
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<2, T, Q> make_vec2(vec<4, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<2, T, Q>(v);
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<3, T, Q> make_vec3(vec<1, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<3, T, Q>(v.x, static_cast<T>(0), static_cast<T>(0));
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<3, T, Q> make_vec3(vec<2, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<3, T, Q>(v.x, v.y, static_cast<T>(0));
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<3, T, Q> make_vec3(vec<3, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return v;
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<3, T, Q> make_vec3(vec<4, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<3, T, Q>(v);
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<4, T, Q> make_vec4(vec<1, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<4, T, Q>(v.x, static_cast<T>(0), static_cast<T>(0), static_cast<T>(1));
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<4, T, Q> make_vec4(vec<2, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<4, T, Q>(v.x, v.y, static_cast<T>(0), static_cast<T>(1));
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<4, T, Q> make_vec4(vec<3, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return vec<4, T, Q>(v.x, v.y, v.z, static_cast<T>(1));
|
|
|
+ }
|
|
|
+
|
|
|
+ template <typename T, qualifier Q>
|
|
|
+ inline vec<4, T, Q> make_vec4(vec<4, T, Q> const& v)
|
|
|
+ {
|
|
|
+ return v;
|
|
|
+ }
|
|
|
+
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER vec<2, T, defaultp> make_vec2(T const *const ptr)
|
|
|
{
|
|
|
@@ -226,8 +268,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- /// Build a vector from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER vec<3, T, defaultp> make_vec3(T const *const ptr)
|
|
|
{
|
|
|
@@ -236,8 +276,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- /// Build a vector from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER vec<4, T, defaultp> make_vec4(T const *const ptr)
|
|
|
{
|
|
|
@@ -246,8 +284,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- /// Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<2, 2, T, defaultp> make_mat2x2(T const *const ptr)
|
|
|
{
|
|
|
@@ -256,8 +292,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- /// Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<2, 3, T, defaultp> make_mat2x3(T const *const ptr)
|
|
|
{
|
|
|
@@ -266,8 +300,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- /// Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<2, 4, T, defaultp> make_mat2x4(T const *const ptr)
|
|
|
{
|
|
|
@@ -276,8 +308,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- /// Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<3, 2, T, defaultp> make_mat3x2(T const *const ptr)
|
|
|
{
|
|
|
@@ -286,8 +316,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<3, 3, T, defaultp> make_mat3x3(T const *const ptr)
|
|
|
{
|
|
|
@@ -296,8 +324,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<3, 4, T, defaultp> make_mat3x4(T const *const ptr)
|
|
|
{
|
|
|
@@ -306,8 +332,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<4, 2, T, defaultp> make_mat4x2(T const *const ptr)
|
|
|
{
|
|
|
@@ -316,8 +340,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<4, 3, T, defaultp> make_mat4x3(T const *const ptr)
|
|
|
{
|
|
|
@@ -326,8 +348,6 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> make_mat4x4(T const *const ptr)
|
|
|
{
|
|
|
@@ -336,32 +356,24 @@ namespace glm
|
|
|
return Result;
|
|
|
}
|
|
|
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<2, 2, T, defaultp> make_mat2(T const *const ptr)
|
|
|
{
|
|
|
return make_mat2x2(ptr);
|
|
|
}
|
|
|
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<3, 3, T, defaultp> make_mat3(T const *const ptr)
|
|
|
{
|
|
|
return make_mat3x3(ptr);
|
|
|
}
|
|
|
-
|
|
|
- //! Build a matrix from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
+
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER mat<4, 4, T, defaultp> make_mat4(T const *const ptr)
|
|
|
{
|
|
|
return make_mat4x4(ptr);
|
|
|
}
|
|
|
|
|
|
- //! Build a quaternion from a pointer.
|
|
|
- /// @see gtc_type_ptr
|
|
|
template<typename T>
|
|
|
GLM_FUNC_QUALIFIER tquat<T, defaultp> make_quat(T const *const ptr)
|
|
|
{
|