open_iA 2025.6
Loading...
Searching...
No Matches
iAVec3.h File Reference
#include <algorithm>
#include <cmath>
#include <QString>

Classes

class  iAVec3T< T >
 Class representing a 3-dimensional vector. More...
 

Typedefs

using iAVec3d = iAVec3T<double>
 
using iAVec3f = iAVec3T<float>
 
using iAVec3i = iAVec3T<int>
 

Functions

template<typename T1, typename T2>
T1 angleBetween (iAVec3T< T1 > const &u, iAVec3T< T2 > const &v)
 get angle between two vectors (in radians)
 
template<typename T1, typename T2>
iAVec3T< T1 > crossProduct (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 get cross product between two vectors
 
template<typename T1, typename T2>
T1 dotProduct (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 get dot product between two vectors
 
template<typename T1, typename T2>
T1 operator& (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 Compute dot product.
 
template<typename RealType, typename ParamType>
iAVec3T< RealType > operator/ (const iAVec3T< RealType > &u, ParamType a)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator^ (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 Compute cross product.
 
template<typename T>
bool operator!= (const iAVec3T< T > &u, const iAVec3T< T > &v)
 
template<typename T>
bool operator< (const iAVec3T< T > &u, const iAVec3T< T > &v)
 
template<typename T>
bool operator== (const iAVec3T< T > &u, const iAVec3T< T > &v)
 
template<typename T>
bool operator> (const iAVec3T< T > &u, const iAVec3T< T > &v)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator* (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator* (const iAVec3T< T1 > &u, T2 a)
 
template<typename T1, typename T2>
iAVec3T< T2 > operator* (T1 a, const iAVec3T< T2 > &u)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator+ (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator+ (const iAVec3T< T1 > &u, T2 a)
 
template<typename T1, typename T2>
iAVec3T< T2 > operator+ (T1 a, const iAVec3T< T2 > &u)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator- (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator- (const iAVec3T< T1 > &u, T2 a)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator/ (const iAVec3T< T1 > &u, const iAVec3T< T2 > &v)
 
template<typename T1, typename T2>
iAVec3T< T1 > operator/ (const iAVec3T< T1 > &u, T2 a)
 

Typedef Documentation

◆ iAVec3d

using iAVec3d = iAVec3T<double>

◆ iAVec3f

using iAVec3f = iAVec3T<float>

◆ iAVec3i

using iAVec3i = iAVec3T<int>

Function Documentation

◆ angleBetween()

template<typename T1, typename T2>
T1 angleBetween ( iAVec3T< T1 > const & u,
iAVec3T< T2 > const & v )

get angle between two vectors (in radians)

◆ crossProduct()

template<typename T1, typename T2>
iAVec3T< T1 > crossProduct ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

get cross product between two vectors

◆ dotProduct()

template<typename T1, typename T2>
T1 dotProduct ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

get dot product between two vectors

◆ operator!=()

template<typename T>
bool operator!= ( const iAVec3T< T > & u,
const iAVec3T< T > & v )

◆ operator&()

template<typename T1, typename T2>
T1 operator& ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

Compute dot product.

Deprecated
use dotProduct(...) instead!

◆ operator*() [1/3]

template<typename T1, typename T2>
iAVec3T< T1 > operator* ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

◆ operator*() [2/3]

template<typename T1, typename T2>
iAVec3T< T1 > operator* ( const iAVec3T< T1 > & u,
T2 a )

◆ operator*() [3/3]

template<typename T1, typename T2>
iAVec3T< T2 > operator* ( T1 a,
const iAVec3T< T2 > & u )

◆ operator+() [1/3]

template<typename T1, typename T2>
iAVec3T< T1 > operator+ ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

basic arithmetical operations on two vectors / a vector and a value

◆ operator+() [2/3]

template<typename T1, typename T2>
iAVec3T< T1 > operator+ ( const iAVec3T< T1 > & u,
T2 a )

◆ operator+() [3/3]

template<typename T1, typename T2>
iAVec3T< T2 > operator+ ( T1 a,
const iAVec3T< T2 > & u )

◆ operator-() [1/2]

template<typename T1, typename T2>
iAVec3T< T1 > operator- ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

◆ operator-() [2/2]

template<typename T1, typename T2>
iAVec3T< T1 > operator- ( const iAVec3T< T1 > & u,
T2 a )

◆ operator/() [1/3]

template<typename RealType, typename ParamType>
iAVec3T< RealType > operator/ ( const iAVec3T< RealType > & u,
ParamType a )

◆ operator/() [2/3]

template<typename T1, typename T2>
iAVec3T< T1 > operator/ ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

◆ operator/() [3/3]

template<typename T1, typename T2>
iAVec3T< T1 > operator/ ( const iAVec3T< T1 > & u,
T2 a )

◆ operator<()

template<typename T>
bool operator< ( const iAVec3T< T > & u,
const iAVec3T< T > & v )

◆ operator==()

template<typename T>
bool operator== ( const iAVec3T< T > & u,
const iAVec3T< T > & v )

Comparison operators for two vectors. Note that only two vectors of the same type can be compared

◆ operator>()

template<typename T>
bool operator> ( const iAVec3T< T > & u,
const iAVec3T< T > & v )

◆ operator^()

template<typename T1, typename T2>
iAVec3T< T1 > operator^ ( const iAVec3T< T1 > & u,
const iAVec3T< T2 > & v )

Compute cross product.

Deprecated
use crossProduct(...) instead!