FEDEM Solver  R8.0
Source code of the dynamics solver
Public Member Functions | Static Public Member Functions | Private Attributes | Friends | List of all members
FaMat33 Class Reference

#include <FFaMat33.H>

Collaboration diagram for FaMat33:
Collaboration graph
[legend]

Public Member Functions

 FaMat33 ()
 
 FaMat33 (const float *mat)
 
 FaMat33 (const double *mat)
 
 FaMat33 (const FaVec3 &v0, const FaVec3 &v1, const FaVec3 &v2)
 
 FaMat33 (const FaMat33 &m)
 
FaMat33operator= (const FaMat33 &m)
 
FaMat33operator+= (const FaMat33 &m)
 
FaMat33operator-= (const FaMat33 &m)
 
FaMat33operator*= (double d)
 
FaMat33operator/= (double d)
 
const FaVec3operator[] (int i) const
 
FaVec3operator[] (int i)
 
const double & operator() (int i, int j) const
 
double & operator() (int i, int j)
 
FaMat33 inverse (double eps=1.0e-16) const
 
FaMat33setIdentity ()
 
FaMat33 transpose () const
 
FaMat33shift (int delta)
 
bool isCoincident (const FaMat33 &m, double tolerance=1.0e-10) const
 
FaMat33makeGlobalizedCS (const FaVec3 &v1)
 
FaMat33makeGlobalizedCS (const FaVec3 &v1, const FaVec3 &v2)
 
FaMat33makeGlobalizedCS (const FaVec3 &v0, const FaVec3 &v1, const FaVec3 &v2)
 
FaMat33makeGlobalizedCS (const FaVec3 &v1, const FaVec3 &v2, const FaVec3 &v3, const FaVec3 &v4)
 
FaMat33eulerRotateZYX (const FaVec3 &angles)
 
FaMat33incRotate (const FaVec3 &angles)
 
FaVec3 getEulerZYX () const
 
FaVec3 getRotation () const
 

Static Public Member Functions

static FaMat33 makeZrotation (double angle)
 
static FaMat33 makeYrotation (double angle)
 
static FaMat33 makeXrotation (double angle)
 

Private Attributes

FaVec3 v [3]
 

Friends

FaMat33 operator- (const FaMat33 &a)
 
FaMat33 operator+ (const FaMat33 &a, const FaMat33 &b)
 
FaMat33 operator- (const FaMat33 &a, const FaMat33 &b)
 
FaMat33 operator* (const FaMat33 &a, const FaMat33 &b)
 
FaMat33 operator* (const FaMat33 &a, double d)
 
FaMat33 operator* (double d, const FaMat33 &a)
 
FaVec3 operator* (const FaMat33 &a, const FaVec3 &b)
 
FaMat33 operator/ (const FaMat33 &a, double d)
 
int operator== (const FaMat33 &a, const FaMat33 &b)
 
int operator!= (const FaMat33 &a, const FaMat33 &b)
 
std::ostream & operator<< (std::ostream &s, const FaMat33 &m)
 
std::istream & operator>> (std::istream &s, FaMat33 &m)
 

Constructor & Destructor Documentation

◆ FaMat33() [1/5]

FaMat33::FaMat33 ( )
inline

◆ FaMat33() [2/5]

FaMat33::FaMat33 ( const float *  mat)

Matrix layout :

[0][0] [1][0] [2][0]

[0][1] [1][1] [2][1]

[0][2] [1][2] [2][2]

◆ FaMat33() [3/5]

FaMat33::FaMat33 ( const double *  mat)

◆ FaMat33() [4/5]

FaMat33::FaMat33 ( const FaVec3 v0,
const FaVec3 v1,
const FaVec3 v2 
)

◆ FaMat33() [5/5]

FaMat33::FaMat33 ( const FaMat33 m)
inline

Member Function Documentation

◆ eulerRotateZYX()

FaMat33 & FaMat33::eulerRotateZYX ( const FaVec3 angles)

Compute an incremental rotation tensor from the given Euler angles.

◆ getEulerZYX()

FaVec3 FaMat33::getEulerZYX ( ) const

Return the Euler angles corresponding to an incremental rotation.

◆ getRotation()

FaVec3 FaMat33::getRotation ( ) const

Return the rotation angles corresponding to an incremental rotation. This function is equivalent to the Fortran subroutine mat_to_vec in module rotationModule (vpmUtilitiesF90).

◆ incRotate()

FaMat33 & FaMat33::incRotate ( const FaVec3 angles)

