Itasca C++ Interface
Loading...
Searching...
No Matches
Vector3< T > Class Template Reference

3D vector utility class. More...

#include <vect.h>

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

Public Types

using Base = std::array<T,3>
using CompType = T

Public Member Functions

constexpr Vector3 (const Vector3< T > &v)=default
constexpr Vector3< T > & operator= (const Vector3< T > &in)=default
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 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.
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 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.

Static Public Attributes

static constexpr uint32 vdim = 3

(Note that these are not member symbols.)

using DVect3 = Vector3<double>
using FVect3 = Vector3<float>
using IVect3 = Vector3<int32>
using UVect3 = Vector3<uint32>
using I64Vect3 = Vector3<int64>
using U64Vect3 = Vector3<uint64>
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)

Detailed Description

template<class T>
class Vector3< T >

3D vector utility class.

Member Function Documentation

◆ operator*() [1/2]

template<class T>
Vector3< T > Vector3< T >::operator* ( const T & t) const
inlineconstexpr

Binary mathematical operators – * and / are done on a component basis.

◆ operator*() [2/2]

template<class T>
Vector3< T > Vector3< T >::operator* ( const Vector3< T > & v) const
inlineconstexpr

Binary mathematical operators – * and / are done on a component basis.

◆ operator*=() [1/2]

template<class T>
const Vector3< T > & Vector3< T >::operator*= ( const T & t)
inlineconstexpr

In-place mathematical operators – * and / are done on a component basis.

◆ operator*=() [2/2]

template<class T>
const Vector3< T > & Vector3< T >::operator*= ( const Vector3< T > & v)
inlineconstexpr

In-place mathematical operators – * and / are done on a component basis.

◆ operator-()

template<class T>
Vector3< T > Vector3< T >::operator- ( const Vector3< T > & v) const
inlineconstexpr

Binary mathematical operators – * and / are done on a component basis.

◆ operator-=()

template<class T>
const Vector3< T > & Vector3< T >::operator-= ( const Vector3< T > & v)
inlineconstexpr

In-place mathematical operators – * and / are done on a component basis.

◆ operator/() [1/2]

template<class T>
Vector3< T > Vector3< T >::operator/ ( const T & t) const
inlineconstexpr

Binary mathematical operators – * and / are done on a component basis.

◆ operator/() [2/2]

template<class T>
Vector3< T > Vector3< T >::operator/ ( const Vector3< T > & v) const
inlineconstexpr

Binary mathematical operators – * and / are done on a component basis.

◆ operator/=() [1/2]

template<class T>
const Vector3< T > & Vector3< T >::operator/= ( const T & t)
inlineconstexpr

In-place mathematical operators – * and / are done on a component basis.

◆ operator/=() [2/2]

template<class T>
const Vector3< T > & Vector3< T >::operator/= ( const Vector3< T > & v)
inlineconstexpr

In-place mathematical operators – * and / are done on a component basis.


The documentation for this class was generated from the following file:
  • C:/Source/itasca-suite/common/base/src/vect.h