Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CovQuaternion2AxisAngle.cpp
1 #include <Geometry/CovQuaternion2AxisAngle.hh>
2 #include <Base/Debug/Exception.hh>
3 #include <Base/Geometry/Quaternion.hh>
4 
5 using namespace BIAS;
6 using namespace std;
7 
9 Transform_(const Vector<double>& src, Vector<double>& dst) const
10 {
12  for (int i=0; i<4; i++){ q[i] = src[i]; }
13  Vector3<double> axis;
14  double angle;
15  int res = q.GetAxisAngle(axis, angle);
16  dst.newsize(4);
17  if (res!=0){
18  BIASERR("failed to extract axis and angle from "<<q<<" error code "
19  <<res<<endl);
20  return res;
21  }
22  for (int i=0; i<3; i++){ dst[i] = axis[i]; }
23  dst[3] = angle;
24  return 0;
25 }
int GetAxisAngle(Vector3< QUAT_TYPE > &axis, QUAT_TYPE &angle) const
Returns rotation in axis and angle notation (angle in radians).
Vector< T > & newsize(Subscript N)
Definition: vec.h:220
virtual int Transform_(const BIAS::Vector< double > &src, BIAS::Vector< double > &dst) const
implements a point transformation