PointVector  v1.0
Header-only n-dimensional point and vector implementations for C++11
geomdl::Vector< T, S > Class Template Reference

Represents n-dimensional vectors. More...

#include <Vector.hxx>

Public Types

using value_type = T
 value type, first keyword, expected to be a primitive type.
 
using size_type = std::size_t
 size type, second keyword, expected to be a positive number.
 
using iterator = T *
 iterator type.
 

Public Member Functions

 Vector ()
 Default constructor.
 
 Vector (const Vector< value_type, S > &rhs)
 Copy constructor. More...
 
 Vector (std::initializer_list< value_type > values)
 Aggregate constructor from a brace-init-list. More...
 
 Vector (T *values)
 Initializes the vector from an array. More...
 
 Vector (T value)
 Initializes all components of the vector to the same value. More...
 
Vector< value_type, S > & operator= (const Vector< value_type, S > &rhs)
 Copy assignment operator. More...
 
Vector< value_type, S > & operator= (Vector< value_type, S > &&rhs)
 Move assignment operator. More...
 
Vector< value_type, S > & operator+= (const Vector< value_type, S > &rhs)
 Vector addition. More...
 
Vector< value_type, S > & operator-= (const Vector< value_type, S > &rhs)
 Vector subtraction. More...
 
Vector< value_type, S > & operator*= (const T &rhs)
 Scales up this vector by a multiplying it with a number. More...
 
Vector< value_type, S > & operator/= (const T &rhs)
 Scales down this vector by a diving it by a number. More...
 
value_typeoperator[] (size_type idx)
 Array subscript operator. More...
 
const value_typeoperator[] (size_type idx) const
 Array subscript operator (const). More...
 
Vector< value_type, S > cross (const Vector< value_type, S > &rhs)
 Vector cross product. More...
 
iterator begin ()
 Iterator begin. More...
 
iterator end ()
 Iterator end. More...
 
value_typedata ()
 Access data. More...
 

Friends

Vector< value_type, S > operator+ (Vector< value_type, S > lhs, const Vector< value_type, S > &rhs)
 Vector addition. More...
 
Vector< value_type, S > operator- (Vector< value_type, S > lhs, const Vector< value_type, S > &rhs)
 Vector subtraction. More...
 
value_type operator* (Vector< value_type, S > lhs, const Vector< value_type, S > &rhs)
 Vector dot product. More...
 
Vector< value_type, S > operator* (Vector< value_type, S > lhs, const T &rhs)
 Scales up the vector by a multiplying it with a number. More...
 
Vector< value_type, S > operator/ (Vector< value_type, S > lhs, const T &rhs)
 Scales down the vector by diving it by a number. More...
 
bool operator== (const Vector< value_type, S > &lhs, const Vector< value_type, S > &rhs)
 Equality operator. More...
 
bool operator!= (const Vector< value_type, S > &lhs, const Vector< value_type, S > &rhs)
 Inequality operator. More...
 
std::ostream & operator<< (std::ostream &lhs, Vector< value_type, S > &rhs)
 Stream extraction operator. More...
 
std::istream & operator>> (std::istream &lhs, Vector< value_type, S > &rhs)
 Stream insertion operator. More...
 

Detailed Description

template<typename T, std::size_t S>
class geomdl::Vector< T, S >

Represents n-dimensional vectors.

Template Parameters
Ttype of the values contained, e.g. float, double
Sdimension

Constructor & Destructor Documentation

template<typename T, std::size_t S>
geomdl::Vector< T, S >::Vector ( const Vector< value_type, S > &  rhs)
inline

Copy constructor.

Parameters
rhsobject on the right hand side
template<typename T, std::size_t S>
geomdl::Vector< T, S >::Vector ( std::initializer_list< value_type values)
inline

Aggregate constructor from a brace-init-list.

Parameters
valuesbrace-init-list
template<typename T, std::size_t S>
geomdl::Vector< T, S >::Vector ( T *  values)
inlineexplicit

Initializes the vector from an array.

Parameters
valuesarray containing the initial values
template<typename T, std::size_t S>
geomdl::Vector< T, S >::Vector ( value)
inlineexplicit

Initializes all components of the vector to the same value.

Parameters
valueinitial value

Member Function Documentation

template<typename T, std::size_t S>
iterator geomdl::Vector< T, S >::begin ( )
inline

Iterator begin.

Returns
iterator
template<typename T, std::size_t S>
Vector<value_type, S> geomdl::Vector< T, S >::cross ( const Vector< value_type, S > &  rhs)
inline

Vector cross product.

Parameters
rhs3 dimensional vector on the right hand side of the cross product
Returns
a new vector object as a result of the operation
template<typename T, std::size_t S>
value_type* geomdl::Vector< T, S >::data ( )
inline

Access data.

Returns the direct pointer to the array used internally.

Returns
pointer to the array
template<typename T, std::size_t S>
iterator geomdl::Vector< T, S >::end ( )
inline

Iterator end.

Returns
iterator
template<typename T, std::size_t S>
Vector<value_type, S>& geomdl::Vector< T, S >::operator*= ( const T &  rhs)
inline

Scales up this vector by a multiplying it with a number.

Parameters
rhsscaling factor
Returns
current vector scaled up
template<typename T, std::size_t S>
Vector<value_type, S>& geomdl::Vector< T, S >::operator+= ( const Vector< value_type, S > &  rhs)
inline

Vector addition.

Parameters
rhsobject on the right hand side
Returns
object after operation
template<typename T, std::size_t S>
Vector<value_type, S>& geomdl::Vector< T, S >::operator-= ( const Vector< value_type, S > &  rhs)
inline

Vector subtraction.

Parameters
rhsobject on the right hand side
Returns
object after operation
template<typename T, std::size_t S>
Vector<value_type, S>& geomdl::Vector< T, S >::operator/= ( const T &  rhs)
inline

Scales down this vector by a diving it by a number.

Parameters
rhsscaling factor
Returns
current vector scaled down
template<typename T, std::size_t S>
Vector<value_type, S>& geomdl::Vector< T, S >::operator= ( const Vector< value_type, S > &  rhs)
inline

Copy assignment operator.

Parameters
rhsobject to be copied
Returns
vector
template<typename T, std::size_t S>
Vector<value_type, S>& geomdl::Vector< T, S >::operator= ( Vector< value_type, S > &&  rhs)
inline

Move assignment operator.

Parameters
rhsobject to be moved
Returns
vector
template<typename T, std::size_t S>
value_type& geomdl::Vector< T, S >::operator[] ( size_type  idx)
inline

Array subscript operator.

Parameters
idxarray index
Returns
value corresponding to the index
template<typename T, std::size_t S>
const value_type& geomdl::Vector< T, S >::operator[] ( size_type  idx) const
inline

Array subscript operator (const).

Parameters
idxarray index
Returns
value corresponding to the index

Friends And Related Function Documentation

template<typename T, std::size_t S>
bool operator!= ( const Vector< value_type, S > &  lhs,
const Vector< value_type, S > &  rhs 
)
friend

Inequality operator.

Parameters
lhsobject on the left hand side
rhsobject on the right hand side
Returns
object after operation
template<typename T, std::size_t S>
value_type operator* ( Vector< value_type, S >  lhs,
const Vector< value_type, S > &  rhs 
)
friend

Vector dot product.

Parameters
lhsvector on the left hand side
rhsvector on the right hand side
Returns
result of the operation
template<typename T, std::size_t S>
Vector<value_type, S> operator* ( Vector< value_type, S >  lhs,
const T &  rhs 
)
friend

Scales up the vector by a multiplying it with a number.

Parameters
lhsvector to be scaled up
rhsscaling factor
Returns
the scaled vector
template<typename T, std::size_t S>
Vector<value_type, S> operator+ ( Vector< value_type, S >  lhs,
const Vector< value_type, S > &  rhs 
)
friend

Vector addition.

Parameters
lhsobject on the left hand side
rhsobject on the right hand side
Returns
object after operation
template<typename T, std::size_t S>
Vector<value_type, S> operator- ( Vector< value_type, S >  lhs,
const Vector< value_type, S > &  rhs 
)
friend

Vector subtraction.

Parameters
lhsobject on the left hand side
rhsobject on the right hand side
Returns
object after operation
template<typename T, std::size_t S>
Vector<value_type, S> operator/ ( Vector< value_type, S >  lhs,
const T &  rhs 
)
friend

Scales down the vector by diving it by a number.

Parameters
lhsvector to be scaled down
rhsscaling factor
Returns
the scaled vector
template<typename T, std::size_t S>
std::ostream& operator<< ( std::ostream &  lhs,
Vector< value_type, S > &  rhs 
)
friend

Stream extraction operator.

Parameters
lhsobject on the left hand side
rhsobject on the right hand side
Returns
object after operation
template<typename T, std::size_t S>
bool operator== ( const Vector< value_type, S > &  lhs,
const Vector< value_type, S > &  rhs 
)
friend

Equality operator.

Parameters
lhsobject on the left hand side
rhsobject on the right hand side
Returns
object after operation
template<typename T, std::size_t S>
std::istream& operator>> ( std::istream &  lhs,
Vector< value_type, S > &  rhs 
)
friend

Stream insertion operator.

Parameters
lhsobject on the left hand side
rhsobject on the right hand side
Returns
object after operation

The documentation for this class was generated from the following file: