mirror of
https://github.com/g-truc/glm.git
synced 2024-11-10 04:31:47 +00:00
Merge branch '0.9.3' into 0.9.4
This commit is contained in:
commit
64e06fa57a
@ -26,6 +26,8 @@
|
||||
/// @author Christophe Riccio
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include <cmath>
|
||||
|
||||
//! Workaround for compatibility with other libraries
|
||||
#ifdef max
|
||||
#undef max
|
||||
|
@ -53,7 +53,7 @@ namespace glm
|
||||
namespace glm{
|
||||
namespace detail
|
||||
{
|
||||
//! Internal class for implementing swizzle operators
|
||||
// Internal class for implementing swizzle operators
|
||||
template <typename T, int N>
|
||||
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)); }
|
||||
};
|
||||
|
||||
//! Internal class for implementing swizzle operators
|
||||
// Internal class for implementing swizzle operators
|
||||
/*!
|
||||
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>
|
||||
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 detail{
|
||||
|
||||
#if(GLM_COMPILER & GLM_COMPILER_VC)
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4510 4512 4610)
|
||||
#endif
|
||||
|
||||
union ieee754_QNAN
|
||||
{
|
||||
@ -43,7 +45,9 @@ namespace detail{
|
||||
ieee754_QNAN() : f(0.0)/*, mantissa(0x7FFFFF), exp(0xFF), sign(0x0)*/ {}
|
||||
};
|
||||
|
||||
#if(GLM_COMPILER & GLM_COMPILER_VC)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
static const __m128 GLM_VAR_USED zero = _mm_setzero_ps();
|
||||
static const __m128 GLM_VAR_USED one = _mm_set_ps1(1.0f);
|
||||
|
@ -465,6 +465,8 @@
|
||||
# pragma message("GLM: C++ with GNU language extensions")
|
||||
# elif(GLM_LANG == GLM_LANG_CXXMS)
|
||||
# pragma message("GLM: C++ with VC language extensions")
|
||||
# else
|
||||
# pragma message("GLM: C++ language undetected")
|
||||
# endif//GLM_MODEL
|
||||
#endif//GLM_MESSAGE
|
||||
|
||||
|
@ -48,32 +48,34 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 2 * 2 matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// @brief Template for 2 * 2 matrix of floating-point numbers.
|
||||
// @ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat2x2
|
||||
{
|
||||
// Implementation detail
|
||||
enum ctor{null};
|
||||
typedef T value_type;
|
||||
typedef std::size_t size_type;
|
||||
typedef tvec2<T> col_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 row_size();
|
||||
|
||||
typedef tmat2x2<T> type;
|
||||
typedef tmat2x2<T> transpose_type;
|
||||
|
||||
|
||||
GLM_FUNC_DECL size_type length() const;
|
||||
|
||||
public:
|
||||
// Implementation detail
|
||||
// Implementation detail
|
||||
GLM_FUNC_DECL tmat2x2<T> _inverse() const;
|
||||
|
||||
private:
|
||||
//////////////////////////////////////
|
||||
// Data
|
||||
// Implementation detail
|
||||
col_type value[2];
|
||||
|
||||
|
||||
public:
|
||||
//////////////////////////////////////
|
||||
// Constructors
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// \brief Template for 2 columns and 3 rows matrix of floating-point numbers.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat2x3
|
||||
{
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! Template for 2 columns and 4 rows matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// Template for 2 columns and 4 rows matrix of floating-point numbers.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat2x4
|
||||
{
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// \brief Template for 3 columns and 2 rows matrix of floating-point numbers.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat3x2
|
||||
{
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 3 * 3 matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// @brief Template for 3 * 3 matrix of floating-point numbers.
|
||||
// @ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat3x3
|
||||
{
|
||||
@ -66,9 +66,11 @@ namespace detail
|
||||
typedef tmat3x3<T> transpose_type;
|
||||
|
||||
public:
|
||||
// Implementation detail
|
||||
/// Implementation detail
|
||||
/// @cond DETAIL
|
||||
GLM_FUNC_DECL tmat3x3<T> _inverse() const;
|
||||
|
||||
/// @endcond
|
||||
|
||||
private:
|
||||
// Data
|
||||
col_type value[3];
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// \brief Template for 3 columns and 4 rows matrix of floating-point numbers.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat3x4
|
||||
{
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 4 columns and 2 rows matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// \brief Template for 4 columns and 2 rows matrix of floating-point numbers.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat4x2
|
||||
{
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat4x3
|
||||
{
|
||||
|
@ -48,8 +48,8 @@ namespace detail
|
||||
template <typename T> struct tmat4x3;
|
||||
template <typename T> struct tmat4x4;
|
||||
|
||||
//! \brief Template for 4 * 4 matrix of floating-point numbers.
|
||||
//! \ingroup core_template
|
||||
// \brief Template for 4 * 4 matrix of floating-point numbers.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tmat4x4
|
||||
{
|
||||
@ -66,8 +66,10 @@ namespace detail
|
||||
typedef tmat4x4<T> transpose_type;
|
||||
|
||||
public:
|
||||
// Implementation detail
|
||||
/// Implementation detail
|
||||
/// @cond DETAIL
|
||||
GLM_FUNC_DECL tmat4x4<T> _inverse() const;
|
||||
/// @endcond
|
||||
|
||||
private:
|
||||
// Data
|
||||
|
@ -44,8 +44,8 @@ namespace detail
|
||||
template <typename T> struct tvec3;
|
||||
template <typename T> struct tvec4;
|
||||
|
||||
//! The basic 2D vector type.
|
||||
//! \ingroup core_template
|
||||
// The basic 2D vector type.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tvec2
|
||||
{
|
||||
|
@ -44,8 +44,8 @@ namespace detail
|
||||
template <typename T> struct tvec2;
|
||||
template <typename T> struct tvec4;
|
||||
|
||||
//! Basic 3D vector type.
|
||||
//! \ingroup core_template
|
||||
// Basic 3D vector type.
|
||||
// \ingroup core_template
|
||||
template <typename T>
|
||||
struct tvec3
|
||||
{
|
||||
|
@ -44,8 +44,8 @@ namespace detail
|
||||
template <typename T> struct tvec2;
|
||||
template <typename T> struct tvec3;
|
||||
|
||||
/// Basic 4D vector type.
|
||||
/// @ingroup core_template
|
||||
// Basic 4D vector type.
|
||||
// @ingroup core_template
|
||||
template <typename T>
|
||||
struct tvec4
|
||||
{
|
||||
|
@ -235,7 +235,7 @@ namespace glm
|
||||
}
|
||||
|
||||
template <typename valType>
|
||||
GLM_FUNC_QUALIFIER detail::tvec3<valType> eularAngles
|
||||
GLM_FUNC_QUALIFIER detail::tvec3<valType> eulerAngles
|
||||
(
|
||||
detail::tquat<valType> const & x
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user