Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __AUXLIB_CARTESIAN2D_H
00022 #define __AUXLIB_CARTESIAN2D_H
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif // __cplusplus
00027
00028 #include <unistd.h>
00029 #include <stdio.h>
00030 #include <stdlib.h>
00031 #include <math.h>
00032
00033 typedef struct cs_t *CSptr;
00034 typedef struct cs_t
00035 {
00036 double x;
00037 double y;
00038 double theta;
00039 CSptr parent;
00040 CSptr child;
00041 CSptr brother;
00042 int level;
00043 } CoordinateSystem;
00044
00045 CSptr CS_add(CSptr parent_cs, double x, double y, double theta);
00046 int CS_delete(CSptr target_cs);
00047 int CS_set(CSptr target_cs, double x, double y, double theta);
00048 int CS_set_on_CS(CSptr target_cs, CSptr on_cs, double x, double y, double theta);
00049 void CS_turn_base(double *x, double *y, double *theta);
00050
00051 void CS_recursive_trans(CSptr target_cs, CSptr now_cs, double *x, double *y, double *theta);
00052 void inv_trans_cs(CSptr target_cs, double *x, double *y, double *theta);
00053 void trans_cs(CSptr target_cs, double *x, double *y, double *theta);
00054 void trace_trans_cs(CSptr target_cs, double *x, double *y, double *theta);
00055
00056 #ifdef __cplusplus
00057 }
00058 #endif // __cplusplus
00059 #endif // __AUXLIB_CARTESIAN2D_H