My Project
Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
ParaEngine::Vector4 Class Reference

4-dimensional homogeneous vector. More...

#include <ParaVector4.h>

Public Member Functions

 Vector4 (const float fX, const float fY, const float fZ, const float fW)
 
 Vector4 (const float afCoordinate[4])
 
 Vector4 (const int afCoordinate[4])
 
 Vector4 (float *const r)
 
 Vector4 (const float scaler)
 
 Vector4 (const Vector3 &rhs, float w_=1.f)
 
 Vector4 (const DeviceVector4 &r)
 
float operator[] (const size_t i) const
 
float & operator[] (const size_t i)
 
float * ptr ()
 Pointer accessor for direct copying.
 
const float * ptr () const
 Pointer accessor for direct copying.
 
Vector4operator= (const Vector4 &rkVector)
 Assigns the value of the other vector. More...
 
Vector4operator= (const float fScalar)
 
bool operator== (const Vector4 &rkVector) const
 
bool operator!= (const Vector4 &rkVector) const
 
Vector4operator= (const Vector3 &rhs)
 
Vector4 operator+ (const Vector4 &rkVector) const
 
Vector4 operator- (const Vector4 &rkVector) const
 
Vector4 operator* (const float fScalar) const
 
Vector4 operator* (const Vector4 &rhs) const
 
Vector4 operator* (const Matrix4 &mat) const
 
Vector4 operator/ (const float fScalar) const
 
Vector4 operator/ (const Vector4 &rhs) const
 
const Vector4operator+ () const
 
Vector4 operator- () const
 
Vector4operator+= (const Vector4 &rkVector)
 
Vector4operator-= (const Vector4 &rkVector)
 
Vector4operator*= (const float fScalar)
 
Vector4operator+= (const float fScalar)
 
Vector4operator-= (const float fScalar)
 
Vector4operator*= (const Vector4 &rkVector)
 
Vector4operator/= (const float fScalar)
 
Vector4operator/= (const Vector4 &rkVector)
 
 operator Vector3 () const
 
float dotProduct (const Vector4 &vec) const
 Calculates the dot (scalar) product of this vector with another. More...
 
Vector4 transformAffine (const Matrix4 &M) const
 row vector: 4-D Vector transformation specially for affine matrix. More...
 

Public Attributes

union {
   struct {
      float   x
 
      float   y
 
      float   z
 
      float   w
 
   } 
 
   float   vector4_f32 [4]
 
}; 
 

Static Public Attributes

static const Vector4 ZERO
 

Friends

Vector4 operator* (const float fScalar, const Vector4 &rkVector)
 
Vector4 operator/ (const float fScalar, const Vector4 &rkVector)
 
Vector4 operator+ (const Vector4 &lhs, const float rhs)
 
Vector4 operator+ (const float lhs, const Vector4 &rhs)
 
Vector4 operator- (const Vector4 &lhs, float rhs)
 
Vector4 operator- (const float lhs, const Vector4 &rhs)
 
std::ostream & operator<< (std::ostream &o, const Vector4 &v)
 Function for writing to a stream.
 

Detailed Description

4-dimensional homogeneous vector.

Member Function Documentation

§ dotProduct()

float ParaEngine::Vector4::dotProduct ( const Vector4 vec) const
inline

Calculates the dot (scalar) product of this vector with another.

Parameters
vecVector with which to calculate the dot product (together with this one).
Returns
A float representing the dot product value.

§ operator=()

Vector4& ParaEngine::Vector4::operator= ( const Vector4 rkVector)
inline

Assigns the value of the other vector.

Parameters
rkVectorThe other vector

§ transformAffine()

ParaEngine::Vector4 ParaEngine::Vector4::transformAffine ( const Matrix4 M) const
inline

row vector: 4-D Vector transformation specially for affine matrix.

Note
The matrix must be an affine matrix.
See also
Matrix4::isAffine.

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