#include <xsi_vector4.h>
A 4-element vector that is represented by double precision floating point x,y,z,w coordinates.
Public Member Functions |
|
SICPPSDK_INLINE | CVector4 () |
SICPPSDK_INLINE | CVector4 (double in_dX, double in_dY, double in_dZ, double in_dW) |
SICPPSDK_INLINE | CVector4 (const CVector4 &in_vector4) |
SICPPSDK_INLINE | ~CVector4 () |
SICPPSDK_INLINE CVector4 & | operator= (const CVector4 &in_vector4) |
SICPPSDK_INLINE bool | operator== (const CVector4 &in_vector4) const |
SICPPSDK_INLINE bool | operator!= (const CVector4 &in_vector4) const |
SICPPSDK_INLINE CVector4 & | operator~ () |
SICPPSDK_INLINE CVector4 & | operator+= (const CVector4 &in_vector4) |
SICPPSDK_INLINE CVector4 & | operator-= (const CVector4 &in_vector4) |
SICPPSDK_INLINE CVector4 & | operator*= (const CMatrix4 &in_matrix4) |
SICPPSDK_INLINE CVector4 & | operator*= (const CTransformation &in_transformation) |
SICPPSDK_INLINE CVector4 & | operator*= (const double &in_dAlpha) |
double | operator[] (const short &in_sIndex) |
SICPPSDK_INLINE CVector4 & | MulByMatrix4InPlace (const CMatrix4 &in_matrix4) |
SICPPSDK_INLINE CVector4 & | MulByMatrix4 (const CVector4 &in_vector4, const CMatrix4 &in_matrix4) |
SICPPSDK_INLINE CVector4 & | MulByTransformationInPlace (const CTransformation &in_transformation) |
SICPPSDK_INLINE CVector4 & | MulByTransformation (const CVector4 &in_vector4, const CTransformation &in_transformation) |
SICPPSDK_INLINE CVector4 & | PutNull () |
double | GetLength () const |
double | GetLengthSquared () const |
CStatus | NormalizeInPlace () |
CStatus | Normalize (const CVector4 &in_vector4) |
SICPPSDK_INLINE double | Dot (const CVector4 &in_vector4) const |
SICPPSDK_INLINE 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 |
SICPPSDK_INLINE bool | Equals (const CVector4 &in_vector4) const |
SICPPSDK_INLINE CVector4 & | ScaleAddInPlace (double in_dS, const CVector4 &in_vector4) |
SICPPSDK_INLINE CVector4 & | ScaleAdd (double in_dS, const CVector4 &in_vector4A, const CVector4 &in_vector4B) |
SICPPSDK_INLINE CVector4 & | ScaleInPlace (double in_dAlpha) |
SICPPSDK_INLINE CVector4 & | Scale (double in_dAlpha, const CVector4 &in_vector4) |
SICPPSDK_INLINE CVector4 & | NegateInPlace () |
SICPPSDK_INLINE CVector4 & | Negate (const CVector4 &in_vector4) |
SICPPSDK_INLINE CVector4 & | SubInPlace (const CVector4 &in_vector4) |
SICPPSDK_INLINE CVector4 & | Sub (const CVector4 &in_vector4A, const CVector4 &in_vector4B) |
SICPPSDK_INLINE CVector4 & | AddInPlace (const CVector4 &in_vector4) |
SICPPSDK_INLINE CVector4 & | Add (const CVector4 &in_vector4A, const CVector4 &in_vector4B) |
SICPPSDK_INLINE void | Get (double &out_dX, double &out_dY, double &out_dZ, double &out_dW) const |
SICPPSDK_INLINE CVector4 & | Set (double in_dX, double in_dY, double in_dZ, double in_dW) |
SICPPSDK_INLINE double | GetW () const |
SICPPSDK_INLINE CVector4 & | PutW (double in_dW) |
SICPPSDK_INLINE double | GetZ () const |
SICPPSDK_INLINE CVector4 & | PutZ (double in_dZ) |
SICPPSDK_INLINE double | GetY () const |
SICPPSDK_INLINE CVector4 & | PutY (double in_dY) |
SICPPSDK_INLINE double | GetX () const |
SICPPSDK_INLINE CVector4 & | PutX (double in_dX) |
SICPPSDK_INLINE CVector4 | ( | ) |
Default constructor.
SICPPSDK_INLINE CVector4 | ( | double | in_dX, |
double | in_dY, | ||
double | in_dZ, | ||
double | in_dW | ||
) |
Constructor.
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 |
Copy constructor.
in_vector4 | constant class object. |
SICPPSDK_INLINE ~CVector4 | ( | ) |
Default destructor.
Assignment operator.
in_vector4 | constant class object. |
SICPPSDK_INLINE bool operator== | ( | const CVector4 & | in_vector4 | ) | const |
Equality operator tests the strict equality of this vector with the specified vector.
in_vector4 | Operand vector. |
SICPPSDK_INLINE bool operator!= | ( | const CVector4 & | in_vector4 | ) | const |
Inequality operator tests the strict inequality of this vector with the specified vector.
in_vector4 | Operand vector. |
SICPPSDK_INLINE CVector4 & operator~ | ( | ) |
Negates this vector (this = - this).
Adds the input vector to this one (this = this + in_vector4).
in_vector4 | Operand vector. |
Subtracts the input vector4 (in_vector4) from this one (this = this - in_vector4).
in_vector4 | Operand vector. |
Right-multiplies this vector by the matrix m in place. (this = this . m )
in_matrix4 | Operand matrix. |
SICPPSDK_INLINE CVector4 & operator*= | ( | const CTransformation & | in_transformation | ) |
Right-multiplies this vector by the transformation t in place (this = this . t).
in_transformation | transformation operand. |
SICPPSDK_INLINE CVector4 & operator*= | ( | const double & | in_dAlpha | ) |
Scales this vector by the input scalar (alpha) (this = alpha * this).
in_dAlpha | Scalar multiplicator. |
double operator[] | ( | const short & | in_sIndex | ) |
Read-only accessors to the X,Y,Z,W components.
in_sIndex | 0,1,2,3 for X,Y,Z and W values. |
Right-multiplies this vector by the matrix m in place (this = this . m ).
in_matrix4 | Operand matrix. |
SICPPSDK_INLINE 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 ).
in_vector4 | Operand vector |
in_matrix4 | Operand matrix. |
SICPPSDK_INLINE CVector4 & MulByTransformationInPlace | ( | const CTransformation & | in_transformation | ) |
Right-multiplies this vector by the transformation t in place (this = this . t).
in_transformation | transformation operand. |
SICPPSDK_INLINE 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 ).
in_vector4 | transformation operand. |
in_transformation | transformation operand. |
SICPPSDK_INLINE CVector4 & PutNull | ( | ) |
double GetLength | ( | ) | const |
double GetLengthSquared | ( | ) | const |
Returns the squared length of this vector.
CStatus NormalizeInPlace | ( | ) |
Normalizes this vector in place.
Sets the value of this vector to the normalization of inputed vector.
in_vector4 | vector operand. |
SICPPSDK_INLINE double Dot | ( | const CVector4 & | in_vector4 | ) | const |
Returns the dot product of this vector and the inputed vector.
in_vector4 | vector operand. |
Sets this vector to the vector cross product of vectors A and B.
in_vector4A | vector operand. |
in_vector4B | vector operand. |
CVector4& AbsoluteInPlace | ( | ) |
Sets each component of this vector to its absolute value.
Sets each component of the specified vector to its absolute value and places the modified values into this vector
in_vector4 | Vector to make absolute |
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.
in_vector4 | Operand vector. |
in_dEpsilon | Error margin Possible Values: [0, +INF[ should be a positive value |
SICPPSDK_INLINE bool Equals | ( | const CVector4 & | in_vector4 | ) | const |
Tests the strict equality of this vector with the vector in_vector3.
in_vector4 | Operand vector. |
Sets the value of this vector to the scalar multiplication of itself by s and then adds vector v (this = s*this + v).
in_dS | Scalar multiplicator. |
in_vector4 | Operand vector. |
SICPPSDK_INLINE 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).
in_dS | Scalar multiplicator. |
in_vector4A | Operand vector. |
in_vector4B | Operand vector. |
SICPPSDK_INLINE CVector4 & ScaleInPlace | ( | double | in_dAlpha | ) |
Scales this vector by the input scalar (alpha) (this = alpha * this).
in_dAlpha | Scalar multiplicator. |
Scales the input vector (v) by (alpha) store the result into this one (this = alpha * v).
in_dAlpha | Scalar multiplicator. |
in_vector4 | Operand vector. |
SICPPSDK_INLINE CVector4 & NegateInPlace | ( | ) |
Negates this vector (this = - this).
Negates the input vector (v) store the result into this one (this = - v).
in_vector4 | Operand vector. |
Subtracts the input vector (v) from this one (this = this - v).
in_vector4 | Operand vector. |
Subtracts the input vector (in_vector4B
) from the
input vector (in_vector4A
) and stores the result into
this one (this = in_vector4A - in_vector4A
).
in_vector4A | Operand vector. |
in_vector4B | Operand vector. |
Adds the input vector to this one (this = this + in_vector3).
in_vector4 | Operand vector. |
Adds both input vectors and store the result in this one (this = A + B).
in_vector4A | Operand vector. |
in_vector4B | Operand vector. |
SICPPSDK_INLINE 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.
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. |
SICPPSDK_INLINE 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.
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. |
SICPPSDK_INLINE double GetW | ( | ) | const |
SICPPSDK_INLINE CVector4 & PutW | ( | double | in_dW | ) |
Sets the W value of this vector.
in_dW | z value. |
SICPPSDK_INLINE double GetZ | ( | ) | const |
SICPPSDK_INLINE CVector4 & PutZ | ( | double | in_dZ | ) |
Sets the Z value of this vector.
in_dZ | z value. |
SICPPSDK_INLINE double GetY | ( | ) | const |
SICPPSDK_INLINE CVector4 & PutY | ( | double | in_dY | ) |
Sets the Y value of this vector.
in_dY | y value. |
SICPPSDK_INLINE double GetX | ( | ) | const |
SICPPSDK_INLINE CVector4 & PutX | ( | double | in_dX | ) |
Sets the X value of this vector.
in_dX | x value. |