Boost logo

Boost :

Subject: [boost] Trying out QVM with multiple library implementations
From: Andrew Hundt (athundt_at_[hidden])
Date: 2015-08-04 17:57:45


I'd really like to try out QVM because I have to switch between a half
dozen matrix, vector and quaternion types constantly and would prefer not
to write functions for each conversion and operations between them.

Examples of the formats I need to handle are:

*Eigen <http://eigen.tuxfamily.org/index.php?title=Main_Page>:*

Eigen::Affine3d
Eigen::Quaterniond

+ rotation and translation versions

*vrep
<http://www.coppeliarobotics.com/helpFiles/en/apiFunctions.htm#simBuildMatrixQ>:*

float[3] (vrep vector)
float[4] (vrep quaternion)
float[12] (vrep homogeneous transform matrix)

*cisstVector <https://github.com/jhu-cisst/cisst/tree/master/cisstVector>:*

vctDynamicVector
<https://github.com/jhu-cisst/cisst/blob/master/cisstVector/vctDynamicVector.h>
vctQuaternion
<https://github.com/jhu-cisst/cisst/blob/master/cisstVector/vctQuaternion.h>
vctDynamicMatrix
<https://github.com/jhu-cisst/cisst/blob/master/cisstVector/vctDynamicMatrix.h>
There are also fixed versions of the "Dynamic" objects.
+ rotation & translations

Is there any particular concerns I need to take regarding alignment,
ordering (row vs column major) etc?

For example, the ordering of the quaternion data components differ between
eigen and rep:

  // 0123

  // vrep quat is ordered xyzw,

  // eigen quat is ordered wxyz

Any advice on how to go about this would be appreciated so I can try QVM
out!

Cheers!
Andrew Hundt


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk