Go to the documentation of this file.
39 template<
typename T,
int Size>
70 for (
int i = 0; i < Size; ++i)
72 result += this->
Data[i] * this->
Data[i];
83 return sqrt(static_cast<double>(this->
SquaredNorm()));
93 const double norm(this->
Norm());
94 const double inv(1.0 / norm);
95 for (
int i = 0; i < Size; ++i)
97 this->
Data[i] = static_cast<T>(this->
Data[i] * inv);
123 for (
int i = 0; i < Size; ++i)
125 result += this->
Data[i] * other[i];
135 template<
typename TR>
139 for (
int i = 0; i < Size; ++i)
141 result[i] = static_cast<TR>(this->
Data[i]);
176 void Set(
const T& x,
const T& y)
243 void Set(
const T& x,
const T& y,
const T& z)
302 (this->
Data[0] == v.
Data[0] && this->Data[1] == v.
Data[1] && this->Data[2] < v.
Data[2]);
337 void Set(
const T& x,
const T& y,
const T& z,
const T& w)
391 #define vtkVectorNormalized(vectorType, type, size) \
392 vectorType Normalized() const \
394 return vectorType(vtkVector<type, size>::Normalized().GetData()); \
397 #define vtkVectorDerivedMacro(vectorType, type, size) \
398 vtkVectorNormalized(vectorType, type, size) \
399 explicit vectorType(type s) : Superclass(s) {} \
400 explicit vectorType(const type *i) : Superclass(i) {} \
401 explicit vectorType(const vtkTuple<type, size> &o) : Superclass(o.GetData()) {} \
402 vectorType(const vtkVector<type, size> &o) : Superclass(o.GetData()) {} \
436 #define vtkVector3Cross(vectorType, type) \
437 vectorType Cross(const vectorType& other) const \
439 return vectorType(vtkVector3<type>::Cross(other).GetData()); \
482 #endif // vtkVector_h
T Data[Size]
The only thing stored in memory!
#define vtkVectorDerivedMacro(vectorType, type, size)
void SetX(const T &x)
Set the x component of the vector, i.e.
#define vtkVector3Cross(vectorType, type)
void SetX(const T &x)
Set the x component of the vector, i.e.
vtkVector3(const T &scalar)
double Normalize()
Normalize the vector in place.
double Norm() const
Get the norm of the vector, i.e.
templated base type for storage of vectors.
vtkVector2< int > Superclass
vtkVector3(const T *init)
T SquaredNorm() const
Get the squared norm of the vector.
const T & GetX() const
Get the x component of the vector, i.e.
vtkVector3< int > Superclass
bool operator<(const vtkVector2< T > &v) const
Lexicographical comparison of two vector.
vtkVector2< double > Superclass
const T & GetZ() const
Get the z component of the vector, i.e.
vtkVector(const T &scalar)
Initialize all of the vector's elements with the supplied scalar.
const T & GetZ() const
Get the z component of the vector, i.e.
void SetY(const T &y)
Set the y component of the vector, i.e.
vtkVector3< double > Superclass
vtkVector2i(int x, int y)
vtkVector4d(double x, double y, double z, double w)
vtkVector3d(double x, double y, double z)
vtkVector3i(int x, int y, int z)
vtkVector< T, Size > Normalized() const
Return the normalized form of this vector.
vtkVector3(const T &x, const T &y, const T &z)
void SetX(const T &x)
Set the x component of the vector, i.e.
vtkVector2f(float x, float y)
const T & GetX() const
Get the x component of the vector, i.e.
vtkVector2(const T *init)
void SetY(const T &y)
Set the y component of the vector, i.e.
const T & GetW() const
Get the w component of the vector, i.e.
vtkVector2d(double x, double y)
const T & GetY() const
Get the y component of the vector, i.e.
void SetZ(const T &z)
Set the z component of the vector, i.e.
vtkVector< TR, Size > Cast() const
Cast the vector to the specified type, returning the result.
vtkVector3< T > Cross(const vtkVector3< T > &other) const
Return the cross product of this X other.
const T & GetX() const
Get the x component of the vector, i.e.
vtkVector2< float > Superclass
vtkVector4(const T *init)
vtkVector2(const T &x, const T &y)
bool operator<(const vtkVector3< T > &v) const
Lexicographical comparison of two vector.
void SetZ(const T &z)
Set the z component of the vector, i.e.
void Set(const T &x, const T &y, const T &z)
Set the x, y and z components of the vector.
vtkVector2(const T &scalar)
void SetW(const T &w)
Set the w component of the vector, i.e.
vtkVector4(const T &scalar)
T Dot(const vtkVector< T, Size > &other) const
The dot product of this and the supplied vector.
vtkVector4(const T &x, const T &y, const T &z, const T &w)
vtkVector(const T *init)
Initialize the vector's elements with the elements of the supplied array.
void Set(const T &x, const T &y, const T &z, const T &w)
Set the x, y, z and w components of a 3D vector in homogeneous coordinates.
vtkVectorDerivedMacro(vtkVector3i, int, 3) vtkVector3Cross(vtkVector3i
Some derived classes for the different vectors commonly used.
void SetY(const T &y)
Set the y component of the vector, i.e.
templated base type for containers of constant size.
vtkVector3f(float x, float y, float z)
const T & GetY() const
Get the y component of the vector, i.e.
vtkVector3< float > Superclass
void Set(const T &x, const T &y)
Set the x and y components of the vector.
const T & GetY() const
Get the y component of the vector, i.e.