Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Namespaces | Functions
quatTools.hpp File Reference

File defining geometric operations with quaternions. More...


Detailed Description

File defining geometric operations with quaternions.

Date:
20/02/2010
Author:
jsola

Quaternions operate on vectors and other quaternions. Functions for Jacobian computations are also provided.

Definition in file quatTools.hpp.

Go to the source code of this file.

Namespaces

namespace  jafar
 

Transport info from GDAL Datasets to Bands' internal data.


namespace  jafar::rtslam
 

Namespace rtslam for real-time slam module.


namespace  jafar::rtslam::quaternion
 

Namespace for quaternion algebra functions.


Functions

vec4 jafar::rtslam::quaternion::identQ ()
 Null rotation quaternion.
template<class VecQ >
vec4 jafar::rtslam::quaternion::q2qc (const VecQ &q)
 Conjugate of quaternion.
template<class VecQ , class MatQC_q >
void jafar::rtslam::quaternion::q2qc_by_dq (const VecQ &q, MatQC_q &QC_q)
 Jacobian of conjugated quaternion wrt input quaternion.
template<class VecQ , class VecQc , class MatQC_q >
void jafar::rtslam::quaternion::q2qc (const VecQ &q, VecQc &qc, MatQC_q &QC_q)
 Conjugate of a quaternion, with Jacobians.
template<class VecQ >
mat33 jafar::rtslam::quaternion::q2R (const VecQ &q)
 Rotation matrix from quaternion.
template<class MatR >
vec4 jafar::rtslam::quaternion::R2q (const MatR &R)
 Quaternion from rotation matrix.
template<class VecQ >
mat33 jafar::rtslam::quaternion::q2Rt (const VecQ &q)
 The transposed rotation matrix from a quaternion.
template<class VecQ , class Vec >
vec3 jafar::rtslam::quaternion::rotate (const VecQ &q, const Vec &v)
 Rotate a vector from given quaternion.
template<class VecQ , class Vec , class MatVO_q >
void jafar::rtslam::quaternion::rotate_by_dq (const VecQ &q, const Vec &v, MatVO_q &VO_q)
 Jacobian of vector rotation from quaternion, wrt quaternion.
template<class VecQ , class MatVO_v >
void jafar::rtslam::quaternion::rotate_by_dv (const VecQ &q, MatVO_v &VO_v)
 Jacobian of vector rotation from quaternion, wrt vector.
template<class VecQ , class Vec , class VecO , class MatVO_q , class MatVO_v >
void jafar::rtslam::quaternion::rotate (const VecQ &q, const Vec &v, VecO &vo, MatVO_q &VO_q, MatVO_v &VO_v)
 Rotate a vector from given quaternion, with all Jacobians.
template<class VecQ , class Vec >
vec3 jafar::rtslam::quaternion::rotateInv (const VecQ &q, const Vec &v)
 Rotate inversely a vector from given quaternion.
template<class VecQ , class Vec , class MatVO_q >
void jafar::rtslam::quaternion::rotateInv_by_dq (const VecQ &q, const Vec &v, MatVO_q &VO_q)
 Jacobian of inverse vector rotation from quaternion, wrt quaternion.
template<class VecQ , class MatVO_v >
void jafar::rtslam::quaternion::rotateInv_by_dv (const VecQ &q, MatVO_v &VO_v)
 Jacobian of vector inverse rotation from quaternion, wrt vector.
template<class VecQ , class Vec , class VecO , class MatVO_q , class MatVO_v >
void jafar::rtslam::quaternion::rotateInv (const VecQ &q, const Vec &v, VecO &vo, MatVO_q &VO_q, MatVO_v &VO_v)
 Rotate inversely a vector from given quaternion, with all Jacobians.
template<class VecQ1 , class VecQ2 >
vec4 jafar::rtslam::quaternion::qProd (const VecQ1 &q1, const VecQ2 &q2)
 Quaternion product.
template<class VecQ2 , class MatQ_q1 >
void jafar::rtslam::quaternion::qProd_by_dq1 (const VecQ2 &q2, MatQ_q1 &Q_q1)
 Jacobian of quaternion product wrt first quaternion, d(q1**q2)/dq1.
