Merge branch '0.9.2' of ssh://ogl-math.git.sourceforge.net/gitroot/ogl-math/ogl-math into 0.9.2

This commit is contained in:
Christophe Riccio 2011-08-04 23:48:54 +01:00
commit 204a6bf612
6 changed files with 193 additions and 175 deletions

View File

@ -3,6 +3,7 @@
<glm copyright="Copyright © 2005 - 2011">
<downloads>
<section name="GLM - zip files">
<download name="GLM 0.9.2.4" date="04/08/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download"/>
<download name="GLM 0.9.2.3" date="08/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download"/>
<download name="GLM 0.9.2.2" date="02/06/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.zip/download"/>
<download name="GLM 0.9.2.1" date="24/05/2011" size="3.4 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.zip/download"/>
@ -66,6 +67,7 @@
<download name="GLM 0.1.0.0" date="02/21/2005" size="29.2 KB" link="http://prdownloads.sourceforge.net/glf/glm-0.1-ur.zip?download"/>
</section>
<section name="GLM - 7z files">
<download name="GLM 0.9.2.4" date="04/08/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download"/>
<download name="GLM 0.9.2.3" date="08/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.7z/download"/>
<download name="GLM 0.9.2.2" date="02/06/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.2/glm-0.9.2.2.7z/download"/>
<download name="GLM 0.9.2.1" date="24/05/2011" size="2.1 MB" link="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.1/glm-0.9.2.1.7z/download"/>
@ -156,9 +158,19 @@
</todo>
<page_news>
<news index="0069" date="04/08/2011" title="GLM 0.9.2.4 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
Fixed few bugs reported by GLM users. Thanks!
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.zip/download">GLM 0.9.2.4 (zip)</source>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.4/glm-0.9.2.4.7z/download">GLM 0.9.2.4 (7z)</source>
<source type="Link" href="https://sourceforge.net/apps/trac/ogl-math/newticket">Submit a bug report</source>
</news>
<news index="0068" date="08/06/2011" title="GLM 0.9.2.3 released" image="goodies/logo.png" image-mini="image/logo-mini.png">
<paragraph>
This version only fixes a couple a major bugs introduced in GLM 0.9.2.2.
This version only fixes a couple of major bugs introduced in GLM 0.9.2.2.
</paragraph>
<source type="Download" href="https://sourceforge.net/projects/ogl-math/files/glm-0.9.2.3/glm-0.9.2.3.zip/download">GLM 0.9.2.3 (zip)</source>

View File

@ -18,7 +18,7 @@ namespace detail
{
class thalf;
#if(__STDC_VERSION__ >= 199901L) // C99 detected, 64 bit types available
#if(__STDC_VERSION__ && (__STDC_VERSION__ >= 199901L)) // C99 detected, 64 bit types available
typedef int64_t sint64;
typedef uint64_t uint64;
#elif(GLM_COMPILER & GLM_COMPILER_VC)

View File

@ -53,7 +53,7 @@ namespace detail
// Convertions
//explicit tquat(valType const & pitch, valType const & yaw, valType const & roll);
//! pitch, yaw, roll
//! Build a quaternion from euler angles (pitch, yaw, roll), in radians.
explicit tquat(
tvec3<T> const & eulerAngles);
explicit tquat(
@ -124,8 +124,8 @@ namespace detail
namespace gtc{
namespace quaternion ///< GLM_GTC_quaternion extension: Quaternion types and functions
{
/// \addtogroup gtc_quaternion
///@{
/// @addtogroup gtc_quaternion
/// @{
//! Returns the length of the quaternion.
//! From GLM_GTC_quaternion extension.
@ -232,7 +232,7 @@ namespace quaternion ///< GLM_GTC_quaternion extension: Quaternion types and fun
//! Quaternion of high precision floating-point numbers.
//! From GLM_GTC_quaternion extension.
typedef detail::tquat<highp_float> highp_quat;
///@}
/// @}
} //namespace quaternion
} //namespace gtc

View File

@ -474,7 +474,8 @@ namespace quaternion{
typename detail::tquat<T>::value_type AngleRad = radians(angle);
typename detail::tquat<T>::value_type fSin = sin(AngleRad * T(0.5));
return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin));
return q * detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin);
//return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin));
}
template <typename T>

