Merge branch '0.9.3' into 0.9.4

master
Christophe Riccio ago%!(EXTRA string=14 years)
commit 64e06fa57a
  1. 2
      glm/core/_fixes.hpp
  2. 6
      glm/core/_swizzle.hpp
  3. 4
      glm/core/intrinsic_common.inl
  4. 2
      glm/core/setup.hpp
  5. 16
      glm/core/type_mat2x2.hpp
  6. 4
      glm/core/type_mat2x3.hpp
  7. 4
      glm/core/type_mat2x4.hpp
  8. 4
      glm/core/type_mat3x2.hpp
  9. 10
      glm/core/type_mat3x3.hpp
  10. 4
      glm/core/type_mat3x4.hpp
  11. 4
      glm/core/type_mat4x2.hpp
  12. 4
      glm/core/type_mat4x3.hpp
  13. 8
      glm/core/type_mat4x4.hpp
  14. 4
      glm/core/type_vec2.hpp
  15. 4
      glm/core/type_vec3.hpp
  16. 4
      glm/core/type_vec4.hpp
  17. 2
      glm/gtx/quaternion.inl

@ -26,6 +26,8 @@
/// @author Christophe Riccio /// @author Christophe Riccio
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
#include <cmath>
//! Workaround for compatibility with other libraries //! Workaround for compatibility with other libraries
#ifdef max #ifdef max
#undef max #undef max

@ -53,7 +53,7 @@ namespace glm
namespace glm{ namespace glm{
namespace detail namespace detail
{ {
//! Internal class for implementing swizzle operators // Internal class for implementing swizzle operators
template <typename T, int N> template <typename T, int N>
struct _swizzle_base0 struct _swizzle_base0
{ {
@ -92,7 +92,7 @@ namespace detail
V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); } V operator ()() const { return V(this->elem(E0), this->elem(E1), this->elem(E2), this->elem(E3)); }
}; };
//! Internal class for implementing swizzle operators // Internal class for implementing swizzle operators
/*! /*!
Template parameters: Template parameters:
@ -183,7 +183,7 @@ namespace detail
} }
}; };
//! Specialization for swizzles containing duplicate elements. These cannot be modified. // Specialization for swizzles containing duplicate elements. These cannot be modified.
template <typename ValueType, typename VecType, int N, int E0, int E1, int E2, int E3> template <typename ValueType, typename VecType, int N, int E0, int E1, int E2, int E3>
struct _swizzle_base2<ValueType,VecType,N,E0,E1,E2,E3,1> : public _swizzle_base1<ValueType,VecType,E0,E1,E2,E3,N> struct _swizzle_base2<ValueType,VecType,N,E0,E1,E2,E3,1> : public _swizzle_base1<ValueType,VecType,E0,E1,E2,E3,N>
{ {

@ -29,8 +29,10 @@
namespace glm{ namespace glm{
namespace detail{ namespace detail{
#if(GLM_COMPILER & GLM_COMPILER_VC)
#pragma warning(push) #pragma warning(push)
#pragma warning(disable : 4510 4512 4610) #pragma warning(disable : 4510 4512 4610)
#endif
union ieee754_QNAN union ieee754_QNAN
{ {
@ -43,7 +45,9 @@ namespace detail{
ieee754_QNAN() : f(0.0)/*, mantissa(0x7FFFFF), exp(0xFF), sign(0x0)*/ {} ieee754_QNAN() : f(0.0)/*, mantissa(0x7FFFFF), exp(0xFF), sign(0x0)*/ {}
}; };
#if(GLM_COMPILER & GLM_COMPILER_VC)
#pragma warning(pop) #pragma warning(pop)
#endif
static const __m128 GLM_VAR_USED zero = _mm_setzero_ps(); static const __m128 GLM_VAR_USED zero = _mm_setzero_ps();
static const __m128 GLM_VAR_USED one = _mm_set_ps1(1.0f); static const __m128 GLM_VAR_USED one = _mm_set_ps1(1.0f);

@ -465,6 +465,8 @@
# pragma message("GLM: C++ with GNU language extensions") # pragma message("GLM: C++ with GNU language extensions")
# elif(GLM_LANG == GLM_LANG_CXXMS) # elif(GLM_LANG == GLM_LANG_CXXMS)
# pragma message("GLM: C++ with VC language extensions") # pragma message("GLM: C++ with VC language extensions")
# else
# pragma message("GLM: C++ language undetected")
# endif//GLM_MODEL # endif//GLM_MODEL
#endif//GLM_MESSAGE #endif//GLM_MESSAGE

