libalmath  2.8.7.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
AL::Math::Position6D Struct Reference

Create and play with a Position6D. More...

#include <alposition6d.h>

Public Member Functions

 Position6D ()
 Create a Position6D initialized with 0.0f. More...
 
 Position6D (float pInit)
 Create a Position6D initialized with the same float. More...
 
 Position6D (float pX, float pY, float pZ, float pWx, float pWy, float pWz)
 Create a Position6D initialized with explicit value. More...
 
 Position6D (const std::vector< float > &pFloats)
 Create a Position6D with an std::vector. More...
 
Position6D operator+ (const Position6D &pPos2) const
 Overloading of operator + for Position6D. More...
 
Position6D operator- (const Position6D &pPos2) const
 Overloading of operator - for Position6D. More...
 
Position6D operator+ (void) const
 Overloading of operator + for Position6D. More...
 
Position6D operator- () const
 Overloading of operator - for Position6D. More...
 
Position6Doperator+= (const Position6D &pPos2)
 Overloading of operator += for Position6D. More...
 
Position6Doperator-= (const Position6D &pPos2)
 Overloading of operator -= for Position6D. More...
 
bool operator== (const Position6D &pPos2) const
 Overloading of operator == for Position6D. More...
 
bool operator!= (const Position6D &pPos2) const
 Overloading of operator != for Position6D. More...
 
Position6D operator* (float pVal) const
 Overloading of operator * for Position6D. More...
 
Position6D operator/ (float pVal) const
 Overloading of operator / for Position6D. More...
 
Position6Doperator*= (float pVal)
 Overloading of operator *= for Position6D. More...
 
Position6Doperator/= (float pVal)
 Overloading of operator /= for Position6D. More...
 
bool isNear (const Position6D &pPos2, const float &pEpsilon=0.0001f) const
 Check if the actual Position6D is near the one given in argument. More...
 
float distanceSquared (const Position6D &pPos2) const
 Compute the squared distance of translation part (x, y and z) between the actual Position6D and the one give in argument: More...
 
float distance (const Position6D &pPos2) const
 Compute the distance of translation part (x, y and z) between the actual Position6D and the one give in argument: More...
 
float norm () const
 Compute the norm of the actual Position6D: More...
 
void toVector (std::vector< float > &pReturnVector) const
 Return the Position6D as a vector of float [x, y, z, wx, wy, wz]. More...
 
std::vector< float > toVector (void) const
 
void writeToVector (std::vector< float >::iterator &pIt) const
 Write [x, y, z, wx, wy, wz] in the vector and update the iterator. It is assumed the vector has enough space. More...
 

Public Attributes

float x
 
float y
 
float z
 
float wx
 
float wy
 
float wz
 

Detailed Description

Create and play with a Position6D.

A Position6D is just defined by x, y, z, wx, wy and wz.

Definition at line 24 of file alposition6d.h.

Constructor & Destructor Documentation

AL::Math::Position6D::Position6D ( )

Create a Position6D initialized with 0.0f.

$ \left[\begin{array}{c} x \\ y \\ z \\ wx \\ wy \\ wz \end{array}\right] = \left[\begin{array}{c} 0.0 \\ 0.0 \\ 0.0 \\ 0.0 \\ 0.0 \\ 0.0 \end{array}\right]$

AL::Math::Position6D::Position6D ( float  pInit)
explicit

Create a Position6D initialized with the same float.

$ \left[\begin{array}{c} x \\ y \\ z \\ wx \\ wy \\ wz \end{array}\right] = \left[\begin{array}{c} pInit \\ pInit \\ pInit \\ pInit \\ pInit \\ pInit \end{array}\right]$

Parameters
pInitthe float value for each member
AL::Math::Position6D::Position6D ( float  pX,
float  pY,
float  pZ,
float  pWx,
float  pWy,
float  pWz 
)

Create a Position6D initialized with explicit value.

$ \left[\begin{array}{c} x \\ y \\ z \\ wx \\ wy \\ wz \end{array}\right] = \left[\begin{array}{c} pX \\ pY \\ pZ \\ pWx \\ pWy \\ pWz \end{array}\right]$

Parameters
pXthe float value for x
pYthe float value for y
pZthe float value for z
pWxthe float value for wx
pWythe float value for wy
pWzthe float value for wz
AL::Math::Position6D::Position6D ( const std::vector< float > &  pFloats)

Create a Position6D with an std::vector.

$ \left[\begin{array}{c} x \\ y \\ z \\ wx \\ wy \\ wz \end{array}\right] = \left[\begin{array}{c} pFloats[0] \\ pFloats[1] \\ pFloats[2] \\ pFloats[3] \\ pFloats[4] \\ pFloats[5] \end{array}\right]$

