# CVector4 Class Reference

A 4-element vector that is represented by double precision floating point x,y,z,w coordinates. More...

`#include <xsi_vector4.h>`

List of all members.

## Public Member Functions
__forceinline | CVector4 ()
__forceinline | CVector4 (double in_dX, double in_dY, double in_dZ, double in_dW)
__forceinline | CVector4 (const CVector4 &in_vector4)
__forceinline | ~CVector4 ()
__forceinline CVector4 & | operator= (const CVector4 &in_vector4)
__forceinline bool | operator== (const CVector4 &in_vector4) const
__forceinline bool | operator!= (const CVector4 &in_vector4) const
__forceinline CVector4 & | operator~ ()
__forceinline CVector4 & | operator+= (const CVector4 &in_vector4)
__forceinline CVector4 & | operator-= (const CVector4 &in_vector4)
__forceinline CVector4 & | operator *= (const CMatrix4 &in_matrix4)
__forceinline CVector4 & | operator *= (const CTransformation &in_transformation)
__forceinline CVector4 & | operator *= (const double &in_dAlpha)
double | operator[] (const short &in_sIndex)
__forceinline CVector4 & | MulByMatrix4InPlace (const CMatrix4 &in_matrix4)
__forceinline CVector4 & | MulByMatrix4 (const CVector4 &in_vector4, const CMatrix4 &in_matrix4)
__forceinline CVector4 & | MulByTransformationInPlace (const CTransformation &in_transformation)
__forceinline CVector4 & | MulByTransformation (const CVector4 &in_vector4, const CTransformation &in_transformation)
__forceinline CVector4 & | PutNull ()
double | GetLength () const
double | GetLengthSquared () const
CStatus | NormalizeInPlace ()
CStatus | Normalize (const CVector4 &in_vector4)
__forceinline double | Dot (const CVector4 &in_vector4) const
__forceinline CVector4 & | Cross (const CVector4 &in_vector4A, const CVector4 &in_vector4B)
CVector4 & | AbsoluteInPlace ()
CVector4 & | Absolute (const CVector4 &in_vector4)
bool | EpsilonEquals (const CVector4 &in_vector4, double in_dEpsilon) const
__forceinline bool | Equals (const CVector4 &in_vector4) const
__forceinline CVector4 & | ScaleAddInPlace (double in_dS, const CVector4 &in_vector4)
__forceinline CVector4 & | ScaleAdd (double in_dS, const CVector4 &in_vector4A, const CVector4 &in_vector4B)
__forceinline CVector4 & | ScaleInPlace (double in_dAlpha)
__forceinline CVector4 & | Scale (double in_dAlpha, const CVector4 &in_vector4)
__forceinline CVector4 & | NegateInPlace ()
__forceinline CVector4 & | Negate (const CVector4 &in_vector4)
__forceinline CVector4 & | SubInPlace (const CVector4 &in_vector4)
__forceinline CVector4 & | Sub (const CVector4 &in_vector4A, const CVector4 &in_vector4B)
__forceinline CVector4 & | AddInPlace (const CVector4 &in_vector4)
__forceinline CVector4 & | Add (const CVector4 &in_vector4A, const CVector4 &in_vector4B)
__forceinline void | Get (double &out_dX, double &out_dY, double &out_dZ, double &out_dW) const
__forceinline CVector4 & | Set (double in_dX, double in_dY, double in_dZ, double in_dW)
__forceinline double | GetW () const
__forceinline CVector4 & | PutW (double in_dW)
__forceinline double | GetZ () const
__forceinline CVector4 & | PutZ (double in_dZ)
__forceinline double | GetY () const
__forceinline CVector4 & | PutY (double in_dY)
__forceinline double | GetX () const
__forceinline CVector4 & | PutX (double in_dX)

## Detailed Description

A 4-element vector that is represented by double precision floating point x,y,z,w coordinates.

See also:
  MATH::CMatrix4, MATH::CVector4Array

## Constructor & Destructor Documentation

__forceinline CVector4 | ( |  | ) |

Default constructor.

__forceinline CVector4 | ( | double | in_dX,
|  | double | in_dY,
|  | double | in_dZ,
|  | double | in_dW |
| ) |  |  |

