diff options
Diffstat (limited to 'generic/OverlapMan.h')
-rw-r--r-- | generic/OverlapMan.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/generic/OverlapMan.h b/generic/OverlapMan.h new file mode 100644 index 0000000..fb844d9 --- /dev/null +++ b/generic/OverlapMan.h @@ -0,0 +1,95 @@ +/* + * OverlapMan.h -- Track label overlap avoidance manager header file + * + * Authors : + * Creation date : + * + * $Id$ + */ + +/* + * Copyright (c) 1993 - 1999 CENA -- + * + * This code is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This code is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this code; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + + +#ifndef _OverlapMan_h +#define _OverlapMan_h + + +#include <string.h> +#include <math.h> + + +/* + * This is the interface with the radar widget. To substitute + * a different overlap manager, it is necessary to conform to + * this API. + */ +void +OmRegister(void *w, + void *(*_fnext_track)(void *ptr, + void *item, + int *x, int *y, + int *sv_dx, int *sv_dy, + int *label_x, int *label_y, + int *label_width, int *label_height, + int *rho, int *theta, + int *visibility), + void (*_fset_label_angle)(void *ptr, void *item, int theta), + void (*_fquery_label_pos)(void *ptr, void *item, int theta, + int *x, int *y, int *w, int *h)); +void +OmUnregister(void *w); +void +OmProcessOverlap(void *radar, + int width, + int height, + double scale); + +/* + * These are overlap manager public functions used + * to set various parameters controlling the algorithm + * behavior. + */ +void +OmSetParam(double repulsion, + double repulsion_bearing, + double friction, + double best_position_attraction, + double screen_edge_repulsion); +void +OmGetParam(double *repulsion, + double *repulsion_bearing, + double *friction, + double *best_position_attraction, + double *screen_edge_repulsion); +void +OmGetMinParam(double *min_repulsion, + double *min_repulsion_bearing, + double *min_friction, + double *min_best_position_attraction, + double *min_screen_edge_repulsion); +void +OmGetMaxParam(double *max_repulsion, + double *max_repulsion_bearing, + double *max_friction, + double *max_best_position_attraction, + double *max_screen_edge_repulsion); + + +#endif /* _OverlapMan_h */ |