VTK  9.7.1
Classes | Macros | Functions
vtkVector.h File Reference
#include "vtkObject.h"
#include "vtkTuple.h"
#include <cmath>
Include dependency graph for vtkVector.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  vtkVector< T, Size >
 templated base type for storage of vectors. More...
 
class  vtkVector2< T >
 
class  vtkVector3< T >
 
class  vtkVector4< T >
 
class  vtkVector2i
 Some derived classes for the different vectors commonly used. More...
 
class  vtkVector2f
 
class  vtkVector2d
 
class  vtkVector3i
 
class  vtkVector3f
 
class  vtkVector3d
 
class  vtkVector4i
 
class  vtkVector4d
 

Macros

#define vtkVectorNormalized(vectorType, type, size)
 Some inline functions for the derived types. More...
 
#define vtkVectorDerivedMacro(vectorType, type, size)
 
#define vtkVector3Cross(vectorType, type)
 
#define vtkVectorOperatorNegate(vectorType, type, size)
 Several macros to define the various operator overloads for the vectors. More...
 
#define vtkVectorOperatorPlus(vectorType, type, size)
 
#define vtkVectorOperatorMinus(vectorType, type, size)
 
#define vtkVectorOperatorMultiply(vectorType, type, size)
 
#define vtkVectorOperatorMultiplyScalar(vectorType, type, size)
 
#define vtkVectorOperatorMultiplyScalarPre(vectorType, type, size)
 
#define vtkVectorOperatorDivide(vectorType, type, size)
 
#define vtkVectorOperatorMacro(vectorType, type, size)
 

Functions

template<typename A , int Size>
vtkVector< A, Size > operator- (const vtkVector< A, Size > &v)
 This following operators enhance the vtkVector classes, allowing various operator overloads one might expect. More...
 