template<class VecQ1 , class MatQ_q2 >
void jafar::rtslam::quaternion::qProd_by_dq2 (const VecQ1 &q1, MatQ_q2 &Q_q2)
 Jacobian of quaternion product wrt second quaternion, d(q1**q2)/dq2.
template<class VecQ1 , class VecQ2 , class VecQ , class MatQ_q1 , class MatQ_q2 >
void jafar::rtslam::quaternion::qProd (const VecQ1 &q1, const VecQ2 &q2, VecQ &q, MatQ_q1 &Q_q1, MatQ_q2 &Q_q2)
 Quaternion product, with Jacobians.
template<class Vec >
vec4 jafar::rtslam::quaternion::v2q (const Vec &v)
 Quaternion from rotation vector.
template<class Vec , class MatQ_v >
void jafar::rtslam::quaternion::v2q_by_dv (const Vec &v, MatQ_v &Q_v)
 Jacobian of quaternion wrt rotation vector.
template<class Vec , class VecQ , class MatQ_v >
void jafar::rtslam::quaternion::v2q (const Vec &v, VecQ &q, MatQ_v &Q_v)
 Rotation vector to quaternion conversion, with Jacobian.
template<class Vec >
vec4 jafar::rtslam::quaternion::e2q (const Vec &e)
 Quaternion from Euler angles.
template<class Vec , class MatQ_e >
void jafar::rtslam::quaternion::e2q_by_de (const Vec &e, MatQ_e &Q_e)
 Jacobian of quaternion wrt Euler angles.
template<class Vec , class VecQ , class MatQ_e >
void jafar::rtslam::quaternion::e2q (const Vec &e, VecQ &q, MatQ_e &Q_e)
 Euler angles to quaternion conversion, with Jacobian.
template<class VecXE , class MatPE , class VecXQ , class MatPQ >
void jafar::rtslam::quaternion::e2q (const VecXE &e, const MatPE &E, VecXQ &q, MatPQ &Q)
 Converts euler angles with its uncertainty to quaternion.
template<class VecE >
vec7 jafar::rtslam::quaternion::e2q_frame (const VecE &e)
template<class VecXE , class MatPE , class VecXQ , class MatPQ >
void jafar::rtslam::quaternion::e2q_frame (const VecXE &e, const MatPE &E, VecXQ &q, MatPQ &Q)
template<class VecQ >
vec3 jafar::rtslam::quaternion::q2e (const VecQ &q)
 Quaternion to Euler angles conversion.
template<class VecQ , class VecE , class MatE_q >
void jafar::rtslam::quaternion::q2e (const VecQ &q, VecE &e, MatE_q &E_q)
 Quaternion-to-Euler conversion, with Jacobian.
template<class VecXQ , class MatPQ , class VecXE , class MatPE >
void jafar::rtslam::quaternion::q2e (const VecXQ &q, const MatPQ &Q, VecXE &e, MatPE &E)
 Converts a quaternion with its uncertainty to euler angles.
template<class VecQ >
vec6 jafar::rtslam::quaternion::q2e_frame (const VecQ &q)
template<class VecXQ , class MatPQ , class VecXE , class MatPE >
void jafar::rtslam::quaternion::q2e_frame (const VecXQ &q, const MatPQ &Q, VecXE &e, MatPE &E)
vec7 jafar::rtslam::quaternion::originFrame ()
 Origin frame.
vec4 jafar::rtslam::quaternion::flu2rdfQuat ()
 Quaternion defining the RDF frame from a FLU frame.
vec7 jafar::rtslam::quaternion::flu2rdfFrame ()
 A frame at the origin position and the orientation at [-90, 0, -90] deg.
template<class VecF , class Pnt >
vec3 jafar::rtslam::quaternion::eucToFrame (const VecF &F, const Pnt &p)
 To-frame transformation for Euclidean points.
template<class VecF , class Pnt , class PntF , class MatPF_f , class MatPF_p >
void jafar::rtslam::quaternion::eucToFrame (const VecF &F, const Pnt &p, PntF &pf, MatPF_f &PF_f, MatPF_p &PF_p, jblas::vec p_fej=jblas::vec(0))
 To-frame transformation for Euclidean points, with Jacobians.