@ -48,32 +48,34 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 2 * 2 matrix of floating-point numbers. // @brief Template for 2 * 2 matrix of floating-point numbers.
//! \ingroup core_template // @ingroup core_template
template <typename T> template <typename T>
struct tmat2x2 struct tmat2x2
{ {
// Implementation detail
enum ctor{null}; enum ctor{null};
typedef T value_type; typedef T value_type;
typedef std::size_t size_type; typedef std::size_t size_type;
typedef tvec2<T> col_type; typedef tvec2<T> col_type;
typedef tvec2<T> row_type; typedef tvec2<T> row_type;
GLM_FUNC_DECL size_type length() const;
static GLM_FUNC_DECL size_type col_size(); static GLM_FUNC_DECL size_type col_size();
static GLM_FUNC_DECL size_type row_size(); static GLM_FUNC_DECL size_type row_size();
typedef tmat2x2<T> type; typedef tmat2x2<T> type;
typedef tmat2x2<T> transpose_type; typedef tmat2x2<T> transpose_type;
GLM_FUNC_DECL size_type length() const;
public: public:
// Implementation detail // Implementation detail
GLM_FUNC_DECL tmat2x2<T> _inverse() const; GLM_FUNC_DECL tmat2x2<T> _inverse() const;
private: private:
////////////////////////////////////// //////////////////////////////////////
// Data // Implementation detail
col_type value[2]; col_type value[2];
public: public:
////////////////////////////////////// //////////////////////////////////////
// Constructors // Constructors

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 2 columns and 3 rows matrix of floating-point numbers. // \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tmat2x3 struct tmat2x3
{ {

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! Template for 2 columns and 4 rows matrix of floating-point numbers. // Template for 2 columns and 4 rows matrix of floating-point numbers.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tmat2x4 struct tmat2x4
{ {

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 3 columns and 2 rows matrix of floating-point numbers. // \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tmat3x2 struct tmat3x2
{ {

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 3 * 3 matrix of floating-point numbers. // @brief Template for 3 * 3 matrix of floating-point numbers.
//! \ingroup core_template // @ingroup core_template
template <typename T> template <typename T>
struct tmat3x3 struct tmat3x3
{ {
@ -66,9 +66,11 @@ namespace detail
typedef tmat3x3<T> transpose_type; typedef tmat3x3<T> transpose_type;
public: public:
// Implementation detail /// Implementation detail
/// @cond DETAIL
GLM_FUNC_DECL tmat3x3<T> _inverse() const; GLM_FUNC_DECL tmat3x3<T> _inverse() const;
/// @endcond
private: private:
// Data // Data
col_type value[3]; col_type value[3];

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 3 columns and 4 rows matrix of floating-point numbers. // \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tmat3x4 struct tmat3x4
{ {

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 4 columns and 2 rows matrix of floating-point numbers. // \brief Template for 4 columns and 2 rows matrix of floating-point numbers.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tmat4x2 struct tmat4x2
{ {

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 4 columns and 3 rows matrix of floating-point numbers. // \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tmat4x3 struct tmat4x3
{ {

@ -48,8 +48,8 @@ namespace detail
template <typename T> struct tmat4x3; template <typename T> struct tmat4x3;
template <typename T> struct tmat4x4; template <typename T> struct tmat4x4;
//! \brief Template for 4 * 4 matrix of floating-point numbers. // \brief Template for 4 * 4 matrix of floating-point numbers.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tmat4x4 struct tmat4x4
{ {
@ -66,8 +66,10 @@ namespace detail
typedef tmat4x4<T> transpose_type; typedef tmat4x4<T> transpose_type;
public: public:
// Implementation detail /// Implementation detail
/// @cond DETAIL
GLM_FUNC_DECL tmat4x4<T> _inverse() const; GLM_FUNC_DECL tmat4x4<T> _inverse() const;
/// @endcond
private: private:
// Data // Data

@ -44,8 +44,8 @@ namespace detail
template <typename T> struct tvec3; template <typename T> struct tvec3;
template <typename T> struct tvec4; template <typename T> struct tvec4;
//! The basic 2D vector type. // The basic 2D vector type.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tvec2 struct tvec2
{ {

@ -44,8 +44,8 @@ namespace detail
template <typename T> struct tvec2; template <typename T> struct tvec2;
template <typename T> struct tvec4; template <typename T> struct tvec4;
//! Basic 3D vector type. // Basic 3D vector type.
//! \ingroup core_template // \ingroup core_template
template <typename T> template <typename T>
struct tvec3 struct tvec3
{ {

@ -44,8 +44,8 @@ namespace detail
template <typename T> struct tvec2; template <typename T> struct tvec2;
template <typename T> struct tvec3; template <typename T> struct tvec3;
/// Basic 4D vector type. // Basic 4D vector type.
/// @ingroup core_template // @ingroup core_template
template <typename T> template <typename T>
struct tvec4 struct tvec4
{ {

@ -235,7 +235,7 @@ namespace glm
} }
template <typename valType> template <typename valType>
GLM_FUNC_QUALIFIER detail::tvec3<valType> eularAngles GLM_FUNC_QUALIFIER detail::tvec3<valType> eulerAngles
( (
detail::tquat<valType> const & x detail::tquat<valType> const & x
) )

Loading…
Cancel
Save