movement.h

Go to the documentation of this file.
00001 
00002 // @{
00003 
00011 #ifndef MOVEMENT_H
00012 #define MOVEMENT_H
00013 
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017 
00018 #include <carmen/carmen.h>
00019 
00021 typedef struct  {
00022   double r1;
00023   double d;
00024   double r2;
00025 } carmen_movement_rtr_t;
00026 
00028 typedef struct  {
00029   double f;
00030   double s;
00031   double r;
00032 } carmen_movement_fsr_t;
00033 
00034 /* ** Rotation-Translation-Rotation Transformations *********** */
00035   
00036 carmen_movement_rtr_t 
00037 carmen_movement_rtr_from_point(carmen_point_t pt);
00038   
00039 carmen_point_t 
00040 carmen_movement_point_from_rtr(carmen_movement_rtr_t move);
00041 
00042 carmen_movement_rtr_t  
00043 carmen_movement_invert_rtr(carmen_movement_rtr_t r);
00044 
00045 carmen_point_t 
00046 carmen_movement_rtr_move_point(carmen_point_t t, 
00047                                carmen_movement_rtr_t r);
00048 
00049 carmen_movement_rtr_t  
00050 carmen_movement_compose_rtr(carmen_movement_rtr_t r,
00051                             carmen_movement_rtr_t add) ;
00052 
00053 carmen_movement_rtr_t  
00054 carmen_movement_rtr_between_points(carmen_point_t t1, 
00055                                    carmen_point_t t2);
00056 
00057 /* ** Forward-Sideward-Rotation Transformations *********** */
00058 
00059 carmen_movement_fsr_t 
00060 carmen_movement_fsr_from_point(carmen_point_t pt);
00061 
00062 carmen_point_t 
00063 carmen_movement_point_from_fsr(carmen_movement_fsr_t move);
00064 
00065 carmen_movement_fsr_t  
00066 carmen_movement_invert_fsr(carmen_movement_fsr_t r);
00067 
00068 carmen_point_t 
00069 carmen_movement_fsr_move_point(carmen_point_t t, 
00070                                carmen_movement_fsr_t r);
00071 
00072 carmen_movement_fsr_t  
00073 carmen_movement_compose_fsr(carmen_movement_fsr_t r,
00074                             carmen_movement_fsr_t add) ;
00075 
00076 
00077 carmen_movement_fsr_t  
00078 carmen_movement_fsr_between_points(carmen_point_t t1, 
00079                                    carmen_point_t t2);
00080 
00081 
00082 /* ** Coversion between FSR and RTR Transformations *********** */
00083 
00084 carmen_movement_rtr_t 
00085 carmen_movement_fsr_to_rtr(carmen_movement_fsr_t move);
00086 
00087 carmen_movement_fsr_t 
00088 carmen_movement_rtr_to_fsr(carmen_movement_rtr_t move);
00089 
00090 /* ** Transformation between coordinate frames ************ */
00091 
00092 
00093 /* returns pt_frame1 in the coordinate frame2 */
00094 carmen_point_t 
00095 carmen_movement_transformation_between_frames(carmen_point_t reference_pt_frame1, 
00096                                               carmen_point_t reference_pt_frame2,
00097                                               carmen_point_t pt_frame1);
00098   
00099 
00100 #ifdef __cplusplus
00101 }
00102 #endif
00103 
00104 
00105 #endif
00106 
00107 // @}

Generated on Wed Apr 5 18:34:17 2006 for CARMEN by  doxygen 1.4.4