/////////////////////////////////////////////////////////////////////////////////////////////////// // OpenGL Mathematics Copyright (c) 2005 - 2008 G-Truc Creation (www.g-truc.net) /////////////////////////////////////////////////////////////////////////////////////////////////// // Created : 2006-04-27 // Updated : 2007-01-15 // Licence : This source is under GNU LGPL licence // File : glm/core/_xvec4.h /////////////////////////////////////////////////////////////////////////////////////////////////// #ifndef __glm_core_xvec4_h__ #define __glm_core_xvec4_h__ #include "./_cvec4.inl" namespace glm{ namespace detail{ template class _xvec4 : public _xvec4_base(T) { public: // Common constructors _xvec4(); _xvec4(const _xvec4& v); // Swizzle constructors _xvec4(const _xref4& r); _xvec4(const _xvec4_base(T)& b); // T constructors explicit _xvec4(const T x); explicit _xvec4(const T a, const T b, const T c, const T d); explicit _xvec4(const T a, const T b, const T c, const _xvec2& d); explicit _xvec4(const T a, const T b, const T c, const _xvec3& d); explicit _xvec4(const T a, const T b, const T c, const _xvec4& d); explicit _xvec4(const T a, const T b, const _xvec2& c); explicit _xvec4(const T a, const T b, const _xvec3& c); explicit _xvec4(const T a, const T b, const _xvec4& c); explicit _xvec4(const T a, const _xvec2& b, const T c); explicit _xvec4(const T a, const _xvec2& b, const _xvec2& c); explicit _xvec4(const T a, const _xvec2& b, const _xvec3& c); explicit _xvec4(const T a, const _xvec2& b, const _xvec4& c); explicit _xvec4(const T a, const _xvec3& b); explicit _xvec4(const T a, const _xvec4& b); explicit _xvec4(const _xvec2& a, const T b, const T c); explicit _xvec4(const _xvec2& a, const T b, const _xvec2& c); explicit _xvec4(const _xvec2& a, const T b, const _xvec3& c); explicit _xvec4(const _xvec2& a, const T b, const _xvec4& c); explicit _xvec4(const _xvec2& a, const _xvec2& b); explicit _xvec4(const _xvec2& a, const _xvec3& b); explicit _xvec4(const _xvec2& a, const _xvec4& b); explicit _xvec4(const _xvec3& a, const T b); explicit _xvec4(const _xvec3& a, const _xvec2& b); explicit _xvec4(const _xvec3& a, const _xvec3& b); explicit _xvec4(const _xvec3& a, const _xvec4& b); // U constructors template explicit _xvec4(const U x); template explicit _xvec4(const U a, const U b, const U c, const U d); template explicit _xvec4(const U a, const U b, const U c, const _xvec2& d); template explicit _xvec4(const U a, const U b, const U c, const _xvec3& d); template explicit _xvec4(const U a, const U b, const U c, const _xvec4& d); template explicit _xvec4(const U a, const U b, const _xvec2& c); template explicit _xvec4(const U a, const U b, const _xvec3& c); template explicit _xvec4(const U a, const U b, const _xvec4& c); template explicit _xvec4(const U a, const _xvec2& b, const U c); template explicit _xvec4(const U a, const _xvec2& b, const _xvec2& c); template explicit _xvec4(const U a, const _xvec2& b, const _xvec3& c); template explicit _xvec4(const U a, const _xvec2& b, const _xvec4& c); template explicit _xvec4(const U a, const _xvec3& b); template explicit _xvec4(const U a, const _xvec4& b); template explicit _xvec4(const _xvec2& a, const U b, const U c); template explicit _xvec4(const _xvec2& a, const U b, const _xvec2& c); template explicit _xvec4(const _xvec2& a, const U b, const _xvec3& c); template explicit _xvec4(const _xvec2& a, const U b, const _xvec4& c); template explicit _xvec4(const _xvec2& a, const _xvec2& b); template explicit _xvec4(const _xvec2& a, const _xvec3& b); template explicit _xvec4(const _xvec2& a, const _xvec4& b); template explicit _xvec4(const _xvec3& a, const U b); template explicit _xvec4(const _xvec3& a, const _xvec2& b); template explicit _xvec4(const _xvec3& a, const _xvec3& b); template explicit _xvec4(const _xvec3& a, const _xvec4& b); template explicit _xvec4(const _xvec4& a); // Bool constructors explicit _xvec4(const bool x); explicit _xvec4(const bool a, const bool b, const bool c, const bool d); explicit _xvec4(const bool a, const bool b, const bool c, const _bvec2& d); explicit _xvec4(const bool a, const bool b, const bool c, const _bvec3& d); explicit _xvec4(const bool a, const bool b, const bool c, const _bvec4& d); explicit _xvec4(const bool a, const bool b, const _bvec2& c); explicit _xvec4(const bool a, const bool b, const _bvec3& c); explicit _xvec4(const bool a, const bool b, const _bvec4& c); explicit _xvec4(const bool a, const _bvec2& b, const bool c); explicit _xvec4(const bool a, const _bvec2& b, const _bvec2& c); explicit _xvec4(const bool a, const _bvec2& b, const _bvec3& c); explicit _xvec4(const bool a, const _bvec2& b, const _bvec4& c); explicit _xvec4(const bool a, const _bvec3& b); explicit _xvec4(const bool a, const _bvec4& b); explicit _xvec4(const _bvec2& a, const bool b, const bool c); explicit _xvec4(const _bvec2& a, const bool b, const _bvec2& c); explicit _xvec4(const _bvec2& a, const bool b, const _bvec3& c); explicit _xvec4(const _bvec2& a, const bool b, const _bvec4& c); explicit _xvec4(const _bvec2& a, const _bvec2& b); explicit _xvec4(const _bvec2& a, const _bvec3& b); explicit _xvec4(const _bvec2& a, const _bvec4& b); explicit _xvec4(const _bvec3& a, const bool b); explicit _xvec4(const _bvec3& a, const _bvec2& b); explicit _xvec4(const _bvec3& a, const _bvec3& b); explicit _xvec4(const _bvec3& a, const _bvec4& b); explicit _xvec4(const _bvec4& a); // Unary updatable operators _xvec4& operator= (const _xvec4& x); _xvec4& operator+=(const T s); _xvec4& operator+=(const _xvec4& v); _xvec4& operator-=(const T s); _xvec4& operator-=(const _xvec4& v); _xvec4& operator*=(const T s); _xvec4& operator*=(const _xvec4& v); _xvec4& operator/=(const T s); _xvec4& operator/=(const _xvec4& v); _xvec4& operator++(); _xvec4& operator--(); }; // Binary operators // operator+ template _xvec4 operator+ (const _xvec4& v, const T s); template _xvec4 operator+ (const T s, const _xvec4& v); template _xvec4 operator+ (const _xvec4& v1, const _xvec4& v2); template _xvec4 operator+ (const _xref4& v, const T s); template _xvec4 operator+ (const T s, const _xref4& v); template _xvec4 operator+ (const _xref4& v1, const _xref4& v2); template _xvec4 operator+ (const _xvec4& v1, const _xref4& v2); template _xvec4 operator+ (const _xref4& v1, const _xvec4& v2); // operator- template _xvec4 operator- (const _xvec4& v, const T s); template _xvec4 operator- (const T s, const _xvec4& v); template _xvec4 operator- (const _xvec4& v1, const _xvec4& v2); template _xvec4 operator- (const _xref4& v, const T s); template _xvec4 operator- (const T s, const _xref4& v); template _xvec4 operator- (const _xref4& v1, const _xref4& v2); template _xvec4 operator- (const _xvec4& v1, const _xref4& v2); template _xvec4 operator- (const _xref4& v1, const _xvec4& v2); // operator* template _xvec4 operator* (const _xvec4& v, const T s); template _xvec4 operator* (const T s, const _xvec4& v); template _xvec4 operator* (const _xvec4& v1, const _xvec4& v2); template _xvec4 operator* (const _xref4& v, const T s); template _xvec4 operator* (const T s, const _xref4& v); template _xvec4 operator* (const _xref4& v1, const _xref4& v2); template _xvec4 operator* (const _xvec4& v1, const _xref4& v2); template _xvec4 operator* (const _xref4& v1, const _xvec4& v2); // operator/ template _xvec4 operator/ (const _xvec4& v, const T s); template _xvec4 operator/ (const T s, const _xvec4& v); template _xvec4 operator/ (const _xvec4& v1, const _xvec4& v2); template _xvec4 operator/ (const _xref4& v, const T s); template _xvec4 operator/ (const T s, const _xref4& v); template _xvec4 operator/ (const _xref4& v1, const _xref4& v2); template _xvec4 operator/ (const _xvec4& v1, const _xref4& v2); template _xvec4 operator/ (const _xref4& v1, const _xvec4& v2); // Unary constant operators template const _xvec4 operator- (const _xvec4& v); template const _xvec4 operator-- (const _xvec4& v, int); template const _xvec4 operator++ (const _xvec4& v, int); } //namespace detail } //namespace glm #endif//__glm_core_xvec4_h__