rotations.h

Go to the documentation of this file.
00001 
00047 #ifndef _DLR_NUMERIC_ROTATIONS_H_
00048 #define _DLR_NUMERIC_ROTATIONS_H_
00049 
00050 #include <dlrNumeric/quaternion.h>
00051 #include <dlrNumeric/transform3D.h>
00052 #include <dlrNumeric/vector3D.h>
00053 
00054 namespace dlr {
00055 
00056   namespace numeric {
00057     
00078     Quaternion
00079     angleAxisToQuaternion(double angle, const Vector3D& axis,
00080                           bool isNormalized=false);
00081   
00082 
00103     Vector3D
00104     angleAxisToRollPitchYaw(double angle, const Vector3D& axis,
00105                             bool isNormalized=false);
00106   
00107 
00128     Transform3D
00129     angleAxisToTransform3D(double angle, const Vector3D& axis,
00130                            bool isNormalized=false);
00131   
00132 
00146     std::pair<double, Vector3D>
00147     quaternionToAngleAxis(const Quaternion& quaternion);
00148   
00149 
00163     Vector3D
00164     quaternionToRollPitchYaw(const Quaternion& quaternion);
00165 
00166 
00180     Transform3D
00181     quaternionToTransform3D(const Quaternion& quaternion);
00182 
00195     std::pair<double, Vector3D>
00196     rollPitchYawToAngleAxis(const Vector3D& rollPitchYaw);
00197 
00198   
00211     Quaternion
00212     rollPitchYawToQuaternion(const Vector3D& rollPitchYaw);
00213 
00214   
00227     Transform3D
00228     rollPitchYawToTransform3D(const Vector3D& rollPitchYaw);
00229 
00230 
00243     std::pair<double, Vector3D>
00244     transform3DToAngleAxis(const Transform3D& transform3D);
00245 
00246 
00263     Quaternion
00264     transform3DToQuaternion(const Transform3D& transform3D);
00265 
00266 
00279     Vector3D
00280     transform3DToRollPitchYaw(const Transform3D& transform3D);
00281 
00282   } // namespace numeric
00283 
00284 } // namespace dlr
00285 
00286 
00287 /* ======= Declarations to maintain compatibility with legacy code. ======= */
00288 
00289 namespace dlr {
00290 
00291   using numeric::angleAxisToQuaternion;
00292   using numeric::angleAxisToRollPitchYaw;
00293   using numeric::angleAxisToTransform3D;
00294   using numeric::quaternionToAngleAxis;
00295   using numeric::quaternionToRollPitchYaw;
00296   using numeric::quaternionToTransform3D;
00297   using numeric::rollPitchYawToAngleAxis;
00298   using numeric::rollPitchYawToQuaternion;
00299   using numeric::rollPitchYawToTransform3D;
00300   using numeric::transform3DToAngleAxis;
00301   using numeric::transform3DToQuaternion;
00302   using numeric::transform3DToRollPitchYaw;
00303 
00304 } // namespace dlr
00305 
00306 #endif /* #ifndef _DLR_NUMERIC_ROTATIONS_H_ */

Generated on Mon Jul 9 20:34:03 2007 for dlrLibs Utility Libraries by  doxygen 1.5.2