From f90793c371d8b6c475905ff9c68ce32019e8a967 Mon Sep 17 00:00:00 2001 From: lecoanet Date: Wed, 5 Oct 2005 14:28:50 +0000 Subject: Changed some int values to float in the computing of the bounding box --- generic/Track.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'generic/Track.c') diff --git a/generic/Track.c b/generic/Track.c index 63686c4..232089e 100644 --- a/generic/Track.c +++ b/generic/Track.c @@ -703,8 +703,8 @@ ComputeCoordinates(ZnItem item, ZnBBox bbox; ZnPoint *points; unsigned int num_points, num_acc_pos, i; - int alignment; - int w2=0, h2=0, w=0, h=0; + int alignment, w_int, h_int; + ZnReal w2=0.0, h2=0.0, w=0.0, h=0.0; ZnResetBBox(&item->item_bounding_box); old_label_pos = field_set->label_pos; @@ -718,10 +718,12 @@ ComputeCoordinates(ZnItem item, track->dev.y = ZnNearestInt(track->dev.y); /*printf("track pos %g %g --> %g %g\n", track->pos.x, track->pos.y, track->dev.x, track->dev.y);*/ if (track->symbol != ZnUnspecifiedImage) { - ZnSizeOfImage(track->symbol, &w, &h); + ZnSizeOfImage(track->symbol, &w_int, &h_int); + w = w_int; + h = h_int; /*printf("taille symbole %d %d\n", w, h);*/ - w2 = (w+1)/2; - h2 = (h+1)/2; + w2 = (w+1.0)/2.0; + h2 = (h+1.0)/2.0; bbox.orig.x = track->dev.x - w2; bbox.orig.y = track->dev.y - h2; bbox.corner.x = bbox.orig.x + w; @@ -745,8 +747,8 @@ ComputeCoordinates(ZnItem item, wi->track_visible_history_size : 0); ZnResetBBox(&bbox); - w = (int) track->history_width; - w2 = (w+1)/2; + w = track->history_width; + w2 = (w+1.0)/2.0; num_acc_pos = ZnListSize(track->history); hist = ZnListArray(track->history); for (i = 0; i < num_acc_pos; i++) { @@ -771,7 +773,7 @@ ComputeCoordinates(ZnItem item, track->speed_vector_dev.x = ZnNearestInt(track->speed_vector_dev.x); track->speed_vector_dev.y = ZnNearestInt(track->speed_vector_dev.y); if (ISSET(track->flags, SV_MARK_BIT)) { - int w = (int) track->speed_vector_width + 1; + w = track->speed_vector_width + 1.0; ZnAddPointToBBox(&item->item_bounding_box, track->speed_vector_dev.x - w, track->speed_vector_dev.y - w); @@ -789,8 +791,11 @@ ComputeCoordinates(ZnItem item, * Take care of the connection between items. */ c_item = item->connected_item; - if ((c_item != ZN_NO_ITEM) && (track->connection_width > 0)) { - w2 = (int) track->connection_width/2; + if ((c_item != ZN_NO_ITEM) && (track->connection_width > 0.0)) { + w2 = track->connection_width/2.0; + //printf("%d connected to %d, %g %g and %g %g\n", c_item->id, item->id, + // ((TrackItem)c_item)->dev.x, ((TrackItem)c_item)->dev.y, + // track->dev.x, track->dev.y); ZnAddPointToBBox(&item->item_bounding_box, track->dev.x-w2, track->dev.y-w2); ZnAddPointToBBox(&item->item_bounding_box, ((TrackItem)c_item)->dev.x+w2, ((TrackItem)c_item)->dev.y+w2); @@ -1753,8 +1758,7 @@ Pick(ZnItem item, } } - /* printf("track %d reporting part %d, distance %lf\n", - item->id, best_part, dist); */ + //printf("track %d reporting part %d, distance %lf\n", item->id, best_part, dist); ps->a_part = best_part; return dist; } -- cgit v1.1