Constructor.

Parameters:

  | in_dX | Value of the x component
  | in_dY | Value of the y component
  | in_dZ | Value of the z component
  | in_dW | Value of the w component

__forceinline CVector4 | ( | const CVector4 & | in_vector4 | ) |

Copy constructor.

Parameters:

  | in_vector4 | constant class object.

__forceinline ~CVector4 | ( |  | ) |

Default destructor.

## Member Function Documentation

__forceinline CVector4 & operator= | ( | const CVector4 & | in_vector4 | ) |

Assignment operator.

Parameters:

  | in_vector4 | constant class object.

Returns:
  A reference to this quaternion.

__forceinline bool operator== | ( | const CVector4 & | in_vector4 | ) | const

Equality operator tests the strict equality of this vector with the specified vector.

Parameters:

  | in_vector4 | Operand vector.

Returns:
  true if equal else false.

See also:
  CVector4::Equals

__forceinline bool operator!= | ( | const CVector4 & | in_vector4 | ) | const

Inequality operator tests the strict inequality of this vector with the specified vector.

Parameters:

  | in_vector4 | Operand vector.

Returns:
  true if equal else false.

See also:
  CVector4::Equals

__forceinline CVector4 & operator~ | ( |  | ) |

Negates this vector (this = - this).

Returns:
  A reference to this vector.

See also:
  CVector4::NegateInPlace

__forceinline CVector4 & operator+= | ( | const CVector4 & | in_vector4 | ) |

Adds the input vector to this one (this = this + in_vector4).

Parameters:

  | in_vector4 | Operand vector.

Returns:
  A reference to this vector.

See also:
  CVector4::AddInPlace

__forceinline CVector4 & operator-= | ( | const CVector4 & | in_vector4 | ) |

Subtracts the input vector4 (in_vector4) from this one (this = this - in_vector4).

Parameters:

  | in_vector4 | Operand vector.

Returns:
  A reference to this vector.

See also:
  CVector4::SubInPlace

__forceinline CVector4 & operator *= | ( | const CMatrix4 & | in_matrix4 | ) |

Right-multiplies this vector by the matrix m in place. (this = this . m )

Parameters:

  | in_matrix4 | Operand matrix.

Returns:
  A reference to this vector.

See also:
  CVector4::MulByMatrix4InPlace

__forceinline CVector4 & operator *= | ( | const CTransformation & | in_transformation | ) |

Right-multiplies this vector by the transformation t in place (this = this . t).

Parameters:

  | in_transformation | transformation operand.

Returns:
  A reference to this vector.

See also:
  CVector4::MulByTransformationInPlace

__forceinline CVector4 & operator *= | ( | const double & | in_dAlpha | ) |

Scales this vector by the input scalar (alpha) (this = alpha * this).

Parameters:

  | in_dAlpha | Scalar multiplicator.

Returns:
  A reference to this vector.

See also:
  CVector4::ScaleInPlace

double operator[] | ( | const short & | in_sIndex | ) |

Read-only accessors to the X,Y,Z,W components.

Parameters:

  | in_sIndex | 0,1,2,3 for X,Y,Z and W values.

Returns:
  The value of the specified component. If the index supplied is out of range the function returns DBL_MAX.

See also:
  CVector4::GetX(), CVector4::GetY(), CVector4::GetZ(), CVector4::GetW()

__forceinline CVector4 & MulByMatrix4InPlace | ( | const CMatrix4 & | in_matrix4 | ) |

Right-multiplies this vector by the matrix m in place (this = this . m ).

Parameters:

  | in_matrix4 | Operand matrix.

Returns:
  A reference to this vector.

__forceinline CVector4 & MulByMatrix4 | ( | const CVector4 & | in_vector4,
|  | const CMatrix4 & | in_matrix4 |
| ) |  |  |

Right-multiplies the vector v by the matrix m and store the result in this vector (this = v . m ).

Parameters:

  | in_vector4 | Operand vector
  | in_matrix4 | Operand matrix.

Returns:
  A reference to this vector.

