All Classes Files Functions Variables Typedefs Pages
Public Member Functions | Friends | List of all members
VectorIterator< T, N > Class Template Reference

Inherits Vector< T, N >.

Public Member Functions

Vector< T, N > operator* () const
 
VectorIteratoroperator++ ()
 
VectorIterator< T, N > operator++ (int)
 
- Public Member Functions inherited from Vector< T, N >
template<typename U >
 Vector (Vector< U, N > other)
 
T & operator[] (std::size_t index)
 subscript operator, throws on invalid subscript
 
operator[] (std::size_t index) const
 
template<typename OT >
Vector< T, N > & operator+= (const Vector< OT, N > &v)
 
template<typename OT >
Vector< T, N > & operator-= (const Vector< OT, N > &v)
 
template<typename S >
Vector< T, N > & operator*= (S scalar)
 
template<typename S >
Vector< T, N > & operator/= (S scalar)
 
Vector< T, N > operator+ () const
 
Vector< T, N > operator- () const
 
bool operator== (const Vector< T, N > &other) const
 
bool operator!= (const Vector< T, N > &other) const
 
bool operator< (const Vector< T, N > &other) const
 
bool operator> (const Vector< T, N > &other) const
 
bool operator<= (const Vector< T, N > &other) const
 
bool operator>= (const Vector< T, N > &other) const
 
lengthSquared () const
 
template<typename Tout = decltype(sqrt(T(0)))>
Tout length () const
 
auto phi () const -> decltype(atan2(T(0), T(0)))
 
auto theta () const -> decltype(acos(T(0)))
 
linearSize () const
 
Vector< T, N > & normalize ()
 
Vector< T, N > normalized () const
 
template<typename To >
Vector< T, N > & scale (const Vector< To, N > &o)
 
template<typename To >
Vector< T, N > scaled (const Vector< To, N > &o)
 
template<typename Ta >
Vector< T, N > & rotate (Ta phi, Ta theta)
 
template<typename Ta >
Vector< T, N > rotated (Ta phi, Ta theta) const
 
template<typename To >
Vector< T, N > & reflect (const Vector< To, N > &normal)
 
template<typename To >
auto reflected (const Vector< To, N > &normal) const -> Vector< decltype(T(0)-To(0)), N >
 
- Public Member Functions inherited from VectorImpl< T, N >
template<typename... Ts>
 VectorImpl (Ts...vals)
 

Friends

template<typename Tf , std::size_t Nf>
Vector< Tf, Nf >::iterator begin (Vector< Tf, Nf > v)
 
template<typename Tf , std::size_t Nf>
Vector< Tf, Nf >::iterator end (Vector< Tf, Nf > v)
 

Additional Inherited Members

- Public Types inherited from Vector< T, N >
using iterator = VectorIterator< T, N >
 iterator type
 
using type = T
 type of the vector's elements
 
- Public Attributes inherited from VectorImpl< T, N >
union {
   T   data [N]
 
   struct {
      T   x
 
      T   y
 
      T   z
 
      T   w
 
   } 
 
}; 
 
- Static Public Attributes inherited from Vector< T, N >
static constexpr std::size_t size = N
 dimension of the vector