rotations.h
Go to the documentation of this file.00001
00052 #ifndef _DLR_NUMERIC_ROTATIONS_H_
00053 #define _DLR_NUMERIC_ROTATIONS_H_
00054
00055 #include <dlrNumeric/quaternion.h>
00056 #include <dlrNumeric/transform3D.h>
00057 #include <dlrNumeric/vector3D.h>
00058
00059 namespace dlr {
00060
00061 namespace numeric {
00062
00066 enum Axis {
00067 DLR_AXIS_X,
00068 DLR_AXIS_Y,
00069 DLR_AXIS_Z
00070 };
00071
00072
00093 Quaternion
00094 angleAxisToQuaternion(double angle, const Vector3D& axis,
00095 bool isNormalized=false);
00096
00097
00118 Vector3D
00119 angleAxisToRollPitchYaw(double angle, const Vector3D& axis,
00120 bool isNormalized=false);
00121
00122
00143 Transform3D
00144 angleAxisToTransform3D(double angle, const Vector3D& axis,
00145 bool isNormalized=false);
00146
00147
00197 Transform3D
00198 eulerToTransform3D(double angle0, Axis axis0,
00199 double angle1, Axis axis1,
00200 double angle2, Axis axis2);
00201
00202
00216 std::pair<double, Vector3D>
00217 quaternionToAngleAxis(const Quaternion& quaternion);
00218
00219
00233 Vector3D
00234 quaternionToRollPitchYaw(const Quaternion& quaternion);
00235
00236
00250 Transform3D
00251 quaternionToTransform3D(const Quaternion& quaternion);
00252
00253
00266 std::pair<double, Vector3D>
00267 rollPitchYawToAngleAxis(const Vector3D& rollPitchYaw);
00268
00269
00282 Quaternion
00283 rollPitchYawToQuaternion(const Vector3D& rollPitchYaw);
00284
00285
00298 Transform3D
00299 rollPitchYawToTransform3D(const Vector3D& rollPitchYaw);
00300
00301
00314 std::pair<double, Vector3D>
00315 transform3DToAngleAxis(const Transform3D& transform3D);
00316
00317
00334 Quaternion
00335 transform3DToQuaternion(const Transform3D& transform3D);
00336
00337
00350 Vector3D
00351 transform3DToRollPitchYaw(const Transform3D& transform3D);
00352
00353 }
00354
00355 }
00356
00357
00358
00359
00360 namespace dlr {
00361
00362 using numeric::angleAxisToQuaternion;
00363 using numeric::angleAxisToRollPitchYaw;
00364 using numeric::angleAxisToTransform3D;
00365 using numeric::quaternionToAngleAxis;
00366 using numeric::quaternionToRollPitchYaw;
00367 using numeric::quaternionToTransform3D;
00368 using numeric::rollPitchYawToAngleAxis;
00369 using numeric::rollPitchYawToQuaternion;
00370 using numeric::rollPitchYawToTransform3D;
00371 using numeric::transform3DToAngleAxis;
00372 using numeric::transform3DToQuaternion;
00373 using numeric::transform3DToRollPitchYaw;
00374
00375 }
00376
00377 #endif