| 
|   | Vec4 ()=default | 
|   | 
|   | Vec4 (T val) | 
|   | Construct a vector all of whose components have the given value.  More...
  | 
|   | 
|   | Vec4 (T x, T y, T z, T w) | 
|   | Constructor with four arguments, e.g. Vec4f v(1,2,3,4);.  More...
  | 
|   | 
| template<typename Source >  | 
|   | Vec4 (Source *a) | 
|   | Constructor with array argument, e.g. float a[4]; Vec4f v(a);.  More...
  | 
|   | 
| template<typename Source >  | 
|   | Vec4 (const Tuple< 4, Source > &v) | 
|   | Conversion constructor.  More...
  | 
|   | 
| template<typename Other >  | 
|   | Vec4 (Other val, typename std::enable_if< std::is_arithmetic< Other >::value, Conversion >::type=Conversion{}) | 
|   | Construct a vector all of whose components have the given value, which may be of an arithmetic type different from this vector's value type.  More...
  | 
|   | 
| T &  | x () | 
|   | Reference to the component, e.g. v.x() = 4.5f;.  More...
  | 
|   | 
| T &  | y () | 
|   | 
| T &  | z () | 
|   | 
| T &  | w () | 
|   | 
| T  | x () const  | 
|   | Get the component, e.g. float f = v.y();.  More...
  | 
|   | 
| T  | y () const  | 
|   | 
| T  | z () const  | 
|   | 
| T  | w () const  | 
|   | 
| T *  | asPointer () | 
|   | 
| const T *  | asPointer () const  | 
|   | 
| T &  | operator() (int i) | 
|   | Alternative indexed reference to the elements.  More...
  | 
|   | 
| T  | operator() (int i) const  | 
|   | Alternative indexed constant reference to the elements,.  More...
  | 
|   | 
| Vec3< T >  | getVec3 () const  | 
|   | Returns a Vec3 with the first three elements of the Vec4.  More...
  | 
|   | 
| const Vec4< T > &  | init (T x=0, T y=0, T z=0, T w=0) | 
|   | 
| const Vec4< T > &  | setZero () | 
|   | Set "this" vector to zero.  More...
  | 
|   | 
| template<typename Source >  | 
| const Vec4< T > &  | operator= (const Vec4< Source > &v) | 
|   | Assignment operator.  More...
  | 
|   | 
| bool  | eq (const Vec4< T > &v, T eps=static_cast< T >(1.0e-8)) const  | 
|   | 
| Vec4< T >  | operator- () const  | 
|   | Negation operator, for e.g. v1 = -v2;.  More...
  | 
|   | 
| template<typename T0 , typename T1 >  | 
| const Vec4< T > &  | add (const Vec4< T0 > &v1, const Vec4< T1 > &v2) | 
|   | 
| template<typename T0 , typename T1 >  | 
| const Vec4< T > &  | sub (const Vec4< T0 > &v1, const Vec4< T1 > &v2) | 
|   | 
| template<typename T0 , typename T1 >  | 
| const Vec4< T > &  | scale (T0 scale, const Vec4< T1 > &v) | 
|   | 
| template<typename T0 , typename T1 >  | 
| const Vec4< T > &  | div (T0 scalar, const Vec4< T1 > &v) | 
|   | 
| T  | dot (const Vec4< T > &v) const  | 
|   | Dot product.  More...
  | 
|   | 
| T  | length () const  | 
|   | Length of the vector.  More...
  | 
|   | 
| T  | lengthSqr () const  | 
|   | 
| const Vec4< T > &  | exp () | 
|   | 
| const Vec4< T > &  | log () | 
|   | 
| T  | sum () const  | 
|   | Return the sum of all the vector components.  More...
  | 
|   | 
| T  | product () const  | 
|   | Return the product of all the vector components.  More...
  | 
|   | 
| bool  | normalize (T eps=static_cast< T >(1.0e-8)) | 
|   | this = normalized this  More...
  | 
|   | 
| Vec4< T >  | unit (T eps=0) const  | 
|   | return normalized this, throws if null vector  More...
  | 
|   | 
| Vec4< T >  | unit (T eps, T &len) const  | 
|   | return normalized this and length, throws if null vector  More...
  | 
|   | 
| Vec4< T >  | unitSafe () const  | 
|   | return normalized this, or (1, 0, 0, 0) if this is null vector  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator*= (S scalar) | 
|   | Multiply each element of this vector by scalar.  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator*= (const Vec4< S > &v1) | 
|   | Multiply each element of this vector by the corresponding element of the given vector.  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator/= (S scalar) | 
|   | Divide each element of this vector by scalar.  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator/= (const Vec4< S > &v1) | 
|   | Divide each element of this vector by the corresponding element of the given vector.  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator+= (S scalar) | 
|   | Add scalar to each element of this vector.  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator+= (const Vec4< S > &v1) | 
|   | Add each element of the given vector to the corresponding element of this vector.  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator-= (S scalar) | 
|   | Subtract scalar from each element of this vector.  More...
  | 
|   | 
| template<typename S >  | 
| const Vec4< T > &  | operator-= (const Vec4< S > &v1) | 
|   | Subtract each element of the given vector from the corresponding element of this vector.  More...
  | 
|   | 
| T  | operator[] (IdxT i) const | 
|   | 
| T &  | operator[] (IdxT i) | 
|   | 
| T  | operator[] (int i) const | 
|   | 
| T &  | operator[] (int i) | 
|   | 
| std::string  | str () const | 
|   | 
| void  | write (std::ostream &os) const | 
|   | 
| void  | read (std::istream &is) | 
|   | 
| bool  | isNan () const | 
|   | True if a Nan is present in this tuple.  More...
  | 
|   | 
| bool  | isInfinite () const | 
|   | True if an Inf is present in this tuple.  More...
  | 
|   | 
| bool  | isFinite () const | 
|   | True if no Nan or Inf values are present.  More...
  | 
|   | 
| bool  | isZero () const | 
|   | True if all elements are exactly zero.  More...
  | 
|   | 
 | 
These are mostly for backwards compatibility with functions that take old-style Vs (which are just arrays).  
 | 
| void  | toV (S *v) const | 
|   | Copies this tuple into an array of a compatible type.  More...
  | 
|   | 
| value_type *  | asV () | 
|   | Exposes the internal array. Be careful when using this function.  More...
  | 
|   | 
| value_type const *  | asV () const | 
|   | Exposes the internal array. Be careful when using this function.  More...
  | 
|   |