All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
CGR_Rot::Param_Manip Class Reference

#include <matvec3.h>

Inheritance diagram for CGR_Rot::Param_Manip:
Collaboration diagram for CGR_Rot::Param_Manip:

Public Member Functions

 Param_Manip ()
void Manipulate (Vec3 &v, const Mat3x3 &m) const
- Public Member Functions inherited from Vec3_Manip
virtual ~Vec3_Manip (void)

Detailed Description

Definition at line 1664 of file matvec3.h.

Constructor & Destructor Documentation

CGR_Rot::Param_Manip::Param_Manip ( )

Definition at line 1666 of file matvec3.h.

1666 {};

Member Function Documentation

void CGR_Rot::Param_Manip::Manipulate ( Vec3 v,
const Mat3x3 m 
) const

Implements Vec3_Manip.

Definition at line 1667 of file matvec3.h.

References Mat3x3::Ax(), grad::fabs(), MBDYN_EXCEPT_ARGS, and Mat3x3::Trace().

1667  {
1668  // singularity test
1669  doublereal d = 1. + m.Trace();
1671  if (fabs(d) < std::numeric_limits<doublereal>::epsilon()) {
1672  silent_cerr("Param_Manip(): divide by zero, "
1673  "probably due to singularity in rotation parameters" << std::endl);
1675  }
1677  v = m.Ax()*(4./d);
1678  };
Vec3 Ax(void) const
Definition: matvec3.h:827
Definition: except.h:63
GradientExpression< UnaryExpr< FuncFabs, Expr > > fabs(const GradientExpression< Expr > &u)
Definition: gradient.h:2973
doublereal Trace(void) const
Definition: matvec3.h:836
double doublereal
Definition: colamd.c:52

Here is the call graph for this function:

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