__forceinline CVector4 & MulByTransformationInPlace | ( | const CTransformation & | in_transformation | ) |

Right-multiplies this vector by the transformation t in place (this = this . t).

Parameters:

  | in_transformation | transformation operand.

Returns:
  A reference to this vector.

__forceinline CVector4& MulByTransformation | ( | const CVector4 & | in_vector4,
|  | const CTransformation & | in_transformation |
| ) |  |  |

Right-multiplies the vector v by the transformation t and store the result in this vector (this = v . t ).

Parameters:

  | in_vector4 | transformation operand.
  | in_transformation | transformation operand.

Returns:
  A reference to this vector.

__forceinline CVector4 & PutNull | ( |  | ) |

Sets this vector to a null vector.

Returns:
  A reference to this vector.

double GetLength | ( |  | ) | const

Returns the length of this vector.

Returns:
  Length of this vector.

double GetLengthSquared | ( |  | ) | const

Returns the squared length of this vector.

Returns:
  Squared length of this vector.

CStatus NormalizeInPlace | ( |  | ) |

Normalizes this vector in place.

Returns:
  CStatus::OK if the normalization has been computed,

CStatus Normalize | ( | const CVector4 & | in_vector4 | ) |

Sets the value of this vector to the normalization of inputed vector.

Parameters:

  | in_vector4 | vector operand.

Returns:
  CStatus::OK if the normalization has been computed.

__forceinline double Dot | ( | const CVector4 & | in_vector4 | ) | const

Returns the dot product of this vector and the inputed vector.

Parameters:

  | in_vector4 | vector operand.

Returns:
  Dot product of this vector and vector in_vector4.

__forceinline CVector4& Cross | ( | const CVector4 & | in_vector4A,
|  | const CVector4 & | in_vector4B |
| ) |  |  |

Sets this vector to the vector cross product of vectors A and B.

Parameters:

  | in_vector4A | vector operand.
  | in_vector4B | vector operand.

Returns:
  A reference to this vector.

CVector4& AbsoluteInPlace | ( |  | ) |

Sets each component of this vector to its absolute value.

Returns:
  A reference to this vector.

CVector4& Absolute | ( | const CVector4 & | in_vector4 | ) |

Sets each component of the specified vector to its absolute value and places the modified values into this vector

Parameters:

  | in_vector4 | Vector to make absolute

Returns:
  A reference to this vector.

bool EpsilonEquals | ( | const CVector4 & | in_vector4,
|  | double | in_dEpsilon |
| ) |  |  | const

Tests the equality of this vector with the vector in_vector3, with a tolerance of Epsilon.

