Itasca C++ Interface
|
3D Angular vector class. More...
#include <avect.h>
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) |
Related Symbols inherited from Vector3< T > | |
typedef Vector3< double > | DVect3 |
typedef Vector3< float > | FVect3 |
typedef Vector3< int32 > | IVect3 |
typedef Vector3< uint32 > | UVect3 |
typedef Vector3< int64 > | I64Vect3 |
typedef Vector3< uint64 > | U64Vect3 |
template<class T > | |
constexpr DVect3 | toDVect3 (const Vector3< T > &v) |
template<class T > | |
constexpr FVect3 | toFVect3 (const Vector3< T > &v) |
template<class T > | |
constexpr IVect3 | toIVect3 (const Vector3< T > &v) |
template<class T > | |
constexpr U64Vect3 | toU64Vect3 (const Vector3< T > &v) |
template<class T > | |
constexpr Vector3< T > | vmax (const Vector3< T > &v1, const Vector3< T > &v2) |
template<class T > | |
constexpr Vector3< T > | vmin (const Vector3< T > &v1, const Vector3< T > &v2) |
template<class T > | |
constexpr Vector3< T > | vsign (const Vector3< T > &v1, const Vector3< T > &v2) |
template<class T > | |
Vector3< T > | vceil (const Vector3< T > &v) |
template<class T > | |
Vector3< T > | vfloor (const Vector3< T > &v) |
template<class T > | |
IVect3 constexpr | vround (const Vector3< 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 |
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.