|
|
@ -336,23 +336,47 @@ namespace glm |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
float simdLength( |
|
|
|
float length( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
|
|
|
|
//! Less accurate but much faster than simdLength.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdLength4( |
|
|
|
float fastLength( |
|
|
|
|
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
|
|
|
|
//! Slightly more accurate but much slower than simdLength.
|
|
|
|
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
|
|
|
|
float niceLength( |
|
|
|
|
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
|
|
|
|
detail::fvec4SIMD length4( |
|
|
|
|
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
|
|
|
|
//! Less accurate but much faster than simdLength4.
|
|
|
|
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
|
|
|
|
detail::fvec4SIMD fastLength4( |
|
|
|
|
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//! Returns the length of x, i.e., sqrt(x * x).
|
|
|
|
|
|
|
|
//! Slightly more accurate but much slower than simdLength4.
|
|
|
|
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
|
|
|
|
detail::fvec4SIMD niceLength4( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
|
|
|
|
//! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
float simdDistance( |
|
|
|
float distance( |
|
|
|
detail::fvec4SIMD const & p0, |
|
|
|
detail::fvec4SIMD const & p0, |
|
|
|
detail::fvec4SIMD const & p1); |
|
|
|
detail::fvec4SIMD const & p1); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
|
|
|
|
//! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdDistance4( |
|
|
|
detail::fvec4SIMD distance4( |
|
|
|
detail::fvec4SIMD const & p0, |
|
|
|
detail::fvec4SIMD const & p0, |
|
|
|
detail::fvec4SIMD const & p1); |
|
|
|
detail::fvec4SIMD const & p1); |
|
|
|
|
|
|
|
|
|
|
@ -364,25 +388,25 @@ namespace glm |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the dot product of x and y, i.e., result = x * y.
|
|
|
|
//! Returns the dot product of x and y, i.e., result = x * y.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdDot4( |
|
|
|
detail::fvec4SIMD dot4( |
|
|
|
detail::fvec4SIMD const & x, |
|
|
|
detail::fvec4SIMD const & x, |
|
|
|
detail::fvec4SIMD const & y); |
|
|
|
detail::fvec4SIMD const & y); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the cross product of x and y.
|
|
|
|
//! Returns the cross product of x and y.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdCross( |
|
|
|
detail::fvec4SIMD cross( |
|
|
|
detail::fvec4SIMD const & x, |
|
|
|
detail::fvec4SIMD const & x, |
|
|
|
detail::fvec4SIMD const & y); |
|
|
|
detail::fvec4SIMD const & y); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns a vector in the same direction as x but with length of 1.
|
|
|
|
//! Returns a vector in the same direction as x but with length of 1.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdNormalize( |
|
|
|
detail::fvec4SIMD normalize( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns a vector in the same direction as x but with length of 1.
|
|
|
|
//! Returns a vector in the same direction as x but with length of 1.
|
|
|
|
//! Less accurate but much faster than simdNormalize.
|
|
|
|
//! Less accurate but much faster than simdNormalize.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdFastNormalize( |
|
|
|
detail::fvec4SIMD fastNormalize( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! If dot(Nref, I) < 0.0, return N, otherwise, return -N.
|
|
|
|
//! If dot(Nref, I) < 0.0, return N, otherwise, return -N.
|
|
|
@ -395,7 +419,7 @@ namespace glm |
|
|
|
//! For the incident vector I and surface orientation N,
|
|
|
|
//! For the incident vector I and surface orientation N,
|
|
|
|
//! returns the reflection direction : result = I - 2.0 * dot(N, I) * N.
|
|
|
|
//! returns the reflection direction : result = I - 2.0 * dot(N, I) * N.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdReflect( |
|
|
|
detail::fvec4SIMD reflect( |
|
|
|
detail::fvec4SIMD const & I, |
|
|
|
detail::fvec4SIMD const & I, |
|
|
|
detail::fvec4SIMD const & N); |
|
|
|
detail::fvec4SIMD const & N); |
|
|
|
|
|
|
|
|
|
|
@ -403,37 +427,37 @@ namespace glm |
|
|
|
//! and the ratio of indices of refraction eta,
|
|
|
|
//! and the ratio of indices of refraction eta,
|
|
|
|
//! return the refraction vector.
|
|
|
|
//! return the refraction vector.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
|
|
|
detail::fvec4SIMD simdRefract( |
|
|
|
detail::fvec4SIMD refract( |
|
|
|
detail::fvec4SIMD const & I, |
|
|
|
detail::fvec4SIMD const & I, |
|
|
|
detail::fvec4SIMD const & N, |
|
|
|
detail::fvec4SIMD const & N, |
|
|
|
float const & eta); |
|
|
|
float const & eta); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the positive square root of x.
|
|
|
|
//! Returns the positive square root of x.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
detail::fvec4SIMD simdSqrt( |
|
|
|
detail::fvec4SIMD sqrt( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the positive square root of x with the nicest quality but very slow.
|
|
|
|
//! Returns the positive square root of x with the nicest quality but very slow.
|
|
|
|
//! Slightly more accurate but much slower than simdSqrt.
|
|
|
|
//! Slightly more accurate but much slower than simdSqrt.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
detail::fvec4SIMD simdNiceSqrt( |
|
|
|
detail::fvec4SIMD niceSqrt( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the positive square root of x
|
|
|
|
//! Returns the positive square root of x
|
|
|
|
//! Less accurate but much faster than simdSqrt.
|
|
|
|
//! Less accurate but much faster than sqrt.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
detail::fvec4SIMD simdFastSqrt( |
|
|
|
detail::fvec4SIMD fastSqrt( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the reciprocal of the positive square root of x.
|
|
|
|
//! Returns the reciprocal of the positive square root of x.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
detail::fvec4SIMD simdInversesqrt( |
|
|
|
detail::fvec4SIMD inversesqrt( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
//! Returns the reciprocal of the positive square root of x.
|
|
|
|
//! Returns the reciprocal of the positive square root of x.
|
|
|
|
//! Faster than simdInversesqrt but less accurate.
|
|
|
|
//! Faster than inversesqrt but less accurate.
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
|
|
|
detail::fvec4SIMD simdFastInversesqrt( |
|
|
|
detail::fvec4SIMD fastInversesqrt( |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
detail::fvec4SIMD const & x); |
|
|
|
|
|
|
|
|
|
|
|
}//namespace simd_vec4
|
|
|
|
}//namespace simd_vec4
|
|
|
|