static void on_param_widget_changed(BotGtkParamWidget *pw, const char *name, void *user) { RendererLaser *self = (RendererLaser*) user; if (!self->viewer) return; self->param_scan_memory = bot_gtk_param_widget_get_int(self->pw, PARAM_SCAN_MEMORY); self->param_color_mode = bot_gtk_param_widget_get_enum(self->pw, PARAM_COLOR_MODE); self->param_z_buffer = bot_gtk_param_widget_get_bool(self->pw, PARAM_Z_BUFFER); self->param_big_points = bot_gtk_param_widget_get_bool(self->pw, PARAM_BIG_POINTS); self->param_spacial_decimate = bot_gtk_param_widget_get_bool(self->pw, PARAM_SPATIAL_DECIMATE); self->z_relative = bot_gtk_param_widget_get_bool(self->pw, PARAM_Z_RELATIVE); self->param_color_mode_z_max_z = bot_gtk_param_widget_get_double(self->pw, PARAM_COLOR_MODE_Z_MAX_Z); self->param_color_mode_z_min_z = bot_gtk_param_widget_get_double(self->pw, PARAM_COLOR_MODE_Z_MIN_Z); self->param_max_draw_z = bot_gtk_param_widget_get_double(self->pw, PARAM_MAX_DRAW_Z); self->param_min_draw_z = bot_gtk_param_widget_get_double(self->pw, PARAM_MIN_DRAW_Z); self->param_max_draw_range = bot_gtk_param_widget_get_double(self->pw, PARAM_MAX_DRAW_RANGE); self->param_alpha = bot_gtk_param_widget_get_double(self->pw, PARAM_ALPHA); self->param_max_buffer_size = bot_gtk_param_widget_get_int(self->pw, PARAM_MAX_BUFFER_SIZE); for (int i = 0; i < self->channels->len; i++) { laser_channel *lchan = g_ptr_array_index(self->channels, i); lchan->enabled = bot_gtk_param_widget_get_bool(pw, lchan->name); } bot_viewer_request_redraw(self->viewer); }
static void scrolling_plots_draw (Viewer *viewer, Renderer *renderer) { RendererScrollingPlots *self = (RendererScrollingPlots*) renderer->user; if (!self->max_utime) return; GLdouble model_matrix[16]; GLdouble proj_matrix[16]; GLint viewport[4]; glGetDoublev (GL_MODELVIEW_MATRIX, model_matrix); glGetDoublev (GL_PROJECTION_MATRIX, proj_matrix); glGetIntegerv (GL_VIEWPORT, viewport); double gs_ts_max = self->max_utime * 1e-6; double gs_ts_min = gs_ts_max - bot_gtk_param_widget_get_double (self->pw, PARAM_NAME_GRAPH_TIMESPAN); bot_gl_scrollplot2d_set_xlim (self->psi_distance_plot, gs_ts_min, gs_ts_max); int plot_width = bot_gtk_param_widget_get_int (self->pw, PARAM_NAME_SIZE); int plot_height = plot_width / 2; int x = viewport[2] - plot_width - 10; int y = viewport[1] +10 ; if (bot_gtk_param_widget_get_bool (self->pw, PARAM_NAME_RENDER_PSI_DISTANCE)) { bot_gl_scrollplot2d_gl_render_at_window_pos (self->psi_distance_plot, x, y, plot_width, plot_height); y += plot_height; } }
static void scrolling_plots_draw (Viewer *viewer, Renderer *renderer) { RendererScrollingPlots *self = (RendererScrollingPlots*) renderer->user; if (!self->max_utime) return; GLdouble model_matrix[16]; GLdouble proj_matrix[16]; GLint viewport[4]; glGetDoublev (GL_MODELVIEW_MATRIX, model_matrix); glGetDoublev (GL_PROJECTION_MATRIX, proj_matrix); glGetIntegerv (GL_VIEWPORT, viewport); double gs_ts_max = self->max_utime * 1e-6; double gs_ts_min = gs_ts_max - bot_gtk_param_widget_get_double (self->pw, PARAM_NAME_GRAPH_TIMESPAN); bot_gl_scrollplot2d_set_xlim (self->navigator_rotation_plot, gs_ts_min, gs_ts_max); bot_gl_scrollplot2d_set_xlim (self->navigator_translation_plot, gs_ts_min, gs_ts_max); bot_gl_scrollplot2d_set_xlim (self->encoder_left_plot, gs_ts_min, gs_ts_max); bot_gl_scrollplot2d_set_xlim (self->encoder_right_plot, gs_ts_min, gs_ts_max); int plot_width = bot_gtk_param_widget_get_int (self->pw, PARAM_NAME_SIZE); int plot_height = plot_width / 3; int x = viewport[2] - plot_width; int y = viewport[1]; if (bot_gtk_param_widget_get_bool (self->pw, PARAM_NAME_RENDER_NAVIGATOR_ROTATION)) { bot_gl_scrollplot2d_gl_render_at_window_pos (self->navigator_rotation_plot, x, y, plot_width, plot_height); y += plot_height; } if (bot_gtk_param_widget_get_bool (self->pw, PARAM_NAME_RENDER_NAVIGATOR_TRANSLATION)) { bot_gl_scrollplot2d_gl_render_at_window_pos (self->navigator_translation_plot, x, y, plot_width, plot_height); y += plot_height; } if (bot_gtk_param_widget_get_bool (self->pw, PARAM_NAME_RENDER_ENCODER_LEFT)) { bot_gl_scrollplot2d_gl_render_at_window_pos (self->encoder_left_plot, x, y, plot_width, plot_height); y += plot_height; } if (bot_gtk_param_widget_get_bool (self->pw, PARAM_NAME_RENDER_ENCODER_RIGHT)) { bot_gl_scrollplot2d_gl_render_at_window_pos (self->encoder_right_plot, x, y, plot_width, plot_height); y += plot_height; } }
static void on_param_widget_changed (BotGtkParamWidget *pw, const char *name, void *user) { RendererCar *self = (RendererCar*) user; Viewer *viewer = self->viewer; viewer->view_handler->follow_mode = 0; if (bot_gtk_param_widget_get_bool(pw, PARAM_FOLLOW_POS)) viewer->view_handler->follow_mode |= FOLLOW_POS; if (bot_gtk_param_widget_get_bool(pw, PARAM_FOLLOW_YAW)) viewer->view_handler->follow_mode |= FOLLOW_YAW; self->max_draw_poses = bot_gtk_param_widget_get_int(pw, PARAM_MAXPOSES); viewer_request_redraw ( self->viewer); }