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

#include <matvec3.h>

Inheritance diagram for CGR_Rot::MatR_Manip:
Collaboration diagram for CGR_Rot::MatR_Manip:

Public Member Functions

 MatR_Manip ()
void Manipulate (Mat3x3 &m, const Vec3 &g) const
- Public Member Functions inherited from Mat3x3_Manip
virtual void Manipulate (Mat3x3 &m) const
virtual void Manipulate (Mat3x3 &m, const doublereal d) const
virtual void Manipulate (Mat3x3 &m, const Vec3 &v1, const Vec3 &v2) const
virtual ~Mat3x3_Manip (void)

Detailed Description

Definition at line 1684 of file matvec3.h.

Constructor & Destructor Documentation

CGR_Rot::MatR_Manip::MatR_Manip ( )

Definition at line 1686 of file matvec3.h.

1686 {}

Member Function Documentation

void CGR_Rot::MatR_Manip::Manipulate ( Mat3x3 m,
const Vec3 g 
) const

Reimplemented from Mat3x3_Manip.

Definition at line 1690 of file matvec3.h.

References Vec3::Dot().

1690  {
1691  doublereal d = (4./(4. + g.Dot()));
1693  /*
1694  m = Eye3;
1695  m += Mat3x3(g*d);
1696  */
1698  /* E' piu' efficiente se creo contemporaneamente I+d*g/\ */
1699  m = Mat3x3(1., g*d);
1701  /* Alla fine sommo il termine d/2*g/\g/\, che e' una matrice piena */
1702  m += Mat3x3(MatCrossCross, g, g*(d/2.));
1703  };
doublereal Dot(const Vec3 &v) const
Definition: matvec3.h:243
const MatCrossCross_Manip MatCrossCross
Definition: matvec3.cc:640
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: