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_ */
1.5.2