Initial build with half types removed

This commit is contained in:
Christophe Riccio
2013-08-14 00:55:47 +02:00
parent 1951e24cfc
commit 25a5c21a24
41 changed files with 23 additions and 4303 deletions

View File

@@ -41,7 +41,6 @@
// Dependency:
#include "../glm.hpp"
#include "../gtc/half_float.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext))
# pragma message("GLM: GLM_GTC_constants extension included")

View File

@@ -34,12 +34,6 @@ namespace glm
return std::numeric_limits<genType>::epsilon();
}
template <>
GLM_FUNC_QUALIFIER half epsilon()
{
return half(1.19209290e-007);
}
template <typename genType>
GLM_FUNC_QUALIFIER genType zero()
{

View File

@@ -42,7 +42,6 @@
// Dependency:
#include "../glm.hpp"
#include "../gtc/half_float.hpp"
#include "../gtc/quaternion.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext))

View File

@@ -28,16 +28,6 @@
namespace glm
{
GLM_FUNC_QUALIFIER bool epsilonEqual
(
glm::half const & x,
glm::half const & y,
glm::half const & epsilon
)
{
return abs(x - y) < epsilon;
}
GLM_FUNC_QUALIFIER bool epsilonEqual
(
float const & x,
@@ -58,16 +48,6 @@ namespace glm
return abs(x - y) < epsilon;
}
GLM_FUNC_QUALIFIER bool epsilonNotEqual
(
glm::half const & x,
glm::half const & y,
glm::half const & epsilon
)
{
return abs(x - y) >= epsilon;
}
GLM_FUNC_QUALIFIER bool epsilonNotEqual
(
float const & x,

View File

@@ -1,685 +0,0 @@
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 2013 G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
/// copies of the Software, and to permit persons to whom the Software is
/// furnished to do so, subject to the following conditions:
///
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
/// THE SOFTWARE.
///
/// @ref gtc_half_float
/// @file glm/gtc/half_float.hpp
/// @date 2009-04-29 / 2012-11-06
/// @author Christophe Riccio
///
/// @see core (dependence)
///
/// @defgroup gtc_half_float GLM_GTC_half_float
/// @ingroup gtc
///
/// Defines the half-precision floating-point type, along with various typedefs for vectors and matrices.
/// <glm/gtc/half_float.hpp> need to be included to use these functionalities.
///////////////////////////////////////////////////////////////////////////////////
#ifndef GLM_GTC_half_float
#define GLM_GTC_half_float GLM_VERSION
// Dependency:
#include "../glm.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext))
# pragma message("GLM: GLM_GTC_half_float extension included")
#endif
namespace glm{
namespace detail
{
#if(GLM_COMPONENT == GLM_COMPONENT_CXX98)
template <precision P>
struct tvec2<half, P>
{
enum ctor{_null};
typedef half value_type;
typedef std::size_t size_type;
GLM_FUNC_DECL size_type length() const;
typedef tvec2<half, P> type;
typedef tvec2<bool, P> bool_type;
//////////////////////////////////////
// Data
half x, y;
//////////////////////////////////////
// Accesses
GLM_FUNC_DECL half & operator[](size_type i);
GLM_FUNC_DECL half const & operator[](size_type i) const;
//////////////////////////////////////
// Implicit basic constructors
GLM_FUNC_DECL tvec2();
GLM_FUNC_DECL tvec2(tvec2<half, P> const & v);
//////////////////////////////////////
// Explicit basic constructors
GLM_FUNC_DECL explicit tvec2(ctor){}
GLM_FUNC_DECL explicit tvec2(
half const & s);
GLM_FUNC_DECL explicit tvec2(
half const & s1,
half const & s2);
//////////////////////////////////////
// Swizzle constructors
GLM_FUNC_DECL tvec2(tref2<half, P> const & r);
//////////////////////////////////////
// Convertion scalar constructors
//! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U>
GLM_FUNC_DECL explicit tvec2(U const & x);
//! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, typename V>
GLM_FUNC_DECL explicit tvec2(U const & x, V const & y);
//////////////////////////////////////
// Convertion vector constructors
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
GLM_FUNC_DECL explicit tvec2(tvec2<U, Q> const & v);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
GLM_FUNC_DECL explicit tvec2(tvec3<U, Q> const & v);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
GLM_FUNC_DECL explicit tvec2(tvec4<U, Q> const & v);
//////////////////////////////////////
// Unary arithmetic operators
GLM_FUNC_DECL tvec2<half, P>& operator= (tvec2<half, P> const & v);
GLM_FUNC_DECL tvec2<half, P>& operator+=(half const & s);
GLM_FUNC_DECL tvec2<half, P>& operator+=(tvec2<half, P> const & v);
GLM_FUNC_DECL tvec2<half, P>& operator-=(half const & s);
GLM_FUNC_DECL tvec2<half, P>& operator-=(tvec2<half, P> const & v);
GLM_FUNC_DECL tvec2<half, P>& operator*=(half const & s);
GLM_FUNC_DECL tvec2<half, P>& operator*=(tvec2<half, P> const & v);
GLM_FUNC_DECL tvec2<half, P>& operator/=(half const & s);
GLM_FUNC_DECL tvec2<half, P>& operator/=(tvec2<half, P> const & v);
GLM_FUNC_DECL tvec2<half, P>& operator++();
GLM_FUNC_DECL tvec2<half, P>& operator--();
//////////////////////////////////////
// Swizzle operators
GLM_FUNC_DECL half swizzle(comp X) const;
GLM_FUNC_DECL tvec2<half, P> swizzle(comp X, comp Y) const;
GLM_FUNC_DECL tvec3<half, P> swizzle(comp X, comp Y, comp Z) const;
GLM_FUNC_DECL tvec4<half, P> swizzle(comp X, comp Y, comp Z, comp W) const;
GLM_FUNC_DECL tref2<half, P> swizzle(comp X, comp Y);
};
template <precision P>
struct tvec3<half, P>
{
enum ctor{_null};
typedef half value_type;
typedef std::size_t size_type;
GLM_FUNC_DECL size_type length() const;
typedef tvec3<half, P> type;
typedef tvec3<bool, P> bool_type;
//////////////////////////////////////
// Data
half x, y, z;
//////////////////////////////////////
// Accesses
GLM_FUNC_DECL half & operator[](size_type i);
GLM_FUNC_DECL half const & operator[](size_type i) const;
//////////////////////////////////////
// Implicit basic constructors
GLM_FUNC_DECL tvec3();
GLM_FUNC_DECL tvec3(tvec3<half, P> const & v);
//////////////////////////////////////
// Explicit basic constructors
GLM_FUNC_DECL explicit tvec3(ctor){}
GLM_FUNC_DECL explicit tvec3(
half const & s);
GLM_FUNC_DECL explicit tvec3(
half const & s1,
half const & s2,
half const & s3);
//////////////////////////////////////
// Swizzle constructors
GLM_FUNC_DECL tvec3(tref3<half, P> const & r);
//////////////////////////////////////
// Convertion scalar constructors
//! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U>
GLM_FUNC_DECL explicit tvec3(U const & x);
//! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, typename V, typename W>
GLM_FUNC_DECL explicit tvec3(U const & x, V const & y, W const & z);
//////////////////////////////////////
// Convertion vector constructors
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
GLM_FUNC_DECL explicit tvec3(tvec2<A, Q> const & v, B const & s);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
GLM_FUNC_DECL explicit tvec3(A const & s, tvec2<B, Q> const & v);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
GLM_FUNC_DECL explicit tvec3(tvec3<U, Q> const & v);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
GLM_FUNC_DECL explicit tvec3(tvec4<U, Q> const & v);
//////////////////////////////////////
// Unary arithmetic operators
GLM_FUNC_DECL tvec3<half, P>& operator= (tvec3<half, P> const & v);
GLM_FUNC_DECL tvec3<half, P>& operator+=(half const & s);
GLM_FUNC_DECL tvec3<half, P>& operator+=(tvec3<half, P> const & v);
GLM_FUNC_DECL tvec3<half, P>& operator-=(half const & s);
GLM_FUNC_DECL tvec3<half, P>& operator-=(tvec3<half, P> const & v);
GLM_FUNC_DECL tvec3<half, P>& operator*=(half const & s);
GLM_FUNC_DECL tvec3<half, P>& operator*=(tvec3<half, P> const & v);
GLM_FUNC_DECL tvec3<half, P>& operator/=(half const & s);
GLM_FUNC_DECL tvec3<half, P>& operator/=(tvec3<half, P> const & v);
GLM_FUNC_DECL tvec3<half, P>& operator++();
GLM_FUNC_DECL tvec3<half, P>& operator--();
//////////////////////////////////////
// Swizzle operators
GLM_FUNC_DECL half swizzle(comp X) const;
GLM_FUNC_DECL tvec2<half, P> swizzle(comp X, comp Y) const;
GLM_FUNC_DECL tvec3<half, P> swizzle(comp X, comp Y, comp Z) const;
GLM_FUNC_DECL tvec4<half, P> swizzle(comp X, comp Y, comp Z, comp W) const;
GLM_FUNC_DECL tref3<half, P> swizzle(comp X, comp Y, comp Z);
};
template <precision P>
struct tvec4<half, P>
{
enum ctor{_null};
typedef half value_type;
typedef std::size_t size_type;
GLM_FUNC_DECL size_type length() const;
typedef tvec4<half, P> type;
typedef tvec4<bool, P> bool_type;
//////////////////////////////////////
// Data
half x, y, z, w;
//////////////////////////////////////
// Accesses
GLM_FUNC_DECL half & operator[](size_type i);
GLM_FUNC_DECL half const & operator[](size_type i) const;
//////////////////////////////////////
// Implicit basic constructors
GLM_FUNC_DECL tvec4();
GLM_FUNC_DECL tvec4(tvec4<half, P> const & v);
//////////////////////////////////////
// Explicit basic constructors
GLM_FUNC_DECL explicit tvec4(ctor){}
GLM_FUNC_DECL explicit tvec4(
half const & s);
GLM_FUNC_DECL explicit tvec4(
half const & s0,
half const & s1,
half const & s2,
half const & s3);
//////////////////////////////////////
// Swizzle constructors
GLM_FUNC_DECL tvec4(tref4<half, P> const & r);
//////////////////////////////////////
// Convertion scalar constructors
//! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U>
GLM_FUNC_DECL explicit tvec4(U const & x);
//! Explicit converions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, typename D>
GLM_FUNC_DECL explicit tvec4(A const & x, B const & y, C const & z, D const & w);
//////////////////////////////////////
// Convertion vector constructors
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & v, B const & s1, C const & s2);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL explicit tvec4(A const & s1, tvec2<B, Q> const & v, C const & s2);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, typename C, precision Q>
GLM_FUNC_DECL explicit tvec4(A const & s1, B const & s2, tvec2<C, Q> const & v);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
GLM_FUNC_DECL explicit tvec4(tvec3<A, Q> const & v, B const & s);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
GLM_FUNC_DECL explicit tvec4(A const & s, tvec3<B, Q> const & v);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename A, typename B, precision Q>
GLM_FUNC_DECL explicit tvec4(tvec2<A, Q> const & v1, tvec2<B, Q> const & v2);
//! Explicit conversions (From section 5.4.1 Conversion and scalar constructors of GLSL 1.30.08 specification)
template <typename U, precision Q>
GLM_FUNC_DECL explicit tvec4(tvec4<U, Q> const & v);
//////////////////////////////////////
// Unary arithmetic operators
GLM_FUNC_DECL tvec4<half, P>& operator= (tvec4<half, P> const & v);
GLM_FUNC_DECL tvec4<half, P>& operator+=(half const & s);
GLM_FUNC_DECL tvec4<half, P>& operator+=(tvec4<half, P> const & v);
GLM_FUNC_DECL tvec4<half, P>& operator-=(half const & s);
GLM_FUNC_DECL tvec4<half, P>& operator-=(tvec4<half, P> const & v);
GLM_FUNC_DECL tvec4<half, P>& operator*=(half const & s);
GLM_FUNC_DECL tvec4<half, P>& operator*=(tvec4<half, P> const & v);
GLM_FUNC_DECL tvec4<half, P>& operator/=(half const & s);
GLM_FUNC_DECL tvec4<half, P>& operator/=(tvec4<half, P> const & v);
GLM_FUNC_DECL tvec4<half, P>& operator++();
GLM_FUNC_DECL tvec4<half, P>& operator--();
//////////////////////////////////////
// Swizzle operators
GLM_FUNC_DECL half swizzle(comp X) const;
GLM_FUNC_DECL tvec2<half, P> swizzle(comp X, comp Y) const;
GLM_FUNC_DECL tvec3<half, P> swizzle(comp X, comp Y, comp Z) const;
GLM_FUNC_DECL tvec4<half, P> swizzle(comp X, comp Y, comp Z, comp W) const;
GLM_FUNC_DECL tref4<half, P> swizzle(comp X, comp Y, comp Z, comp W);
};
#endif//(GLM_COMPONENT == GLM_COMPONENT_CXX98)
}
//namespace detail
/// @addtogroup gtc_half_float
/// @{
//////////////////////////////////////////////
// High half precision floating-point numbers.
/// Vector of 2 high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec2<half_t, highp> highp_hvec2;
/// Vector of 3 high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec3<half_t, highp> highp_hvec3;
/// Vector of 4 high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec4<half_t, highp> highp_hvec4;
/// 2 * 2 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x2<half_t, highp> highp_hmat2;
/// 3 * 3 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x3<half_t, highp> highp_hmat3;
/// 4 * 4 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x4<half_t, highp> highp_hmat4;
/// 2 * 2 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x2<half_t, highp> highp_hmat2x2;
/// 2 * 3 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x3<half_t, highp> highp_hmat2x3;
/// 2 * 4 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x4<half_t, highp> highp_hmat2x4;
/// 3 * 2 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x2<half_t, highp> highp_hmat3x2;
/// 3 * 3 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x3<half_t, highp> highp_hmat3x3;
/// 3 * 4 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x4<half_t, highp> highp_hmat3x4;
/// 4 * 2 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x2<half_t, highp> highp_hmat4x2;
/// 4 * 3 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x3<half_t, highp> highp_hmat4x3;
/// 4 * 4 matrix of high half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x4<half_t, highp> highp_hmat4x4;
//////////////////////////////////////////////
// Medium half precision floating-point numbers.
/// Vector of 2 medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec2<half_t, mediump> mediump_hvec2;
/// Vector of 3 medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec3<half_t, mediump> mediump_hvec3;
/// Vector of 4 medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec4<half_t, mediump> mediump_hvec4;
/// 2 * 2 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x2<half_t, mediump> mediump_hmat2;
/// 3 * 3 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x3<half_t, mediump> mediump_hmat3;
/// 4 * 4 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x4<half_t, mediump> mediump_hmat4;
/// 2 * 2 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x2<half_t, mediump> mediump_hmat2x2;
/// 2 * 3 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x3<half_t, mediump> mediump_hmat2x3;
/// 2 * 4 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x4<half_t, mediump> mediump_hmat2x4;
/// 3 * 2 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x2<half_t, mediump> mediump_hmat3x2;
/// 3 * 3 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x3<half_t, mediump> mediump_hmat3x3;
/// 3 * 4 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x4<half_t, mediump> mediump_hmat3x4;
/// 4 * 2 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x2<half_t, mediump> mediump_hmat4x2;
/// 4 * 3 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x3<half_t, mediump> mediump_hmat4x3;
/// 4 * 4 matrix of medium half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x4<half_t, mediump> mediump_hmat4x4;
//////////////////////////////////////////////
// Low half precision floating-point numbers.
/// Vector of 2 low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec2<half_t, lowp> lowp_hvec2;
/// Vector of 3 low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec3<half_t, lowp> lowp_hvec3;
/// Vector of 4 low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tvec4<half_t, lowp> lowp_hvec4;
/// 2 * 2 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x2<half_t, lowp> lowp_hmat2;
/// 3 * 3 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x3<half_t, lowp> lowp_hmat3;
/// 4 * 4 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x4<half_t, lowp> lowp_hmat4;
/// 2 * 2 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x2<half_t, lowp> lowp_hmat2x2;
/// 2 * 3 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x3<half_t, lowp> lowp_hmat2x3;
/// 2 * 4 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat2x4<half_t, lowp> lowp_hmat2x4;
/// 3 * 2 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x2<half_t, lowp> lowp_hmat3x2;
/// 3 * 3 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x3<half_t, lowp> lowp_hmat3x3;
/// 3 * 4 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat3x4<half_t, lowp> lowp_hmat3x4;
/// 4 * 2 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x2<half_t, lowp> lowp_hmat4x2;
/// 4 * 3 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x3<half_t, lowp> lowp_hmat4x3;
/// 4 * 4 matrix of low half-precision floating-point numbers.
/// @see gtc_half_float
typedef detail::tmat4x4<half_t, lowp> lowp_hmat4x4;
//////////////////////////////////////////////
// Default half precision floating-point numbers.
/// Type for default half-precision floating-point numbers.
/// @see gtc_half_float
typedef half_t half;
#if(!defined(GLM_PRECISION_HIGHP_HALF) && !defined(GLM_PRECISION_MEDIUMP_HALF) && defined(GLM_PRECISION_LOWP_HALF))
typedef lowp_hvec2 hvec2;
typedef lowp_hvec3 hvec3;
typedef lowp_hvec4 hvec4;
typedef lowp_hmat2 hmat2;
typedef lowp_hmat3 hmat3;
typedef lowp_hmat4 hmat4;
typedef lowp_hmat2x2 hmat2x2;
typedef lowp_hmat2x3 hmat2x3;
typedef lowp_hmat2x4 hmat2x4;
typedef lowp_hmat3x2 hmat3x2;
typedef lowp_hmat3x3 hmat3x3;
typedef lowp_hmat3x4 hmat3x4;
typedef lowp_hmat4x2 hmat4x2;
typedef lowp_hmat4x3 hmat4x3;
typedef lowp_hmat4x4 hmat4x4;
#elif(!defined(GLM_PRECISION_HIGHP_HALF) && defined(GLM_PRECISION_MEDIUMP_HALF) && !defined(GLM_PRECISION_LOWP_HALF))
typedef mediump_hvec2 hvec2;
typedef mediump_hvec3 hvec3;
typedef mediump_hvec4 hvec4;
typedef mediump_hmat2 hmat2;
typedef mediump_hmat3 hmat3;
typedef mediump_hmat4 hmat4;
typedef mediump_hmat2x2 hmat2x2;
typedef mediump_hmat2x3 hmat2x3;
typedef mediump_hmat2x4 hmat2x4;
typedef mediump_hmat3x2 hmat3x2;
typedef mediump_hmat3x3 hmat3x3;
typedef mediump_hmat3x4 hmat3x4;
typedef mediump_hmat4x2 hmat4x2;
typedef mediump_hmat4x3 hmat4x3;
typedef mediump_hmat4x4 hmat4x4;
#else //(!defined(GLM_PRECISION_HIGHP_HALF) && !defined(GLM_PRECISION_MEDIUMP_HALF) && !defined(GLM_PRECISION_LOWP_HALF))
//////////////////////////////////////////////
// Default half precision floating-point numbers.
/// Vector of 2 default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hvec2 hvec2;
/// Vector of 3 default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hvec3 hvec3;
/// Vector of 4 default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hvec4 hvec4;
/// 2 * 2 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat2x2 hmat2;
/// 3 * 3 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat3x3 hmat3;
/// 4 * 4 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat4x4 hmat4;
/// 2 * 2 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat2x2 hmat2x2;
/// 2 * 3 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat2x3 hmat2x3;
/// 2 * 4 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat2x4 hmat2x4;
/// 3 * 2 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat3x2 hmat3x2;
/// 3 * 3 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat3x3 hmat3x3;
/// 3 * 4 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat3x4 hmat3x4;
/// 4 * 2 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat4x2 hmat4x2;
/// 4 * 3 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat4x3 hmat4x3;
/// 4 * 4 matrix of default half-precision floating-point numbers.
/// @see gtc_half_float
typedef highp_hmat4x4 hmat4x4;
#endif//GLM_PRECISION
/// Returns the absolute value of a half-precision floating-point value
/// @see gtc_half_float
GLM_FUNC_DECL half abs(half const & x);
/// Returns the absolute value of a half-precision floating-point two dimensional vector
/// @see gtc_half_float
GLM_FUNC_DECL hvec2 abs(hvec2 const & x);
/// Returns the absolute value of a half-precision floating-point three dimensional vector
/// @see gtc_half_float
GLM_FUNC_DECL hvec3 abs(hvec3 const & x);
/// Returns the absolute value of a half-precision floating-point four dimensional vector
/// @see gtc_half_float
GLM_FUNC_DECL hvec4 abs(hvec4 const & x);
/// Selects which vector each returned component comes
/// from. For a component of <a> that is false, the
/// corresponding component of x is returned. For a
/// component of a that is true, the corresponding
/// component of y is returned. Components of x and y that
/// are not selected are allowed to be invalid floating point
/// values and will have no effect on the results. Thus, this
/// provides different functionality than
/// genType mix(genType x, genType y, genType(a))
/// where a is a Boolean vector.
///
/// @see gtc_half_float
GLM_FUNC_DECL half mix(half const & x, half const & y, bool const & a);
/// @}
}// namespace glm
#include "half_float.inl"
#endif//GLM_GTC_half_float

File diff suppressed because it is too large Load Diff

View File

@@ -42,7 +42,6 @@
// Dependency:
#include "../glm.hpp"
#include "../gtc/half_float.hpp"
#include "../gtc/constants.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext))

View File

@@ -42,7 +42,6 @@
// Dependency:
#include "../glm.hpp"
#include "../gtc/half_float.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext))
# pragma message("GLM: GLM_GTC_random extension included")

View File

@@ -44,12 +44,6 @@ namespace detail
}
*/
};
template <>
GLM_FUNC_QUALIFIER half compute_linearRand::operator()<half> (half const & Min, half const & Max) const
{
return half(float(std::rand()) / float(RAND_MAX) * (float(Max) - float(Min)) + float(Min));
}
template <>
GLM_FUNC_QUALIFIER float compute_linearRand::operator()<float> (float const & Min, float const & Max) const