template<class VecF , class Vec >
vec3 jafar::rtslam::quaternion::vecToFrame (const VecF &F, const Vec &v)
 To-frame transformation for vectors.
template<class VecF , class Vec , class Vecf , class MatVF_f , class MatVF_v >
void jafar::rtslam::quaternion::vecToFrame (const VecF &F, const Vec &v, Vecf &vf, MatVF_f &VF_f, MatVF_v &VF_v)
 To-frame transformation for vectors, with Jacobians.
template<class VecF , class Pnt >
vec3 jafar::rtslam::quaternion::eucFromFrame (const VecF &F, const Pnt &pf)
 From-frame transformation for Euclidean points.
template<class VecF , class PntF , class Pnt , class MatP_f , class MatP_pf >
void jafar::rtslam::quaternion::eucFromFrame (const VecF &F, const PntF &pf, Pnt &p, MatP_f &P_f, MatP_pf &P_pf)
 From-frame transformation for Euclidean points, with Jacobians.
template<class VecF , class Vec >
vec3 jafar::rtslam::quaternion::vecFromFrame (const VecF &F, const Vec &vf)
 From-frame transformation for vectors.
template<class VecF , class Vecf , class Vec , class MatV_f , class MatV_vf >
void jafar::rtslam::quaternion::vecFromFrame (const VecF &F, const Vecf &vf, Vec &v, MatV_f &V_f, MatV_vf &V_vf)
 From-frame transformation for vectors, with Jacobians.
template<class VecG , class VecF >
jblas::vec7 jafar::rtslam::quaternion::composeFrames (const VecG &G, const VecF &F)
 Compose frames.
template<class VecG , class VecL , class MatC_g >
void jafar::rtslam::quaternion::composeFrames_by_dglobal (const VecG &G, const VecL &L, MatC_g &C_g)
 Jacobian of frame composition wrt global frame.
template<class VecG , class VecL , class MatC_l >
void jafar::rtslam::quaternion::composeFrames_by_dlocal (const VecG &G, const VecL &L, MatC_l &C_l)
 Jacobian of frame composition wrt global frame.
template<class VecG , class VecL , class VecC , class MatC_g , class MatC_l >
void jafar::rtslam::quaternion::composeFrames (const VecG &G, const VecL &L, VecC &C, MatC_g &C_g, MatC_l &C_l)
 Compose frames, give Jacobians.
template<class VecF >
jblas::vec7 jafar::rtslam::quaternion::invertFrame (const VecF &F)
 Invert frame.
template<class VecF , class VecI , class MatI_f >
void jafar::rtslam::quaternion::invertFrame (const VecF &F, VecI &I, MatI_f &I_f)
 Invert frame, with Jacobian.
template<class VecF1 , class VecF2 >
jblas::vec7 jafar::rtslam::quaternion::frameIncrement (const VecF1 &F1, const VecF2 &F2)
 Frame increment.
template<class VecF1 , class VecF2 , class MatF_f1 >
void jafar::rtslam::quaternion::frameIncrement_by_f1 (const VecF1 &F1, const VecF2 &F2, MatF_f1 &F_f1)
 Frame increment, first Jacobian.
template<class VecF1 , class VecF2 , class MatF_f2 >
void jafar::rtslam::quaternion::frameIncrement_by_f2 (const VecF1 &F1, const VecF2 &F2, MatF_f2 &F_f2)
 Frame increment, second Jacobian.
template<class VecF1 , class VecF2 , class VecF , class MatF_f1 , class MatF_f2 >
void jafar::rtslam::quaternion::frameIncrement (const VecF1 &F1, const VecF2 &F2, VecF &F, MatF_f1 &F_f1, MatF_f2 &F_f2)
 Frame increment, first Jacobian.
template<class Vec1 , class Vec2 , class VecL >
void jafar::rtslam::quaternion::getZoomRotation (const Vec1 &sensorPose1, const Vec2 &sensorPose2, const VecL &landmarkPosition, double &zoom, double &rotation)
 get zoom and rotation of appearance between two points of view
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:29 for Jafar by doxygen 1.7.6.1
LAAS-CNRS