Go to the documentation of this file.00001 #ifndef H_LASER_DATA_DRAWING
00002 #define H_LASER_DATA_DRAWING
00003
00004 #include "laser_data.h"
00005
00006 typedef enum { Invalid = 0, Odometry = 1, Estimate = 2, True_pose = 3 } ld_reference;
00007
00008 const char*ld_reference_to_string(ld_reference);
00009 ld_reference ld_string_to_reference(const char*string);
00010
00013 double * ld_get_reference_pose_silent(LDP ld, ld_reference use_reference);
00016 double * ld_get_reference_pose(LDP ld, ld_reference use_reference);
00017
00018
00019
00020 int ld_read_some_scans_distance(FILE*file, LDP **array, int*num,
00021 ld_reference which, double d_xy, double d_th);
00022
00023 typedef struct {
00025 double pose[3];
00027 double size[2];
00028 } oriented_bbox;
00029
00030 typedef oriented_bbox* BB2;
00031
00032
00034 int ld_get_bounding_box(LDP ld, double bb_min[2], double bb_max[2],
00035 double pose[3], double horizon);
00036
00037 void lda_get_bounding_box(LDP *ld, int nld, double bb_min[2], double bb_max[2],
00038 double offset[3], ld_reference use_reference, double horizon);
00039
00040
00041
00042
00043 void oriented_bbox_compute_corners(const BB2,
00044 double ul[2], double ur[2], double ll[2], double lr[2]);
00045
00046 void ld_get_oriented_bbox(LDP ld, double horizon, BB2);
00047
00048
00049 struct bbfind_imp;
00050 typedef struct bbfind_imp bbfind;
00051 bbfind * bbfind_new();
00052
00053 int bbfind_add_point(bbfind*, double point[2]);
00054 int bbfind_add_point2(bbfind*, double x, double y);
00055 int bbfind_add_bbox(bbfind*, const BB2);
00056
00057 int bbfind_compute(bbfind*, BB2);
00058 void bbfind_free(bbfind*);
00059
00060
00061
00062 struct stroke_sequence {
00063 int begin_new_stroke;
00064 int end_stroke;
00065 int valid;
00066
00067 double p[2];
00068 };
00069
00070 void compute_stroke_sequence(LDP ld, struct stroke_sequence*,
00071 double horizon, double connect_threshold);
00072
00073
00074 #endif