aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-10-25 22:46:22 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-10-25 22:46:22 +0000
commitf1bf21e061a5aaed0281d8e715cabaa4e58eec6f (patch)
treee96d333dbd207f8175058798f2212cec3d4c59c8 /src
parent43c03565d1ee87135e9fe206bcbf834e16763879 (diff)
Draw partnering lines on ImageDisplay
Fix silly mistake in partner selection git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@178 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src')
-rw-r--r--src/imagedisplay.c24
-rw-r--r--src/imagedisplay.h3
-rw-r--r--src/reproject.c8
3 files changed, 26 insertions, 9 deletions
diff --git a/src/imagedisplay.c b/src/imagedisplay.c
index c70d8a8..3877da8 100644
--- a/src/imagedisplay.c
+++ b/src/imagedisplay.c
@@ -207,16 +207,30 @@ static gboolean imagedisplay_redraw(GtkWidget *drawingarea, GdkEventExpose *even
GdkGC *gc;
- if ( cur->type == IMAGEDISPLAY_MARK_CIRCLE_2 ) {
- gc = imagedisplay->gc_marks_2;
- } else {
- gc = imagedisplay->gc_marks_1;
+ switch ( cur->type ) {
+ case IMAGEDISPLAY_MARK_CIRCLE_1 : gc = imagedisplay->gc_marks_1; break;
+ case IMAGEDISPLAY_MARK_CIRCLE_2 : gc = imagedisplay->gc_marks_2; break;
+ case IMAGEDISPLAY_MARK_LINE_1 : gc = imagedisplay->gc_marks_1; break;
+ default : gc = imagedisplay->gc_marks_1; break;
}
- gdk_draw_arc(drawingarea->window, gc, FALSE,
+ if ( (cur->type == IMAGEDISPLAY_MARK_CIRCLE_1) || (cur->type == IMAGEDISPLAY_MARK_CIRCLE_2) ) {
+
+ gdk_draw_arc(drawingarea->window, gc, FALSE,
xoffs + cur->x*scale - 5,
yoffs + imagedisplay->view_height-1-cur->y*scale - 5,
11, 11, 0, 64*360);
+
+ } else if ( (cur->type == IMAGEDISPLAY_MARK_LINE_1) || (cur->type == IMAGEDISPLAY_MARK_LINE_2) ) {
+
+ gdk_draw_line(drawingarea->window, gc,
+ xoffs + cur->x*scale,
+ yoffs + imagedisplay->view_height-1-cur->y*scale,
+ xoffs + cur->x2*scale,
+ yoffs + imagedisplay->view_height-1-cur->y2*scale );
+
+ }
+
cur = cur->next;
}
diff --git a/src/imagedisplay.h b/src/imagedisplay.h
index 73ef172..3b7192a 100644
--- a/src/imagedisplay.h
+++ b/src/imagedisplay.h
@@ -31,7 +31,8 @@ typedef enum {
typedef enum {
IMAGEDISPLAY_MARK_CIRCLE_1,
IMAGEDISPLAY_MARK_CIRCLE_2,
- IMAGEDISPLAY_MARK_LINE_1
+ IMAGEDISPLAY_MARK_LINE_1,
+ IMAGEDISPLAY_MARK_LINE_2
} ImageDisplayMarkType;
typedef struct struct_imagedisplaymark {
diff --git a/src/reproject.c b/src/reproject.c
index 535dc0e..1726639 100644
--- a/src/reproject.c
+++ b/src/reproject.c
@@ -189,7 +189,7 @@ static ImageFeature *reproject_find_partner(ImageFeature *feature, ImageRecord *
double d;
- d = distance(image->features->features[i].x, image->features->features[i].x, feature->x, feature->y);
+ d = distance(image->features->features[i].x, image->features->features[i].y, feature->x, feature->y);
if ( d < dmin ) {
dmin = d;
@@ -198,7 +198,7 @@ static ImageFeature *reproject_find_partner(ImageFeature *feature, ImageRecord *
}
- if ( dmin < 20 ) {
+ if ( dmin <= 70.0 ) {
return &image->features->features[closest];
}
@@ -242,9 +242,11 @@ static void reproject_mark_peaks(ControlContext *ctx) {
/* Now connect partners */
reproject_partner_features(rflist, &ctx->images->images[ctx->reproject_cur_image]);
for ( j=0; j<rflist->n_features; j++ ) {
- imagedisplay_add_line(ctx->reproject_id, xc+rflist->features[j].x, yc+rflist->features[j].y,
+ if ( rflist->features[j].partner ) {
+ imagedisplay_add_line(ctx->reproject_id, xc+rflist->features[j].x, yc+rflist->features[j].y,
xc+rflist->features[j].partner->x, yc+rflist->features[j].partner->y,
IMAGEDISPLAY_MARK_LINE_1);
+ }
}
image_feature_list_free(rflist);