SOFA API  56988ca1 Open source framework for multi-physics simuation
sofa::type::DualQuatCoord3< real > Class Template Reference

`#include <DualQuat.h>`

Public Member Functions

DualQuatCoord3 (const Quat &Dual, const Quat &orient)

template<typename real2 >
DualQuatCoord3 (const DualQuatCoord3< real2 > &c)

DualQuatCoord3 (const Pos &p, const sofa::type::Quat< real > &q)

DualQuatCoord3 ()

void clear ()

~DualQuatCoord3 ()

real * ptr ()

const real * ptr () const

void setTranslation (const Vec3 &p)

Vec3 getTranslation ()

QuatgetDual ()

QuatgetOrientation ()

const QuatgetDual () const

const QuatgetOrientation () const

real norm2 () const

real norm () const

void normalize ()

void invert ()

template<typename real2 >
void toMatrix (type::Mat< 3, 4, real2 > &m) const

template<typename real2 >
void toRotationMatrix (type::Mat< 3, 3, real2 > &m) const

Vec3 rotate (const Vec3 &v) const

Vec3 inverseRotate (const Vec3 &v) const

DualQuatCoord3< real > inverse ()

DualQuatCoord3< real > multRight (const DualQuatCoord3< real > &c) const

DualQuatCoord3< real > multLeft (const DualQuatCoord3< real > &c)

Vec3 pointToParent (const Vec3 &p)

Vec3 pointToChild (const Vec3 &v)

Vec3 vectorToChild (const Vec3 &v)

template<typename real2 >
void operator= (const DualQuatCoord3< real2 > &c)

void operator= (const Vec3 &p)

void operator+= (const DualQuatCoord3< real > &a)

template<typename real2 >
void operator*= (real2 a)

template<typename real2 >
void operator/= (real2 a)

template<typename real2 >
DualQuatCoord3< real > operator* (real2 a) const

real operator* (const DualQuatCoord3< real > &a) const

DualQuatCoord3< real > operator+ (const type::Vec< 6, real > &a)

real & operator[] (int i)

const real & operator[] (int i) const

void velocity_getJ (type::Mat< 4, 3, real > &J0, type::Mat< 4, 3, real > &JE)

DualQuatCoord3< real > velocity_applyJ (const type::Vec< 6, real > &a)

type::Vec< 6, real > velocity_applyJT (const DualQuatCoord3< real > &dq)

void normalize_getJ (type::Mat< 4, 4, real > &J0, type::Mat< 4, 4, real > &JE)

DualQuatCoord3< real > normalize_applyJ (const DualQuatCoord3< real > &dq)

DualQuatCoord3< real > normalize_applyJT (const DualQuatCoord3< real > &dqn)

void normalize_getdJ (type::Mat< 4, 4, real > &dJ0, type::Mat< 4, 4, real > &dJE, const DualQuatCoord3< real > &dq)

void multRight_getJ (type::Mat< 4, 4, real > &J0, type::Mat< 4, 4, real > &JE)

void multLeft_getJ (type::Mat< 4, 4, real > &J0, type::Mat< 4, 4, real > &JE)

void pointToParent_getJ (type::Mat< 3, 4, real > &J0, type::Mat< 3, 4, real > &JE, const Vec3 &p)

Vec3 pointToParent_applyJ (const DualQuatCoord3< real > &dq, const Vec3 &p)

DualQuatCoord3< real > pointToParent_applyJT (const Vec3 &dP, const Vec3 &p)

type::Mat< 3, 4, real > rigid_applyH (const DualQuatCoord3< real > &dq)

type::Mat< 3, 3, real > rotation_applyH (const DualQuatCoord3< real > &dq)

DualQuatCoord3< real > rigid_applyHT (const type::Mat< 3, 4, real > &dR)

DualQuatCoord3< real > rotation_applyHT (const type::Mat< 3, 3, real > &dR)

type::Mat< 3, 8, real > pointToParent_applyH (const DualQuatCoord3< real > &dq, const Vec3 &p)

DualQuatCoord3< real > pointToParent_applyHT (const type::Mat< 3, 8, real > &dJ, const Vec3 &p)

Static Public Member Functions

static int max_size ()

static unsigned int size ()

static DualQuatCoord3< real > identity ()

Friends

std::ostream & operator<< (std::ostream &out, const DualQuatCoord3< real > &v)

std::istream & operator>> (std::istream &in, DualQuatCoord3< real > &v)

◆ DualQuatCoord3() [1/4]