View File

@ -204,9 +204,9 @@ template <>
GLM_FUNC_QUALIFIER gtc::type_precision::f16vec3 f16_rgbx_cast<gtc::type_precision::uint32>(gtc::type_precision::uint32 color)
{
gtc::type_precision::f16vec3 result;
result.x = gtc::type_precision::f16(static_cast<float>(color >> 0) / static_cast<float>(255));
result.y = gtc::type_precision::f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.z = gtc::type_precision::f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.x = gtc::type_precision::f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
result.y = gtc::type_precision::f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = gtc::type_precision::f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
return result;
}
@ -214,9 +214,9 @@ template <>
GLM_FUNC_QUALIFIER gtc::type_precision::f16vec3 f16_xrgb_cast<gtc::type_precision::uint32>(gtc::type_precision::uint32 color)
{
gtc::type_precision::f16vec3 result;
result.x = gtc::type_precision::f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.y = gtc::type_precision::f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.z = gtc::type_precision::f16(static_cast<float>(color >> 24) / static_cast<float>(255));
result.x = gtc::type_precision::f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.y = gtc::type_precision::f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = gtc::type_precision::f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
return result;
}
@ -224,9 +224,9 @@ template <>
GLM_FUNC_QUALIFIER f16vec3 f16_bgrx_cast<uint32>(uint32 color)
{
f16vec3 result;
result.x = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
result.x = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
return result;
}
@ -234,9 +234,9 @@ template <>
GLM_FUNC_QUALIFIER f16vec3 f16_xbgr_cast<uint32>(uint32 color)
{
f16vec3 result;
result.x = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.x = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
return result;
}
@ -244,10 +244,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_rgba_cast<uint32>(uint32 color)
{
f16vec4 result;
result.x = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
result.x = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
return result;
}
@ -255,10 +255,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_argb_cast<uint32>(uint32 color)
{
f16vec4 result;
result.x = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
result.x = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
return result;
}
@ -266,10 +266,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_bgra_cast<uint32>(uint32 color)
{
f16vec4 result;
result.x = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
result.x = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
return result;
}
@ -277,10 +277,10 @@ template <>
GLM_FUNC_QUALIFIER f16vec4 f16_abgr_cast<uint32>(uint32 color)
{
f16vec4 result;
result.x = f16(static_cast<float>(color >> 24) / static_cast<float>(255));
result.y = f16(static_cast<float>(color >> 16) / static_cast<float>(255));
result.z = f16(static_cast<float>(color >> 8) / static_cast<float>(255));
result.w = f16(static_cast<float>(color >> 0) / static_cast<float>(255));
result.x = f16(static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255));
result.y = f16(static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255));
result.z = f16(static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255));
result.w = f16(static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255));
return result;
}
@ -294,9 +294,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint32>(uint32 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
result.z = static_cast<float>(color >> 16) / static_cast<float>(255);
result.x = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
return result;
}
@ -304,9 +304,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint32>(uint32 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 8) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
result.z = static_cast<float>(color >> 24) / static_cast<float>(255);
result.x = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
return result;
}
@ -314,9 +314,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint32>(uint32 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
result.z = static_cast<float>(color >> 0) / static_cast<float>(255);
result.x = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
return result;
}
@ -324,9 +324,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint32>(uint32 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 24) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
result.z = static_cast<float>(color >> 8) / static_cast<float>(255);
result.x = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
return result;
}
@ -334,10 +334,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint32>(uint32 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
result.z = static_cast<float>(color >> 16) / static_cast<float>(255);
result.w = static_cast<float>(color >> 24) / static_cast<float>(255);
result.x = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
return result;
}
@ -345,10 +345,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint32>(uint32 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 8) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
result.z = static_cast<float>(color >> 24) / static_cast<float>(255);
result.w = static_cast<float>(color >> 0) / static_cast<float>(255);
result.x = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
return result;
}
@ -356,10 +356,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint32>(uint32 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(255);
result.y = static_cast<float>(color >> 8) / static_cast<float>(255);
result.z = static_cast<float>(color >> 0) / static_cast<float>(255);
result.w = static_cast<float>(color >> 24) / static_cast<float>(255);
result.x = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
return result;
}
@ -367,10 +367,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint32>(uint32 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 24) / static_cast<float>(255);
result.y = static_cast<float>(color >> 16) / static_cast<float>(255);
result.z = static_cast<float>(color >> 8) / static_cast<float>(255);
result.w = static_cast<float>(color >> 0) / static_cast<float>(255);
result.x = static_cast<float>((color >> 24) & 0xFF) / static_cast<float>(255);
result.y = static_cast<float>((color >> 16) & 0xFF) / static_cast<float>(255);
result.z = static_cast<float>((color >> 8) & 0xFF) / static_cast<float>(255);
result.w = static_cast<float>((color >> 0) & 0xFF) / static_cast<float>(255);
return result;
}
@ -384,9 +384,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint32>(uint32 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
result.z = static_cast<double>(color >> 16) / static_cast<double>(255);
result.x = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
return result;
}
@ -394,9 +394,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint32>(uint32 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 8) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
result.z = static_cast<double>(color >> 24) / static_cast<double>(255);
result.x = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
return result;
}
@ -404,9 +404,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint32>(uint32 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
result.z = static_cast<double>(color >> 0) / static_cast<double>(255);
result.x = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
return result;
}
@ -414,9 +414,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint32>(uint32 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 24) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
result.z = static_cast<double>(color >> 8) / static_cast<double>(255);
result.x = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
return result;
}
@ -424,10 +424,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint32>(uint32 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
result.z = static_cast<double>(color >> 16) / static_cast<double>(255);
result.w = static_cast<double>(color >> 24) / static_cast<double>(255);
result.x = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
return result;
}
@ -435,10 +435,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint32>(uint32 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 8) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
result.z = static_cast<double>(color >> 24) / static_cast<double>(255);
result.w = static_cast<double>(color >> 0) / static_cast<double>(255);
result.x = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
return result;
}
@ -446,10 +446,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint32>(uint32 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(255);
result.y = static_cast<double>(color >> 8) / static_cast<double>(255);
result.z = static_cast<double>(color >> 0) / static_cast<double>(255);
result.w = static_cast<double>(color >> 24) / static_cast<double>(255);
result.x = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
return result;
}
@ -457,10 +457,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint32>(uint32 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 24) / static_cast<double>(255);
result.y = static_cast<double>(color >> 16) / static_cast<double>(255);
result.z = static_cast<double>(color >> 8) / static_cast<double>(255);
result.w = static_cast<double>(color >> 0) / static_cast<double>(255);
result.x = static_cast<double>((color >> 24) & 0xFF) / static_cast<double>(255);
result.y = static_cast<double>((color >> 16) & 0xFF) / static_cast<double>(255);
result.z = static_cast<double>((color >> 8) & 0xFF) / static_cast<double>(255);
result.w = static_cast<double>((color >> 0) & 0xFF) / static_cast<double>(255);
return result;
}
@ -474,9 +474,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_rgbx_cast<uint64>(uint64 color)
{
detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -484,9 +484,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xrgb_cast<uint64>(uint64 color)
{
detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -494,9 +494,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_bgrx_cast<uint64>(uint64 color)
{
detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -504,9 +504,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<detail::thalf> f16_xbgr_cast<uint64>(uint64 color)
{
detail::tvec3<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -514,10 +514,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_rgba_cast<uint64>(uint64 color)
{
detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -525,10 +525,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_argb_cast<uint64>(uint64 color)
{
detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -536,10 +536,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_bgra_cast<uint64>(uint64 color)
{
detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -547,10 +547,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<detail::thalf> f16_abgr_cast<uint64>(uint64 color)
{
detail::tvec4<detail::thalf> result;
result.x = detail::thalf(static_cast<float>(color >> 48) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>(color >> 32) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>(color >> 16) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>(color >> 0) / static_cast<float>(65535));
result.x = detail::thalf(static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535));
result.y = detail::thalf(static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535));
result.z = detail::thalf(static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535));
result.w = detail::thalf(static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535));
return result;
}
@ -564,9 +564,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_rgbx_cast<uint64>(uint64 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -574,9 +574,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xrgb_cast<uint64>(uint64 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 48) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -584,9 +584,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_bgrx_cast<uint64>(uint64 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 0) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -594,9 +594,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<float> f32_xbgr_cast<uint64>(uint64 color)
{
detail::tvec3<float> result;
result.x = static_cast<float>(color >> 48) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -604,10 +604,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_rgba_cast<uint64>(uint64 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 0) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 48) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -615,10 +615,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_argb_cast<uint64>(uint64 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 48) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 0) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -626,10 +626,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_bgra_cast<uint64>(uint64 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 0) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 48) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -637,10 +637,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<float> f32_abgr_cast<uint64>(uint64 color)
{
detail::tvec4<float> result;
result.x = static_cast<float>(color >> 48) / static_cast<float>(65535);
result.y = static_cast<float>(color >> 32) / static_cast<float>(65535);
result.z = static_cast<float>(color >> 16) / static_cast<float>(65535);
result.w = static_cast<float>(color >> 0) / static_cast<float>(65535);
result.x = static_cast<float>((color >> 48) & 0xFFFF) / static_cast<float>(65535);
result.y = static_cast<float>((color >> 32) & 0xFFFF) / static_cast<float>(65535);
result.z = static_cast<float>((color >> 16) & 0xFFFF) / static_cast<float>(65535);
result.w = static_cast<float>((color >> 0) & 0xFFFF) / static_cast<float>(65535);
return result;
}
@ -654,9 +654,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_rgbx_cast<uint64>(uint64 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
return result;
}
@ -664,9 +664,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xrgb_cast<uint64>(uint64 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 48) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
return result;
}
@ -674,9 +674,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_bgrx_cast<uint64>(uint64 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 0) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
return result;
}
@ -684,9 +684,9 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec3<double> f64_xbgr_cast<uint64>(uint64 color)
{
detail::tvec3<double> result;
result.x = static_cast<double>(color >> 48) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
return result;
}
@ -694,10 +694,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_rgba_cast<uint64>(uint64 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 0) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 48) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
return result;
}
@ -705,10 +705,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_argb_cast<uint64>(uint64 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 48) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 0) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
return result;
}
@ -716,10 +716,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_bgra_cast<uint64>(uint64 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 0) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 48) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
return result;
}
@ -727,10 +727,10 @@ template <>
GLM_FUNC_QUALIFIER detail::tvec4<double> f64_abgr_cast<uint64>(uint64 color)
{
detail::tvec4<double> result;
result.x = static_cast<double>(color >> 48) / static_cast<double>(65535);
result.y = static_cast<double>(color >> 32) / static_cast<double>(65535);
result.z = static_cast<double>(color >> 16) / static_cast<double>(65535);
result.w = static_cast<double>(color >> 0) / static_cast<double>(65535);
result.x = static_cast<double>((color >> 48) & 0xFFFF) / static_cast<double>(65535);
result.y = static_cast<double>((color >> 32) & 0xFFFF) / static_cast<double>(65535);
result.z = static_cast<double>((color >> 16) & 0xFFFF) / static_cast<double>(65535);
result.w = static_cast<double>((color >> 0) & 0xFFFF) / static_cast<double>(65535);
return result;
}

View File

@ -36,6 +36,11 @@ GLM is a header only library, there is nothing to build, just include it.
More informations in GLM manual:
http://glm.g-truc.net/glm-0.9.2.pdf
================================================================================
GLM 0.9.2.4: 2011-08-04
--------------------------------------------------------------------------------
- Fixed extensions bugs
================================================================================
GLM 0.9.2.3: 2011-06-08
--------------------------------------------------------------------------------