libalmath  1.14
 All Classes Namespaces Functions Variables Typedefs Groups Pages
altransformhelpers.h
1 /*
2  * Copyright (c) 2012 Aldebaran Robotics. All rights reserved.
3  * Use of this source code is governed by a BSD-style license that can be
4  * found in the COPYING file.
5  */
6 
7 
8 #pragma once
9 #ifndef _LIBALMATH_ALMATH_TOOLS_ALTRANSFORMHELPERS_H_
10 #define _LIBALMATH_ALMATH_TOOLS_ALTRANSFORMHELPERS_H_
11 
12 #include <almath/types/alposition3d.h>
13 #include <almath/types/alposition6d.h>
14 #include <almath/types/alrotation.h>
15 #include <almath/types/alrotation3d.h>
16 #include <almath/types/alvelocity6d.h>
17 #include <almath/types/altransform.h>
18 #include <almath/types/alaxismask.h>
19 #include <almath/types/alpose2d.h>
20 #include <almath/types/alquaternion.h>
21 
22 namespace AL {
23  namespace Math {
24 
25 
29 
38 
39 
40 
41 
42 
43 
44 
46  const Transform& pT,
47  Velocity6D& pVel);
48 
49 
53 
62 
63 
64 
65 
66 
67 
68  Velocity6D transformLogarithm(const Transform& pT);
69 
70 
74 
78 
79 
80 
81 
82 
83 
84  Transform velocityExponential(const Velocity6D& pVel);
85 
86  // TODO: Add to doc or set private.
87  void velocityExponentialInPlace(
88  const Velocity6D& pVel,
89  Transform& pT);
90 
92 
120 
121 
122 
123 
124 
125 
126 
127 
129  const Transform& pT,
130  const Velocity6D& pVelIn,
131  Velocity6D& pVelOut);
132 
134 
162 
163 
164 
165 
166 
167 
168 
169 
171  const Transform& pT,
172  const Position6D& pPosIn,
173  Position6D& pPosOut);
174 
175  // TODO: rename argument.
176  void changeReferencePosition3DInPlace(
177  const Transform& pT,
178  Position3D& pPosOut);
179 
180  // TODO: rename argument.
181  void changeReferenceTransposePosition3DInPlace(
182  const Transform& pT,
183  Position3D& pPosOut);
184 
186 
205 
206 
207 
208 
209 
210 
211 
212 
214  const Transform& pT,
215  const Position3D& pPosIn,
216  Position3D& pPosOut);
217 
219 
231 
232 
233 
234 
235 
236 
237 
239  const Transform& pT,
240  const Position3D& pPosIn,
241  Position3D& pPosOut);
242 
244 
256 
257 
258 
259 
260 
261 
262 
264  const Transform& pT,
265  const Transform& pTIn,
266  Transform& pTOut);
267 
269 
281 
282 
283 
284 
285 
286 
287 
289  const Transform& pT,
290  const Transform& pTIn,
291  Transform& pTOut);
292 
293 
295 
323 
324 
325 
326 
327 
328 
329 
330 
332  const Transform& pT,
333  const Velocity6D& pVelIn,
334  Velocity6D& pVelOut);
335 
337 
365 
366 
367 
368 
369 
370 
371 
372 
374  const Transform& pT,
375  const Position6D& pPosIn,
376  Position6D& pPosOut);
377 
389  const Transform& pTIn1,
390  const Transform& pTIn2,
391  const float& pVal,
392  Transform& pTOut);
393 
405  Transform transformMean(
406  const Transform& pTIn1,
407  const Transform& pTIn2,
408  const float& pVal = 0.5f);
409 
412 
419 
420 
421 
422 
423 
424 
425 
426 
427 
429  const Rotation& pRot,
430  const float& pX,
431  const float& pY,
432  const float& pZ);
433 
436 
442 
443 
444 
445 
446 
447 
448 
450  const Rotation& pRot,
451  const Position3D& pPos);
452 
455 
466 
467 
468 
469 
471  const Position3D& pPosition,
472  Transform& pTransform);
473 
477 
488 
489 
490 
491 
492 
493 
494 
495  Transform transformFromPosition3D(const Position3D& pPosition);
496 
500 
511 
512 
513 
514 
516  const Rotation& pRotation,
517  Transform& pTransform);
518 
520 
531 
532 
533 
534 
535 
536 
537  Transform transformFromRotation(const Rotation& pRotation);
538 
546  const Transform& pTransform,
547  Rotation& pRotation);
548 
557  Rotation rotationFromTransform(const Transform& pTransform);
558 
567  Rotation3D rotation3DFromRotation(const Rotation& pRotation);
568 
576  const Transform& pT,
577  Position6D& pPos);
578 
585  Position6D position6DFromTransform(const Transform& pT);
586 
594  const Pose2D& pPose,
595  Transform& pT);
596 
603  Transform transformFromPose2D(const Pose2D& pPose);
604 
612  const Transform& pT,
613  Pose2D& pPos);
614 
621  Pose2D pose2DFromTransform(const Transform& pT);
622 
629  Transform transformFromRotation3D(const Rotation3D& pRotation);
630 
637  Transform transformFromPosition6D(const Position6D& pPosition6D);
638 
649  const Transform& pCurrent,
650  const Transform& pTarget,
651  Position6D& result);
652 
662  Position6D position6DFromTransformDiff(
663  const Transform& pCurrent,
664  const Transform& pTarget);
665 
669 
683 
684 
685 
686 
688  const Transform& pT,
689  Position3D& pPos);
690 
694 
708 
709 
710 
711 
712  Position3D position3DFromTransform(const Transform& pT);
713 
714 
722  Rotation3D rotation3DFromTransform(const Transform& pT);
723 
733  const int pAxis,
734  const float pTheta,
735  const Position3D& pPos,
736  Transform& pT);
737 
746  Transform transformFromRotVec(
747  const int pAxis,
748  const float pTheta,
749  const Position3D& pPos);
750 
751 
759  const Position3D& pPos,
760  Transform& pT);
761 
768  Transform transformFromRotVec(const Position3D& pPos);
769 
775 
778  Transform transformFromRotVec(
779  const int& pAxis,
780  const float& pTheta);
781 
782  Position3D operator*(
783  const Transform& pT,
784  const Position3D& pPos);
785 
792  Transform axisRotationProjection(
793  const Position3D& pPos,
794  const Transform& pT);
795 
803  Rotation axisRotationProjection(
804  const Position3D& pAxis,
805  const Rotation& pRot);
806 
807 
814  void axisRotationProjectionInPlace(
815  const Position3D& pPos,
816  Transform& pT);
817 
824  void axisRotationProjectionInPlace(
825  const Position3D& pPos,
826  Rotation& pRot);
827 
828 
829  void orthogonalSpace(
830  const Position3D& pPos,
831  Transform& pTOut);
832 
833  Transform orthogonalSpace(const Position3D& pPos);
834 
835  Transform transformFromQuaternion(
836  const Quaternion& pQua);
837 
838  Quaternion quaternionFromTransform(
839  const Transform& pT);
840 
841  } // namespace Math
842 } // namespace AL
843 #endif // _LIBALMATH_ALMATH_TOOLS_ALTRANSFORMHELPERS_H_