template<class real >
 sofa::type::DualQuatCoord3< real >::DualQuatCoord3 ( const Quat & Dual, const Quat & orient )
inline

◆ DualQuatCoord3() [2/4]

template<class real >
template<typename real2 >
 sofa::type::DualQuatCoord3< real >::DualQuatCoord3 ( const DualQuatCoord3< real2 > & c )
inline

◆ DualQuatCoord3() [3/4]

template<class real >
 sofa::type::DualQuatCoord3< real >::DualQuatCoord3 ( const Pos & p, const sofa::type::Quat< real > & q )
inline

◆ DualQuatCoord3() [4/4]

template<class real >
 sofa::type::DualQuatCoord3< real >::DualQuatCoord3 ( )
inline

◆ ~DualQuatCoord3()

template<class real >
 sofa::type::DualQuatCoord3< real >::~DualQuatCoord3 ( )
inline

◆ clear()

template<class real >
 void sofa::type::DualQuatCoord3< real >::clear ( )
inline

◆ getDual() [1/2]

template<class real >
 Quat& sofa::type::DualQuatCoord3< real >::getDual ( )
inline

◆ getDual() [2/2]

template<class real >
 const Quat& sofa::type::DualQuatCoord3< real >::getDual ( ) const
inline

◆ getOrientation() [1/2]

template<class real >
 Quat& sofa::type::DualQuatCoord3< real >::getOrientation ( )
inline

◆ getOrientation() [2/2]

template<class real >
 const Quat& sofa::type::DualQuatCoord3< real >::getOrientation ( ) const
inline

◆ getTranslation()

template<class real >
 Vec3 sofa::type::DualQuatCoord3< real >::getTranslation ( )
inline

◆ identity()

template<class real >
 static DualQuatCoord3 sofa::type::DualQuatCoord3< real >::identity ( )
inlinestatic

◆ inverse()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::inverse

◆ inverseRotate()

template<typename real >
 type::Vec< 3, real > sofa::type::DualQuatCoord3< real >::inverseRotate ( const Vec3 & v ) const

◆ invert()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::invert

◆ max_size()

template<class real >
 static int sofa::type::DualQuatCoord3< real >::max_size ( )
inlinestatic

◆ multLeft()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::multLeft ( const DualQuatCoord3< real > & c )

◆ multLeft_getJ()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::multLeft_getJ ( type::Mat< 4, 4, real > & J0, type::Mat< 4, 4, real > & JE )

◆ multRight()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::multRight ( const DualQuatCoord3< real > & c ) const

◆ multRight_getJ()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::multRight_getJ ( type::Mat< 4, 4, real > & J0, type::Mat< 4, 4, real > & JE )

◆ norm()

template<class real >
 real sofa::type::DualQuatCoord3< real >::norm ( ) const
inline

◆ norm2()

template<typename real >
 real sofa::type::DualQuatCoord3< real >::norm2

◆ normalize()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::normalize

◆ normalize_applyJ()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::normalize_applyJ ( const DualQuatCoord3< real > & dq )

◆ normalize_applyJT()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::normalize_applyJT ( const DualQuatCoord3< real > & dqn )

◆ normalize_getdJ()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::normalize_getdJ ( type::Mat< 4, 4, real > & dJ0, type::Mat< 4, 4, real > & dJE, const DualQuatCoord3< real > & dq )

◆ normalize_getJ()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::normalize_getJ ( type::Mat< 4, 4, real > & J0, type::Mat< 4, 4, real > & JE )

◆ operator*() [1/2]

template<class real >
 real sofa::type::DualQuatCoord3< real >::operator* ( const DualQuatCoord3< real > & a ) const
inline

◆ operator*() [2/2]

template<class real >
template<typename real2 >
 DualQuatCoord3 sofa::type::DualQuatCoord3< real >::operator* ( real2 a ) const
inline

◆ operator*=()

template<class real >
template<typename real2 >
 void sofa::type::DualQuatCoord3< real >::operator*= ( real2 a )
inline

◆ operator+()

template<class real >
 DualQuatCoord3 sofa::type::DualQuatCoord3< real >::operator+ ( const type::Vec< 6, real > & a )
inline

◆ operator+=()

template<class real >
 void sofa::type::DualQuatCoord3< real >::operator+= ( const DualQuatCoord3< real > & a )
inline

◆ operator/=()

template<class real >
template<typename real2 >
 void sofa::type::DualQuatCoord3< real >::operator/= ( real2 a )
inline

◆ operator=() [1/2]

