Go to the documentation of this file.00001 #ifndef H_LASER_DATA_CAIRO
00002 #define H_LASER_DATA_CAIRO
00003
00004 #include <cairo.h>
00005 #include <options/options.h>
00006 #include "../csm/csm_all.h"
00007 #include "../csm/laser_data_drawing.h"
00008
00009 typedef struct {
00010
00011 int draw;
00012
00013 double width;
00014 const char* color;
00015
00016 } line_style ;
00017
00018 typedef struct {
00019 line_style rays, countour;
00020 line_style points;
00021 double points_radius;
00022
00023 line_style normals;
00024 double normals_length;
00025
00026
00027 line_style pose;
00028 double pose_radius;
00029
00030
00031 line_style sigma;
00032 double sigma_multiplier;
00033
00034 double connect_threshold;
00035 double horizon;
00036 } ld_style;
00037
00038 void ls_set_defaults(line_style*ls);
00039 void lds_set_defaults(ld_style*lds);
00040
00041 void ls_add_options(line_style*ls, struct option*ops,
00042 const char*prefix, const char*desc_prefix);
00043
00044 void lds_add_options(ld_style*lds, struct option*ops,
00045 const char*prefix, const char*desc_prefix);
00046
00047 void cr_set_color(cairo_t *cr, const char* color);
00048 void cr_set_style(cairo_t*cr, line_style*);
00049 void cr_ld_draw(cairo_t* cr, LDP ld, ld_style *p);
00050 void cr_ld_draw_corr(cairo_t*cr, LDP laser_ref, LDP laser_sens);
00051 void cr_ld_draw_sigma(cairo_t*cr, LDP ld, double multiplier);
00052 void cr_set_reference(cairo_t*cr,double*pose);
00053
00054 void cr_lda_draw_pose_path(cairo_t*cr, LDP*lda, int nscans, ld_reference use_reference);
00055
00056 int create_pdf_surface(const char*file, int max_width_points, int max_height_points,
00057 double bb_min[2], double bb_max[2], cairo_surface_t**surface_p, cairo_t **cr);
00058
00059 int create_image_surface(int width, int height,
00060 double bb_min[2], double bb_max[2], cairo_surface_t**surface_p, cairo_t **cr);
00061
00062
00063
00064 #endif
00065