View File

@@ -101,9 +101,6 @@ namespace glm
GLM_FUNC_QUALIFIER TYPE& swizzle(detail::tvec##SIZE<TYPE, defaultp> & v) \
{return v[x];}
static_swizzle1_ref(detail::float16, 2)
static_swizzle1_ref(detail::float16, 3)
static_swizzle1_ref(detail::float16, 4)
static_swizzle1_ref(detail::float32, 2)
static_swizzle1_ref(detail::float32, 3)
static_swizzle1_ref(detail::float32, 4)
@@ -172,9 +169,6 @@ namespace glm
{return detail::tvec4<TYPE, defaultp>(v[x], v[y], v[z], v[w]);}
static_swizzle2_const(glm::f16, 2)
static_swizzle2_const(glm::f16, 3)
static_swizzle2_const(glm::f16, 4)
static_swizzle2_const(glm::f32, 2)
static_swizzle2_const(glm::f32, 3)
static_swizzle2_const(glm::f32, 4)
@@ -208,9 +202,6 @@ namespace glm
static_swizzle2_const(glm::u64, 3)
static_swizzle2_const(glm::u64, 4)
static_swizzle3_const(glm::f16, 2)
static_swizzle3_const(glm::f16, 3)
static_swizzle3_const(glm::f16, 4)
static_swizzle3_const(glm::f32, 2)
static_swizzle3_const(glm::f32, 3)
static_swizzle3_const(glm::f32, 4)
@@ -244,9 +235,6 @@ namespace glm
static_swizzle3_const(glm::u64, 3)
static_swizzle3_const(glm::u64, 4)
static_swizzle4_const(glm::f16, 2)
static_swizzle4_const(glm::f16, 3)
static_swizzle4_const(glm::f16, 4)
static_swizzle4_const(glm::f32, 2)
static_swizzle4_const(glm::f32, 3)
static_swizzle4_const(glm::f32, 4)
@@ -298,9 +286,6 @@ namespace glm
detail::tvec##SIZE<TYPE, defaultp> & v) \
{return glm::detail::tref4<TYPE, defaultp>(v[x], v[y], v[z], v[w]);}
static_swizzle2_ref(glm::f16, 2)
static_swizzle2_ref(glm::f16, 3)
static_swizzle2_ref(glm::f16, 4)
static_swizzle2_ref(glm::f32, 2)
static_swizzle2_ref(glm::f32, 3)
static_swizzle2_ref(glm::f32, 4)
@@ -334,8 +319,6 @@ namespace glm
static_swizzle2_ref(glm::u64, 3)
static_swizzle2_ref(glm::u64, 4)
static_swizzle3_ref(glm::f16, 3)
static_swizzle3_ref(glm::f16, 4)
static_swizzle3_ref(glm::f32, 3)
static_swizzle3_ref(glm::f32, 4)
static_swizzle3_ref(glm::f64, 3)
@@ -359,7 +342,6 @@ namespace glm
static_swizzle3_ref(glm::u64, 3)
static_swizzle3_ref(glm::u64, 4)
static_swizzle4_ref(glm::f16, 4)
static_swizzle4_ref(glm::f32, 4)
static_swizzle4_ref(glm::f64, 4)

View File

@@ -45,13 +45,12 @@
// Dependency:
#include "../glm.hpp"
#include "../gtc/half_float.hpp"
#include "../gtc/quaternion.hpp"
#if(defined(GLM_MESSAGES) && !defined(glm_ext))
# pragma message("GLM: GLM_GTC_type_precision extension included")
#endif
/*
namespace glm
{
///////////////////////////
@@ -590,10 +589,6 @@ namespace glm
//////////////////////
// Float vector types
/// 16 bit half-precision floating-point scalar.
/// @see gtc_type_precision
typedef detail::float16 float16;
/// 32 bit single-precision floating-point scalar.
/// @see gtc_type_precision
typedef detail::float32 float32;
@@ -603,10 +598,6 @@ namespace glm
typedef detail::float64 float64;
/// 16 bit half-precision floating-point scalar.
/// @see gtc_type_precision
typedef detail::float16 float16_t;
/// 32 bit single-precision floating-point scalar.
/// @see gtc_type_precision
typedef detail::float32 float32_t;
@@ -616,10 +607,6 @@ namespace glm
typedef detail::float64 float64_t;
/// 16 bit half-precision floating-point scalar.
/// @see gtc_type_precision
typedef float16 f16;
/// 32 bit single-precision floating-point scalar.
/// @see gtc_type_precision
typedef float32 f32;
@@ -645,23 +632,6 @@ namespace glm
/// @see gtc_type_precision
typedef detail::tvec4<float, defaultp> fvec4;
/// Half-precision floating-point vector of 1 component.
/// @see gtc_type_precision
typedef detail::tvec1<f16, defaultp> f16vec1;
/// Half-precision floating-point vector of 2 components.
/// @see gtc_type_precision
typedef detail::tvec2<f16, defaultp> f16vec2;
/// Half-precision floating-point vector of 3 components.
/// @see gtc_type_precision
typedef detail::tvec3<f16, defaultp> f16vec3;
/// Half-precision floating-point vector of 4 components.
/// @see gtc_type_precision
typedef detail::tvec4<f16, defaultp> f16vec4;
/// Single-precision floating-point vector of 1 component.
/// @see gtc_type_precision
@@ -758,64 +728,6 @@ namespace glm
typedef detail::tmat4x4<f32, defaultp> fmat4x4;
/// Half-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
//typedef detail::tmat1x1<f16, defaultp> f16mat1;
/// Half-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
typedef detail::tmat2x2<f16, defaultp> f16mat2;
/// Half-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
typedef detail::tmat3x3<f16, defaultp> f16mat3;
/// Half-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
typedef detail::tmat4x4<f16, defaultp> f16mat4;
/// Half-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
//typedef f16 f16mat1x1;
/// Half-precision floating-point 2x2 matrix.
/// @see gtc_type_precision
typedef detail::tmat2x2<f16, defaultp> f16mat2x2;
/// Half-precision floating-point 2x3 matrix.
/// @see gtc_type_precision
typedef detail::tmat2x3<f16, defaultp> f16mat2x3;
/// Half-precision floating-point 2x4 matrix.
/// @see gtc_type_precision
typedef detail::tmat2x4<f16, defaultp> f16mat2x4;
/// Half-precision floating-point 3x2 matrix.
/// @see gtc_type_precision
typedef detail::tmat3x2<f16, defaultp> f16mat3x2;
/// Half-precision floating-point 3x3 matrix.
/// @see gtc_type_precision
typedef detail::tmat3x3<f16, defaultp> f16mat3x3;
/// Half-precision floating-point 3x4 matrix.
/// @see gtc_type_precision
typedef detail::tmat3x4<f16, defaultp> f16mat3x4;
/// Half-precision floating-point 4x2 matrix.
/// @see gtc_type_precision
typedef detail::tmat4x2<f16, defaultp> f16mat4x2;
/// Half-precision floating-point 4x3 matrix.
/// @see gtc_type_precision
typedef detail::tmat4x3<f16, defaultp> f16mat4x3;
/// Half-precision floating-point 4x4 matrix.
/// @see gtc_type_precision
typedef detail::tmat4x4<f16, defaultp> f16mat4x4;
/// Single-precision floating-point 1x1 matrix.
/// @see gtc_type_precision
//typedef detail::tmat1x1<f32, defaultp> f32mat1;
@@ -935,10 +847,6 @@ namespace glm
//////////////////////////
// Quaternion types
/// Half-precision floating-point quaternion.
/// @see gtc_type_precision
typedef detail::tquat<f16, defaultp> f16quat;
/// Single-precision floating-point quaternion.
/// @see gtc_type_precision
typedef detail::tquat<f32, defaultp> f32quat;
@@ -949,7 +857,7 @@ namespace glm
/// @}
}//namespace glm
*/
#include "type_precision.inl"
#endif//GLM_GTC_type_precision

View File

@@ -61,7 +61,6 @@
// Dependency:
#include "../glm.hpp"
#include "../gtc/half_float.hpp"
#include "../gtc/quaternion.hpp"
#include <cstring>

View File

@@ -26,6 +26,8 @@
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
#include <cstring>
namespace glm
{
/// @addtogroup gtc_type_ptr
@@ -286,22 +288,11 @@ namespace glm
//! Return the address to the data of the matrix input.
/// @see gtc_type_ptr
template<typename T>
GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3<T> & mat)
template<typename T, precision P>
GLM_FUNC_QUALIFIER T * value_ptr(detail::tmat4x3<T, P> & mat)
{
return &(mat[0].x);
}
/// Return the constant address to the data of the quaternion input.
/// @see gtc_type_ptr
template<typename T, precision P>
GLM_FUNC_QUALIFIER T * value_ptr
(
detail::tquat<T, P> & q
)
{
return &(q[0]);
}
//! Return the constant address to the data of the input parameter.
/// @see gtc_type_ptr
@@ -316,10 +307,10 @@ namespace glm
//! Return the address to the data of the quaternion input.
/// @see gtc_type_ptr
template<typename T>
template<typename T, precision P>
GLM_FUNC_QUALIFIER T * value_ptr
(
detail::tquat<T> & q
detail::tquat<T, P> & q
)
{
return &(q[0]);