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)
 

Constructor details

◆ 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

Function details

◆ 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<real> 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<real> 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<real> 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 
)

Related details

◆ 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