Parameters
pFloatsAn std::vector<float> of size 6 for respectively: x, y, z, wx, wy and wz

Member Function Documentation

float AL::Math::Position6D::distance ( const Position6D pPos2) const

Compute the distance of translation part (x, y and z) between the actual Position6D and the one give in argument:

$\sqrt{(pPos1.x-pPos2.x)^2+(pPos1.y-pPos2.y)^2+(pPos1.z-pPos2.z)^2}$

Parameters
pPos2the second Position6D
Returns
the float distance between the two Position6D
float AL::Math::Position6D::distanceSquared ( const Position6D pPos2) const

Compute the squared distance of translation part (x, y and z) between the actual Position6D and the one give in argument:

$(pPos1.x-pPos2.x)^2+(pPos1.y-pPos2.y)^2+(pPos1.z-pPos2.z)^2$

Parameters
pPos2the second Position6D
Returns
the float squared distance between the two Position6D
bool AL::Math::Position6D::isNear ( const Position6D pPos2,
const float &  pEpsilon = 0.0001f 
) const

Check if the actual Position6D is near the one given in argument.

Parameters
pPos2the second Position6D
pEpsilonan optional epsilon distance
Returns
true if the difference of each float of the two Position6D is less than pEpsilon
float AL::Math::Position6D::norm ( ) const

Compute the norm of the actual Position6D:

$\sqrt{pPos.x^2 + pPos.y^2 + pPos.z^2 + pPos.wx^2 + pPos.wy^2 + pPos.wz^2}$

Returns
the float norm of the Position6D
bool AL::Math::Position6D::operator!= ( const Position6D pPos2) const

Overloading of operator != for Position6D.

Parameters
pPos2the second Position6D
Position6D AL::Math::Position6D::operator* ( float  pVal) const
inline

Overloading of operator * for Position6D.

Parameters
pValthe float factor

Definition at line 226 of file alposition6d.h.

Position6D& AL::Math::Position6D::operator*= ( float  pVal)

Overloading of operator *= for Position6D.

Parameters
pValthe float factor
Position6D AL::Math::Position6D::operator+ ( const Position6D pPos2) const
inline

Overloading of operator + for Position6D.

Parameters
pPos2the second Position6D

Definition at line 156 of file alposition6d.h.

Position6D AL::Math::Position6D::operator+ ( void  ) const
inline

Overloading of operator + for Position6D.

Definition at line 185 of file alposition6d.h.

Position6D& AL::Math::Position6D::operator+= ( const Position6D pPos2)

Overloading of operator += for Position6D.

Parameters
pPos2the second Position6D
Position6D AL::Math::Position6D::operator- ( const Position6D pPos2) const
inline

Overloading of operator - for Position6D.

Parameters
pPos2the second Position6D

Definition at line 171 of file alposition6d.h.

Position6D AL::Math::Position6D::operator- ( ) const
inline

Overloading of operator - for Position6D.

Definition at line 193 of file alposition6d.h.

Position6D& AL::Math::Position6D::operator-= ( const Position6D pPos2)

Overloading of operator -= for Position6D.

Parameters
pPos2the second Position6D
Position6D AL::Math::Position6D::operator/ ( float  pVal) const

Overloading of operator / for Position6D.

Parameters
pValthe float factor
Position6D& AL::Math::Position6D::operator/= ( float  pVal)

Overloading of operator /= for Position6D.

Parameters
pValthe float factor
bool AL::Math::Position6D::operator== ( const Position6D pPos2) const

Overloading of operator == for Position6D.

Parameters
pPos2the second Position6D
void AL::Math::Position6D::toVector ( std::vector< float > &  pReturnVector) const

Return the Position6D as a vector of float [x, y, z, wx, wy, wz].

std::vector<float> AL::Math::Position6D::toVector ( void  ) const
void AL::Math::Position6D::writeToVector ( std::vector< float >::iterator &  pIt) const

Write [x, y, z, wx, wy, wz] in the vector and update the iterator. It is assumed the vector has enough space.

Member Data Documentation

float AL::Math::Position6D::wx

Definition at line 32 of file alposition6d.h.

float AL::Math::Position6D::wy

Definition at line 34 of file alposition6d.h.

float AL::Math::Position6D::wz

Definition at line 36 of file alposition6d.h.

float AL::Math::Position6D::x

Definition at line 26 of file alposition6d.h.

float AL::Math::Position6D::y

Definition at line 28 of file alposition6d.h.

float AL::Math::Position6D::z

Definition at line 30 of file alposition6d.h.


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