/* * 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 #include /* * This is the interface with the zinc 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, /* Fri Oct 13 15:16:13 2000 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 *zinc, 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 */