Itasca C++ Interface
Loading...
Searching...
No Matches
Public Member Functions | Related Symbols | List of all members
AVector3< T > Class Template Reference

3D Angular vector class. More...

#include <avect.h>

Inheritance diagram for AVector3< T >:
Vector3< T > AVector< T >

Public Member Functions

 AVector3 (const Vector3< T > &v)
 
 AVector3 (const AVector3< T > &v)
 
 AVector3 (const AVector2< T > &v)
 Explicit conversion contructor from an AVector2, x=0, y=0, z=v.z.
 
constexpr const AVector3< T > & operator= (const AVector3< T > &v)
 
Vector2< T > toVector2 () const
 Converts to a Vector2, the z component is lost.
 
const Vector3< T > & toVector3 () const
 Converts to a Vector3 directly.
 
- Public Member Functions inherited from Vector3< T >
 Vector3 ()
 Default constructor - no data initialization.
 
constexpr Vector3 (const Vector3< T > &v)
 Copy constructor.
 
constexpr Vector3 (const T &x, const T &y, const T &z=0)
 Explicit constructor, by the three components of the vector.
 
constexpr Vector3 (const T &t)
 Explicit constructor, all three components are inintialized to t.
 
constexpr const Vector3< T > & operator= (const Vector3< T > &in)
 
constexpr const T & x () const
 The x-component of the vector.
 
constexpr const T & y () const
 The y-component of the vector.
 
constexpr const T & z () const
 The z-component of the vector.
 
constexpr const T & dof (unsigned u) const
 The degree-of-freedom u (0-2) component.
 
T & rx ()
 Reference access to the x-component of the vector.
 
T & ry ()
 Reference access to the y-component of the vector.
 
T & rz ()
 Reference access to the z-component of the vector.
 
T & rdof (unsigned u)
 Reference access to degree-of-freedom u (0-2) of the vector.
 
constexpr const T & operator[] (unsigned u) const
 Allows array like access to degrees-of-freedom.
 
T & operator[] (unsigned u)
 Allows array like access to degrees-of-freedom.
 
template<std::size_t N>
constexpr T get () const
 
constexpr T fsum () const
 Manhattan norm.
 
constexpr T sum () const
 Sum of components.
 
constexpr T mag2 () const
 Square of the magnitude, or the vector dotted with itself.
 
constexpr T mag () const
 The vector magnitude.
 
constexpr T volume () const
 Volume of region represented by x*y*z - can be negative.
 
Vector3< T > unit () const
 Unit vector - be sure vector is nonzero.
 
constexpr Vector3< T > abs () const
 Returns vector of absolute values of components.
 
void fill (const T &d)
 Fills all three components with value d.
 
constexpr T maxComp () const
 Returns the maximum component.
 
constexpr T minComp () const
 Returns the minimum component.
 
constexpr unsigned maxCompIndex () const
 Returns the max component index.
 
constexpr unsigned minCompIndex () const
 Returns the min component index.
 
constexpr const Vector3< T > & safeDivE (const Vector3< T > &v)
 "Safe" division operation - checks for zero and overflow.
 
constexpr const Vector3< T > safeDiv (const Vector3< T > &v)
 "Safe" division operation - checks for zero and overflow.
 
constexpr bool operator== (const Vector3< T > &v) const
 Comparison operator - no tolerance is used.
 
constexpr bool operator!= (const Vector3< T > &v) const
 Comparison operator - no tolerance is used.
 
constexpr bool operator< (const Vector3< T > &v) const
 Comparison operator, compare each DOF in order.
 
constexpr bool operator> (const Vector3< T > &v) const
 Comparison operator, compare each DOF in order.
 
constexpr const Vector3< T > & operator+= (const Vector3< T > &v)
 In-place mathematical operators – * and / are done on a component basis.
 
constexpr const Vector3< T > & operator-= (const Vector3< T > &v)
 In-place mathematical operators – * and / are done on a component basis.
 
constexpr const Vector3< T > & operator*= (const Vector3< T > &v)
 In-place mathematical operators – * and / are done on a component basis.
 
constexpr const Vector3< T > & operator*= (const T &t)
 In-place mathematical operators – * and / are done on a component basis.
 
constexpr const Vector3< T > & operator/= (const Vector3< T > &v)
 In-place mathematical operators – * and / are done on a component basis.
 
constexpr const Vector3< T > & operator/= (const T &t)
 In-place mathematical operators – * and / are done on a component basis.
 
constexpr Vector3< T > operator+ (const Vector3< T > &v) const
 Binary mathematical operators – * and / are done on a component basis.
 
constexpr Vector3< T > operator- (const Vector3< T > &v) const
 Binary mathematical operators – * and / are done on a component basis.
 
constexpr Vector3< T > operator* (const Vector3< T > &v) const
 Binary mathematical operators – * and / are done on a component basis.
 
constexpr Vector3< T > operator* (const T &t) const
 Binary mathematical operators – * and / are done on a component basis.
 
constexpr Vector3< T > operator/ (const Vector3< T > &v) const
 Binary mathematical operators – * and / are done on a component basis.
 
constexpr Vector3< T > operator/ (const T &t) const
 Binary mathematical operators – * and / are done on a component basis.
 
constexpr Vector3< T > operator& (const Vector3< T > &v) const
 Cross Product.
 
constexpr T operator| (const Vector3< T > &v) const
 Dot Product.
 

Related Symbols

(Note that these are not member symbols.)

typedef AVector3< double > DAVect3
 
typedef AVector3< float > FAVect3
 
typedef AVector3< int32 > IAVect3
 
typedef AVector3< uint32 > UAVect3
 
template<class T >
DAVect3 toDAVect3 (const Vector3< T > &v)
 
template<class T >
FAVect3 toFAVect3 (const Vector3< T > &v)
 
template<class T >
IAVect3 toAIVect3 (const Vector3< T > &v)
 
template<class T >
UAVect3 toAUVect3 (const Vector3< T > &v)
 
template<class T >
Vector2< T > toVect2 (const AVector3< T > &v)
 
template<class T >
const Vector3< T > & toVect3 (const AVector3< T > &v)
 
template<class T >
AVector3< T > toAVect3 (const AVector2< T > &v, const T &x=0, const T &y=0)
 
template<class T >
const AVector3< T > & toAVect3 (const AVector3< T > &v)
 
template<class T >
AVector3< T > vmax (const AVector3< T > &v1, const AVector3< T > &v2)
 
template<class T >
AVector3< T > vmin (const AVector3< T > &v1, const AVector3< T > &v2)
 
template<class T >
AVector3< T > vsign (const AVector3< T > &v1, const AVector3< T > &v2)
 
template<class T >
AVector3< T > vceil (const AVector3< T > &v)
 
template<class T >
AVector2< T > vmin (const AVector2< T > &v1, const AVector2< T > &v2)
 
template<class T >
AVector2< T > vceil (const AVector2< T > &v)
 

Additional Inherited Members

- Public Types inherited from Vector3< T >
using CompType = T
 
- Static Public Attributes inherited from Vector3< T >
static constexpr uint32 vdim = 3
 

Detailed Description

template<class T>
class AVector3< T >

3D Angular vector class.

This specialized version of a vector class is intended to store "angular" values, values that are a scalar in 2D (z component only) and a full vector in 3D.

The intention is to make it easier to write code that is the same in 2D and 3D without wasting computation time and storage.

In the 3D case, and AVector3 is a thin wrapper around a Vector3.


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