template<typename A , int Size>
vtkVector< A, Size > operator+ (const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
 Performs addition of vectors of the same basic type. More...
 
template<typename T , int Size>
vtkVector< T, Size > & operator+= (vtkVector< T, Size > &a, const vtkVector< T, Size > &b)
 Add the vector b to the vector a of the same basic type. More...
 
template<typename T , int Size, typename Scalar >
vtkVector< T, Size > & operator*= (vtkVector< T, Size > &a, Scalar f)
 Multiply a vector a by a scalar. More...
 
template<typename A , int Size>
vtkVector< A, Size > operator- (const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
 Performs subtraction of vectors of the same basic type. More...
 
template<typename T , int Size>
vtkVector< T, Size > & operator-= (vtkVector< T, Size > &a, const vtkVector< T, Size > &b)
 Subtract the vector b to the vector a of the same basic type. More...
 
template<typename A , int Size>
vtkVector< A, Size > operator* (const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
 Performs multiplication of vectors of the same basic type. More...
 
template<typename A , typename B , int Size>
vtkVector< A, Size > operator* (const vtkVector< A, Size > &v1, const B &scalar)
 Performs multiplication of vectors by a scalar value. More...
 
template<typename A , int Size>
vtkVector< A, Size > operator/ (const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
 Performs division of vectors of the same type. More...
 
 vtkVectorOperatorMacro (vtkVector2i, int, 2)
 Overload the operators for the common types. More...
 
 vtkVectorOperatorMacro (vtkVector2f, float, 2)
 
 vtkVectorOperatorMacro (vtkVector2d, double, 2)
 
 vtkVectorOperatorMacro (vtkVector3i, int, 3)
 
 vtkVectorOperatorMacro (vtkVector3f, float, 3)
 
 vtkVectorOperatorMacro (vtkVector3d, double, 3)
 

Macro Definition Documentation

#define vtkVectorNormalized (   vectorType,
  type,
  size 
)
Value:
vectorType Normalized() const \
{ \
return vectorType(vtkVector<type, size>::Normalized().GetData()); \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Some inline functions for the derived types.

Definition at line 381 of file vtkVector.h.

#define vtkVectorDerivedMacro (   vectorType,
  type,
  size 
)
Value:
vtkVectorNormalized(vectorType, type, size); \
explicit vectorType(type s) \
: Superclass(s) \
{ \
} \
explicit vectorType(const type* i) \
: Superclass(i) \
{ \
} \
explicit vectorType(const vtkTuple<type, size>& o) \
: Superclass(o.GetData()) \
{ \
} \
vectorType(const vtkVector<type, size>& o) \
: Superclass(o.GetData()) \
{ \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
#define vtkVectorNormalized(vectorType, type, size)
Some inline functions for the derived types.
Definition: vtkVector.h:381
templated base type for containers of constant size.
Definition: vtkTuple.h:29

Definition at line 387 of file vtkVector.h.

#define vtkVector3Cross (   vectorType,
  type 
)
Value:
vectorType Cross(const vectorType& other) const \
{ \
return vectorType(vtkVector3<type>::Cross(other).GetData()); \
}
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Definition at line 447 of file vtkVector.h.

#define vtkVectorOperatorNegate (   vectorType,
  type,
  size 
)
Value:
inline vectorType operator-(const vectorType& v) \
{ \
return vectorType((-static_cast<vtkVector<type, size>>(v)).GetData()); \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkVector< A, Size > operator-(const vtkVector< A, Size > &v)
This following operators enhance the vtkVector classes, allowing various operator overloads one might...
Definition: vtkVector.h:525
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Several macros to define the various operator overloads for the vectors.

These macros are necessary to define operator overloads for common vector types (e.g vtkVector3d...), without them, there could be ambiguous overloads. XXX(c++20): might use constraints instead

Definition at line 654 of file vtkVector.h.

#define vtkVectorOperatorPlus (   vectorType,
  type,
  size 
)
Value:
inline vectorType operator+(const vectorType& v1, const vectorType& v2) \
{ \
return vectorType( \
(static_cast<vtkVector<type, size>>(v1) + static_cast<vtkVector<type, size>>(v2)) \
.GetData()); \
}
vtkVector< A, Size > operator+(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
Performs addition of vectors of the same basic type.
Definition: vtkVector.h:539
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Definition at line 659 of file vtkVector.h.

#define vtkVectorOperatorMinus (   vectorType,
  type,
  size 
)
Value:
inline vectorType operator-(const vectorType& v1, const vectorType& v2) \
{ \
return vectorType( \
(static_cast<vtkVector<type, size>>(v1) - static_cast<vtkVector<type, size>>(v2)) \
.GetData()); \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkVector< A, Size > operator-(const vtkVector< A, Size > &v)
This following operators enhance the vtkVector classes, allowing various operator overloads one might...
Definition: vtkVector.h:525
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Definition at line 666 of file vtkVector.h.

#define vtkVectorOperatorMultiply (   vectorType,
  type,
  size 
)
Value:
inline vectorType operator*(const vectorType& v1, const vectorType& v2) \
{ \
return vectorType( \
(static_cast<vtkVector<type, size>>(v1) * static_cast<vtkVector<type, size>>(v2)) \
.GetData()); \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkVector< A, Size > operator*(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
Performs multiplication of vectors of the same basic type.
Definition: vtkVector.h:609
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Definition at line 673 of file vtkVector.h.

#define vtkVectorOperatorMultiplyScalar (   vectorType,
  type,
  size 
)
Value:
template <typename B> \
inline vectorType operator*(const vectorType& v1, const B& scalar) \
{ \
return vectorType((static_cast<vtkVector<type, size>>(v1) * scalar).GetData()); \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkVector< A, Size > operator*(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
Performs multiplication of vectors of the same basic type.
Definition: vtkVector.h:609
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Definition at line 680 of file vtkVector.h.

#define vtkVectorOperatorMultiplyScalarPre (   vectorType,
  type,
  size 
)
Value:
template <typename B> \
inline vectorType operator*(const B& scalar, const vectorType& v1) \
{ \
return vectorType((static_cast<vtkVector<type, size>>(v1) * scalar).GetData()); \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkVector< A, Size > operator*(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
Performs multiplication of vectors of the same basic type.
Definition: vtkVector.h:609
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Definition at line 686 of file vtkVector.h.

#define vtkVectorOperatorDivide (   vectorType,
  type,
  size 
)
Value:
inline vectorType operator/(const vectorType& v1, const vectorType& v2) \
{ \
return vectorType( \
(static_cast<vtkVector<type, size>>(v1) / static_cast<vtkVector<type, size>>(v2)) \
.GetData()); \
}
templated base type for storage of vectors.
Definition: vtkVector.h:29
vtkVector< A, Size > operator/(const vtkVector< A, Size > &v1, const vtkVector< A, Size > &v2)
Performs division of vectors of the same type.
Definition: vtkVector.h:637
vtkSmartPointer< vtkDataArray > GetData(const Ioss::GroupingEntity *entity, const std::string &fieldname, Ioss::Transform *transform=nullptr, Cache *cache=nullptr, const std::string &cachekey=std::string())
Returns a VTK array for a given field (fieldname) on the chosen block (or set) entity.

Definition at line 692 of file vtkVector.h.

#define vtkVectorOperatorMacro (   vectorType,
  type,
  size 
)
Value:
#define vtkVectorOperatorMultiplyScalar(vectorType, type, size)
Definition: vtkVector.h:680
#define vtkVectorOperatorMultiply(vectorType, type, size)
Definition: vtkVector.h:673
#define vtkVectorOperatorDivide(vectorType, type, size)
Definition: vtkVector.h:692
#define vtkVectorOperatorPlus(vectorType, type, size)
Definition: vtkVector.h:659
#define vtkVectorOperatorMinus(vectorType, type, size)
Definition: vtkVector.h:666
#define vtkVectorOperatorMultiplyScalarPre(vectorType, type, size)
Definition: vtkVector.h:686
#define vtkVectorOperatorNegate(vectorType, type, size)
Several macros to define the various operator overloads for the vectors.
Definition: vtkVector.h:654

Definition at line 700 of file vtkVector.h.

Function Documentation

template<typename A , int Size>
vtkVector<A, Size> operator- ( const vtkVector< A, Size > &  v)

This following operators enhance the vtkVector classes, allowing various operator overloads one might expect.

Unary minus / negation of vector.

Definition at line 525 of file vtkVector.h.

template<typename A , int Size>
vtkVector<A, Size> operator+ ( const vtkVector< A, Size > &  v1,
const vtkVector< A, Size > &  v2 
)

Performs addition of vectors of the same basic type.

Definition at line 539 of file vtkVector.h.

template<typename T , int Size>
vtkVector<T, Size>& operator+= ( vtkVector< T, Size > &  a,
const vtkVector< T, Size > &  b 
)

Add the vector b to the vector a of the same basic type.

Definition at line 553 of file vtkVector.h.

template<typename T , int Size, typename Scalar >
vtkVector<T, Size>& operator*= ( vtkVector< T, Size > &  a,
Scalar  f 
)

Multiply a vector a by a scalar.

Definition at line 567 of file vtkVector.h.

template<typename A , int Size>
vtkVector<A, Size> operator- ( const vtkVector< A, Size > &  v1,
const vtkVector< A, Size > &  v2 
)

Performs subtraction of vectors of the same basic type.

Definition at line 581 of file vtkVector.h.

template<typename T , int Size>
vtkVector<T, Size>& operator-= ( vtkVector< T, Size > &  a,
const vtkVector< T, Size > &  b 
)

Subtract the vector b to the vector a of the same basic type.

Definition at line 595 of file vtkVector.h.

template<typename A , int Size>
vtkVector<A, Size> operator* ( const vtkVector< A, Size > &  v1,
const vtkVector< A, Size > &  v2 
)

Performs multiplication of vectors of the same basic type.

Definition at line 609 of file vtkVector.h.

template<typename A , typename B , int Size>
vtkVector<A, Size> operator* ( const vtkVector< A, Size > &  v1,
const B &  scalar 
)

Performs multiplication of vectors by a scalar value.

Definition at line 623 of file vtkVector.h.

template<typename A , int Size>
vtkVector<A, Size> operator/ ( const vtkVector< A, Size > &  v1,
const vtkVector< A, Size > &  v2 
)

Performs division of vectors of the same type.

Definition at line 637 of file vtkVector.h.

vtkVectorOperatorMacro ( vtkVector2i  ,
int  ,
2   
)

Overload the operators for the common types.

vtkVectorOperatorMacro ( vtkVector2f  ,
float  ,
2   
)
vtkVectorOperatorMacro ( vtkVector2d  ,
double  ,
2   
)
vtkVectorOperatorMacro ( vtkVector3i  ,
int  ,
3   
)
vtkVectorOperatorMacro ( vtkVector3f  ,
float  ,
3   
)
vtkVectorOperatorMacro ( vtkVector3d  ,
double  ,
3   
)