aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlecoanet2005-10-05 14:28:50 +0000
committerlecoanet2005-10-05 14:28:50 +0000
commitf90793c371d8b6c475905ff9c68ce32019e8a967 (patch)
treec59ed7ff4c2a7a3e436f8559f2d12e0721eb631c
parent158bd87185d2d961fb3f21bcaf1f56689e41033c (diff)
downloadtkzinc-f90793c371d8b6c475905ff9c68ce32019e8a967.zip
tkzinc-f90793c371d8b6c475905ff9c68ce32019e8a967.tar.gz
tkzinc-f90793c371d8b6c475905ff9c68ce32019e8a967.tar.bz2
tkzinc-f90793c371d8b6c475905ff9c68ce32019e8a967.tar.xz
Changed some int values to float in the computing of the bounding box
-rw-r--r--generic/Track.c28
1 files changed, 16 insertions, 12 deletions
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;
}