aboutsummaryrefslogtreecommitdiff
path: root/generic/Track.c
diff options
context:
space:
mode:
authorlecoanet2001-03-15 09:05:10 +0000
committerlecoanet2001-03-15 09:05:10 +0000
commit93d20b815cc0f3c73c19dc1a0f026aa9d80c616d (patch)
tree0cd3d5be357ddbe66dd38458b1ab48ecba2206fe /generic/Track.c
parente8a4bffc251514297253871d8c61c09b36b1e0bf (diff)
downloadtkzinc-93d20b815cc0f3c73c19dc1a0f026aa9d80c616d.zip
tkzinc-93d20b815cc0f3c73c19dc1a0f026aa9d80c616d.tar.gz
tkzinc-93d20b815cc0f3c73c19dc1a0f026aa9d80c616d.tar.bz2
tkzinc-93d20b815cc0f3c73c19dc1a0f026aa9d80c616d.tar.xz
Correction des instabilit�s de position entre les diff�rents composants
de la pise et l'�tiquette (arrondis syst�matiques). Correction d'un bug sur le pattern de remplissage. On ne repositionnait pas le pattern ce qui entrainait des marqueurs hachur�s.
Diffstat (limited to 'generic/Track.c')
-rw-r--r--generic/Track.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/generic/Track.c b/generic/Track.c
index d85f71c..fb6a587 100644
--- a/generic/Track.c
+++ b/generic/Track.c
@@ -484,7 +484,7 @@ Destroy(Item item)
{
TrackItem track = (TrackItem) item;
WidgetInfo *wi = item->wi;
-
+
if (track->leader_points) {
ZnListFree(track->leader_points);
}
@@ -661,7 +661,6 @@ Query(Item item,
*
**********************************************************************************
*/
-
static void
ComputeCoordinates(Item item,
ZnBool force)
@@ -695,6 +694,8 @@ ComputeCoordinates(Item item,
old_pos = track->dev;
ZnTransformPoint(wi->current_transfo, &track->pos, &track->dev);
+ track->dev.x = REAL_TO_INT(track->dev.x);
+ track->dev.y = REAL_TO_INT(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 != ZnUnspecifiedPattern) {
Tk_SizeOfBitmap(wi->dpy, track->symbol, &w, &h);
@@ -736,7 +737,9 @@ ComputeCoordinates(Item item,
if (item->class == ZnTrack) {
p.x = track->pos.x + track->speed_vector.x * wi->speed_vector_length;
p.y = track->pos.y + track->speed_vector.y * wi->speed_vector_length;
- ZnTransformPoint(wi->current_transfo, &p, &track->speed_vector_dev);
+ ZnTransformPoint(wi->current_transfo, &p, &track->speed_vector_dev);
+ track->speed_vector_dev.x = REAL_TO_INT(track->speed_vector_dev.x);
+ track->speed_vector_dev.y = REAL_TO_INT(track->speed_vector_dev.y);
AddPointToBBox(&item->item_bounding_box, track->speed_vector_dev.x,
track->speed_vector_dev.y);
}
@@ -762,6 +765,7 @@ ComputeCoordinates(Item item,
xp.x = xp.x - track->dev.x;
xp.y = xp.y - track->dev.y;
track->marker_size_dev = sqrt(xp.x*xp.x + xp.y*xp.y);
+ track->marker_size_dev = REAL_TO_INT(track->marker_size_dev);
if (track->marker_size_dev > PRECISION_LIMIT) {
AddPointToBBox(&item->item_bounding_box,
track->dev.x - (ZnPos) track->marker_size_dev,
@@ -809,7 +813,9 @@ ComputeCoordinates(Item item,
field_set->label_pos.y = track->dev.y - track->label_dy;
Anchor2Origin(&field_set->label_pos, bb_width, bb_height,
track->label_anchor, &field_set->label_pos);
-
+ field_set->label_pos.x = REAL_TO_INT(field_set->label_pos.x);
+ field_set->label_pos.y = REAL_TO_INT(field_set->label_pos.y);
+
AddPointToBBox(&item->item_bounding_box, field_set->label_pos.x,
field_set->label_pos.y);
AddPointToBBox(&item->item_bounding_box,
@@ -1036,7 +1042,6 @@ Draw(Item item)
int h_side_size, side_size, width=0, height=0;
int i, nb_hist, num_acc_pos;
-
/* Draw the marker */
if (track->marker_size_dev != 0) {
SetLineStyle(wi->dpy, wi->gc, track->marker_style);
@@ -1062,7 +1067,8 @@ Draw(Item item)
0, 360 * 64);
}
else {
- XChangeGC(wi->dpy, wi->gc, GCLineWidth | GCForeground, &values);
+ values.fill_style = FillSolid;
+ XChangeGC(wi->dpy, wi->gc, GCFillStyle | GCLineWidth | GCForeground, &values);
XDrawArc(wi->dpy, wi->draw_buffer, wi->gc,
track->dev.x - (ZnPos) track->marker_size_dev,
track->dev.y - (ZnPos) track->marker_size_dev,