Parameters:

  | in_vector4 | Operand vector.
  | in_dEpsilon | Error margin Possible Values: [0, +INF[ should be a positive value

Returns:
  true if equal else false.

__forceinline bool Equals | ( | const CVector4 & | in_vector4 | ) | const

Tests the strict equality of this vector with the vector in_vector3.

Parameters:

  | in_vector4 | Operand vector.

Returns:
  true if equal else false.

__forceinline CVector4 & ScaleAddInPlace | ( | double | in_dS,
|  | const CVector4 & | in_vector4 |
| ) |  |  |

Sets the value of this vector to the scalar multiplication of itself by s and then adds vector v (this = s*this + v).

Parameters:

  | in_dS | Scalar multiplicator.
  | in_vector4 | Operand vector.

Returns:
  A reference to this vector.

__forceinline CVector4 & ScaleAdd | ( | double | in_dS,
|  | const CVector4 & | in_vector4A,
|  | const CVector4 & | in_vector4B |
| ) |  |  |

Sets the value of this vector to the scalar multiplication of vector A by s and then adds vector B (this = s*v1 + v2).

Parameters:

  | in_dS | Scalar multiplicator.
  | in_vector4A | Operand vector.
  | in_vector4B | Operand vector.

Returns:
  A reference to this vector.

__forceinline CVector4 & ScaleInPlace | ( | double | in_dAlpha | ) |

Scales this vector by the input scalar (alpha) (this = alpha * this).

Parameters:

  | in_dAlpha | Scalar multiplicator.

Returns:
  A reference to this vector.

__forceinline CVector4 & Scale | ( | double | in_dAlpha,
|  | const CVector4 & | in_vector4 |
| ) |  |  |

Scales the input vector (v) by (alpha) store the result into this one (this = alpha * v).

Parameters:

  | in_dAlpha | Scalar multiplicator.
  | in_vector4 | Operand vector.

Returns:
  A reference to this vector.

__forceinline CVector4 & NegateInPlace | ( |  | ) |

Negates this vector (this = - this).

Returns:
  A reference to this vector.

__forceinline CVector4 & Negate | ( | const CVector4 & | in_vector4 | ) |

Negates the input vector (v) store the result into this one (this = - v).

Parameters:

  | in_vector4 | Operand vector.

Returns:
  A reference to this vector.

__forceinline CVector4 & SubInPlace | ( | const CVector4 & | in_vector4 | ) |

Subtracts the input vector (v) from this one (this = this - v).

Parameters:

  | in_vector4 | Operand vector.

Returns:
  A reference to this vector.

__forceinline CVector4 & Sub | ( | const CVector4 & | in_vector4A,
|  | const CVector4 & | in_vector4B |
| ) |  |  |

Subtracts the input vector (A) from the input vector (B) and stores the result into this one (this = A - B).

Parameters:

  | in_vector4A | Operand vector.
  | in_vector4B | Operand vector.

Returns:
  A reference to this vector.

__forceinline CVector4 & AddInPlace | ( | const CVector4 & | in_vector4 | ) |

Adds the input vector to this one (this = this + in_vector3).

Parameters:

  | in_vector4 | Operand vector.

Returns:
  A reference to this vector.

__forceinline CVector4 & Add | ( | const CVector4 & | in_vector4A,
|  | const CVector4 & | in_vector4B |
| ) |  |  |

Adds both input vectors and store the result in this one (this = A + B).

Parameters:

  | in_vector4A | Operand vector.
  | in_vector4B | Operand vector.

Returns:
  A reference to this vector.

__forceinline void Get | ( | double & | out_dX,
|  | double & | out_dY,
|  | double & | out_dZ,
|  | double & | out_dW |
| ) |  |  | const

Returns the X, Y, Z and W values of the vector.

Return values:

  | out_dX | X value to get in the vector.
  | out_dY | Y value to get in the vector.
  | out_dZ | Z value to get in the vector.
  | out_dW | W value to get in the vector.

__forceinline CVector4 & Set | ( | double | in_dX,
|  | double | in_dY,
|  | double | in_dZ,
|  | double | in_dW |
| ) |  |  |

Sets the X, Y, Z and W values of the vector.

Parameters:

  | in_dX | X value to set in the vector.
  | in_dY | Y value to set in the vector.
  | in_dZ | Z value to set in the vector.
  | in_dW | W value to set in the vector.

Returns:
  A reference to the vector.

__forceinline double GetW | ( |  | ) | const

Returns the W value of this vector.

Returns:
  W value of this vector.

__forceinline CVector4 & PutW | ( | double | in_dW | ) |

Sets the W value of this vector.

Parameters:

  | in_dW | z value.

Returns:
  A reference to this vector.

__forceinline double GetZ | ( |  | ) | const

Returns the Z value of this vector.

Returns:
  Z value of this vector.

__forceinline CVector4 & PutZ | ( | double | in_dZ | ) |

Sets the Z value of this vector.

Parameters:

  | in_dZ | z value.

Returns:
  A reference to this vector.

__forceinline double GetY | ( |  | ) | const

Returns the Y value of this vector.

Returns:
  Y value of this vector.

__forceinline CVector4 & PutY | ( | double | in_dY | ) |

Sets the Y value of this vector.

Parameters:

  | in_dY | y value.

Returns:
  A reference to this vector.

__forceinline double GetX | ( |  | ) | const

Returns the X value of this vector.

Returns:
  X value of this vector.

__forceinline CVector4 & PutX | ( | double | in_dX | ) |

Sets the X value of this vector.

Parameters:

  | in_dX | x value.

Returns:
  A reference to this vector.

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

- xsi_vector4.h