template<class real >
template<typename real2 >
 void sofa::type::DualQuatCoord3< real >::operator= ( const DualQuatCoord3< real2 > & c )
inline

◆ operator=() [2/2]

template<class real >
 void sofa::type::DualQuatCoord3< real >::operator= ( const Vec3 & p )
inline

◆ operator[]() [1/2]

template<class real >
 real& sofa::type::DualQuatCoord3< real >::operator[] ( int i )
inline

◆ operator[]() [2/2]

template<class real >
 const real& sofa::type::DualQuatCoord3< real >::operator[] ( int i ) const
inline

◆ pointToChild()

template<typename real >
 type::Vec< 3, real > sofa::type::DualQuatCoord3< real >::pointToChild ( const Vec3 & v )

◆ pointToParent()

template<typename real >
 type::Vec< 3, real > sofa::type::DualQuatCoord3< real >::pointToParent ( const Vec3 & p )

◆ pointToParent_applyH()

template<typename real >
 type::Mat< 3, 8, real > sofa::type::DualQuatCoord3< real >::pointToParent_applyH ( const DualQuatCoord3< real > & dq, const Vec3 & p )

◆ pointToParent_applyHT()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::pointToParent_applyHT ( const type::Mat< 3, 8, real > & dJ, const Vec3 & p )

◆ pointToParent_applyJ()

template<typename real >
 type::Vec< 3, real > sofa::type::DualQuatCoord3< real >::pointToParent_applyJ ( const DualQuatCoord3< real > & dq, const Vec3 & p )

◆ pointToParent_applyJT()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::pointToParent_applyJT ( const Vec3 & dP, const Vec3 & p )

◆ pointToParent_getJ()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::pointToParent_getJ ( type::Mat< 3, 4, real > & J0, type::Mat< 3, 4, real > & JE, const Vec3 & p )

◆ ptr() [1/2]

template<class real >
 real* sofa::type::DualQuatCoord3< real >::ptr ( )
inline

◆ ptr() [2/2]

template<class real >
 const real* sofa::type::DualQuatCoord3< real >::ptr ( ) const
inline

◆ rigid_applyH()

template<typename real >
 type::Mat< 3, 4, real > sofa::type::DualQuatCoord3< real >::rigid_applyH ( const DualQuatCoord3< real > & dq )

◆ rigid_applyHT()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::rigid_applyHT ( const type::Mat< 3, 4, real > & dR )

◆ rotate()

template<typename real >
 type::Vec< 3, real > sofa::type::DualQuatCoord3< real >::rotate ( const Vec3 & v ) const

◆ rotation_applyH()

template<typename real >
 type::Mat< 3, 3, real > sofa::type::DualQuatCoord3< real >::rotation_applyH ( const DualQuatCoord3< real > & dq )

◆ rotation_applyHT()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::rotation_applyHT ( const type::Mat< 3, 3, real > & dR )

◆ setTranslation()

template<class real >
 void sofa::type::DualQuatCoord3< real >::setTranslation ( const Vec3 & p )
inline

◆ size()

template<class real >
 static unsigned int sofa::type::DualQuatCoord3< real >::size ( void )
inlinestatic

◆ toMatrix()

template<typename real >
template<typename real2 >
 void sofa::type::DualQuatCoord3< real >::toMatrix ( type::Mat< 3, 4, real2 > & m ) const

◆ toRotationMatrix()

template<class real >
template<typename real2 >
 void sofa::type::DualQuatCoord3< real >::toRotationMatrix ( type::Mat< 3, 3, real2 > & m ) const
inline

◆ vectorToChild()

template<typename real >
 type::Vec< 3, real > sofa::type::DualQuatCoord3< real >::vectorToChild ( const Vec3 & v )

◆ velocity_applyJ()

template<typename real >
 DualQuatCoord3< real > sofa::type::DualQuatCoord3< real >::velocity_applyJ ( const type::Vec< 6, real > & a )

◆ velocity_applyJT()

template<typename real >
 type::Vec< 6, real > sofa::type::DualQuatCoord3< real >::velocity_applyJT ( const DualQuatCoord3< real > & dq )

◆ velocity_getJ()

template<typename real >
 void sofa::type::DualQuatCoord3< real >::velocity_getJ ( type::Mat< 4, 3, real > & J0, type::Mat< 4, 3, real > & JE )

◆ operator<<

template<class real >
 std::ostream& operator<< ( std::ostream & out, const DualQuatCoord3< real > & v )
friend

◆ operator>>

template<class real >
 std::istream& operator>> ( std::istream & in, DualQuatCoord3< real > & v )
friend