Compute an incremental rotation tensor from the given rotation angles via a quaternion representation of the rotation. This function is equivalent to subroutine vec_to_mat in the Fortran module rotationModule (vpmUtilitiesF90). The angles provided are those related to a Rodrigues parameterization. Rotation axis, with length equal to the angle to rotate about that axis.

◆ inverse()

FaMat33 FaMat33::inverse ( double  eps = 1.0e-16) const

◆ isCoincident()

bool FaMat33::isCoincident ( const FaMat33 m,
double  tolerance = 1.0e-10 
) const

◆ makeGlobalizedCS() [1/4]

FaMat33 & FaMat33::makeGlobalizedCS ( const FaVec3 v0,
const FaVec3 v1,
const FaVec3 v2 
)

◆ makeGlobalizedCS() [2/4]

FaMat33 & FaMat33::makeGlobalizedCS ( const FaVec3 v1)

Compute a globalized coordinate system where the X-axis is parallel to the given vector v1, and the two other axes are as close as possible to the corresponding global coordinate axes.

◆ makeGlobalizedCS() [3/4]

FaMat33 & FaMat33::makeGlobalizedCS ( const FaVec3 v1,
const FaVec3 v2 
)

Compute a globalized coordinate system in the plane defined by the two given vectors v1 and v2, such that the local Z-axis is parallell to the normal vector of the plane, and the two other axes are as close as possible to the corresponding global coordinate axes.

◆ makeGlobalizedCS() [4/4]

FaMat33 & FaMat33::makeGlobalizedCS ( const FaVec3 v1,
const FaVec3 v2,
const FaVec3 v3,
const FaVec3 v4 
)

◆ makeXrotation()

FaMat33 FaMat33::makeXrotation ( double  angle)
static

◆ makeYrotation()

FaMat33 FaMat33::makeYrotation ( double  angle)
static

◆ makeZrotation()

FaMat33 FaMat33::makeZrotation ( double  angle)
static

◆ operator()() [1/2]

double & FaMat33::operator() ( int  i,
int  j 
)
inline

◆ operator()() [2/2]

const double & FaMat33::operator() ( int  i,
int  j 
) const
inline

◆ operator*=()

FaMat33 & FaMat33::operator*= ( double  d)

◆ operator+=()

FaMat33 & FaMat33::operator+= ( const FaMat33 m)

◆ operator-=()

FaMat33 & FaMat33::operator-= ( const FaMat33 m)

◆ operator/=()

FaMat33 & FaMat33::operator/= ( double  d)

◆ operator=()

FaMat33 & FaMat33::operator= ( const FaMat33 m)

◆ operator[]() [1/2]

FaVec3 & FaMat33::operator[] ( int  i)
inline

◆ operator[]() [2/2]

const FaVec3 & FaMat33::operator[] ( int  i) const
inline

◆ setIdentity()

FaMat33 & FaMat33::setIdentity ( )

◆ shift()

FaMat33 & FaMat33::shift ( int  delta)

◆ transpose()

FaMat33 FaMat33::transpose ( ) const

Friends And Related Function Documentation

◆ operator!=

int operator!= ( const FaMat33 a,
const FaMat33 b 
)
friend

◆ operator* [1/4]

FaMat33 operator* ( const FaMat33 a,
const FaMat33 b 
)
friend

◆ operator* [2/4]

FaVec3 operator* ( const FaMat33 a,
const FaVec3 b 
)
friend

◆ operator* [3/4]

FaMat33 operator* ( const FaMat33 a,
double  d 
)
friend

◆ operator* [4/4]

FaMat33 operator* ( double  d,
const FaMat33 a 
)
friend

◆ operator+

FaMat33 operator+ ( const FaMat33 a,
const FaMat33 b 
)
friend

◆ operator- [1/2]

FaMat33 operator- ( const FaMat33 a)
friend

◆ operator- [2/2]

FaMat33 operator- ( const FaMat33 a,
const FaMat33 b 
)
friend

◆ operator/

FaMat33 operator/ ( const FaMat33 a,
double  d 
)
friend

◆ operator<<

std::ostream& operator<< ( std::ostream &  s,
const FaMat33 m 
)
friend

◆ operator==

int operator== ( const FaMat33 a,
const FaMat33 b 
)
friend

◆ operator>>

std::istream& operator>> ( std::istream &  s,
FaMat33 m 
)
friend

Member Data Documentation

◆ v

FaVec3 FaMat33::v[3]
private

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