From 8327929451983c2c8e999692d7fbf9221e78d365 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 9 Apr 2009 13:10:42 +0100 Subject: Remove watchpoints --- src/reflections.c | 6 ------ src/reproject.c | 12 ------------ 2 files changed, 18 deletions(-) diff --git a/src/reflections.c b/src/reflections.c index ce5f7a9..3eed317 100644 --- a/src/reflections.c +++ b/src/reflections.c @@ -91,7 +91,6 @@ void reflectionlist_free(ReflectionList *reflectionlist) { Reflection *reflection_add(ReflectionList *reflectionlist, double x, double y, double z, double intensity, ReflectionType type) { Reflection *new_reflection; - Reflection *nearest; if ( reflectionlist->list_capped ) return NULL; @@ -101,11 +100,6 @@ Reflection *reflection_add(ReflectionList *reflectionlist, double x, double y, d reflectionlist->list_capped = 1; } -// nearest = reflectionlist_find_nearest_type(reflectionlist, x, y, z, type); -// if ( nearest && distance3d(x, y, z, nearest->x, nearest->y, nearest->z) < 0.1e9 ) { -// printf("Too close\n"); -// return NULL; -//} new_reflection = malloc(sizeof(Reflection)); new_reflection->next = NULL; new_reflection->x = x; diff --git a/src/reproject.c b/src/reproject.c index e0199af..41040b9 100644 --- a/src/reproject.c +++ b/src/reproject.c @@ -59,8 +59,6 @@ ImageFeatureList *reproject_get_reflections(ImageRecord *image, double kx, ky, kz; /* Electron wavevector ("normal" times 1/lambda */ double ux, uy, uz; /* "up" vector */ double rx, ry, rz; /* "right" vector */ - int nrr = 0; - int n = 0; flist = image_feature_list_new(); @@ -168,11 +166,6 @@ ImageFeatureList *reproject_get_reflections(ImageRecord *image, image_add_feature_reflection(flist, x, y, image, reflection->intensity, reflection); - printf("adding %i %i %i\n", - reflection->h, - reflection->k, - reflection->l); - n++; } /* else it's outside the picture somewhere */ @@ -182,8 +175,6 @@ ImageFeatureList *reproject_get_reflections(ImageRecord *image, reflection = reflection->next; - nrr++; - } while ( reflection ); /* Partner features only if the image has a feature list. This allows @@ -193,8 +184,6 @@ ImageFeatureList *reproject_get_reflections(ImageRecord *image, reproject_partner_features(flist, image); } - printf("processed %i, found %i\n", nrr, n); - return flist; } @@ -242,7 +231,6 @@ void reproject_lattice_changed(ControlContext *ctx) { int partnered_measured = 0; reproject_cell_to_lattice(ctx); - printf("%i reflections\n", ctx->cell_lattice->n_reflections); for ( i=0; iimages->n_images; i++ ) { -- cgit v1.2.3 From a070bfdcb409def337234ba3714c180c2bdf9fba Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 9 Apr 2009 13:21:54 +0100 Subject: Line wrapping in imagedisplay.c --- src/imagedisplay.c | 270 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 166 insertions(+), 104 deletions(-) diff --git a/src/imagedisplay.c b/src/imagedisplay.c index 958622f..47ea914 100644 --- a/src/imagedisplay.c +++ b/src/imagedisplay.c @@ -3,7 +3,7 @@ * * Show raw and processed images * - * (c) 2007-2008 Thomas White + * (c) 2007-2009 Thomas White * * dtr - Diffraction Tomography Reconstruction * @@ -26,12 +26,15 @@ #include "mapping.h" /* Free pixbuf data when reference count drops to zero */ -static void imagedisplay_free_data(guchar *image_eightbit, ImageDisplay *imagedisplay) { +static void imagedisplay_free_data(guchar *image_eightbit, + ImageDisplay *imagedisplay) +{ free(image_eightbit); } -static void imagedisplay_rescale(ImageDisplay *imagedisplay, unsigned int v_w, unsigned int v_h) { - +static void imagedisplay_rescale(ImageDisplay *imagedisplay, unsigned int v_w, + unsigned int v_h) +{ unsigned int w, h; float aspect_image, aspect_window; @@ -52,24 +55,26 @@ static void imagedisplay_rescale(ImageDisplay *imagedisplay, unsigned int v_w, u } /* Create the scaled pixbuf from the 8-bit display data */ - imagedisplay->pixbuf_scaled = gdk_pixbuf_scale_simple(imagedisplay->pixbuf, v_w, v_h, GDK_INTERP_BILINEAR); + imagedisplay->pixbuf_scaled = gdk_pixbuf_scale_simple( + imagedisplay->pixbuf, v_w, v_h, + GDK_INTERP_BILINEAR); imagedisplay->view_width = v_w; imagedisplay->view_height = v_h; - } -static gboolean imagedisplay_configure_event(GtkWidget *widget, GdkEventConfigure *event, ImageDisplay *imagedisplay) { - +static gboolean imagedisplay_configure_event(GtkWidget *widget, + GdkEventConfigure *event, + ImageDisplay *imagedisplay) +{ imagedisplay->drawingarea_width = event->width; imagedisplay->drawingarea_height = event->height; imagedisplay_rescale(imagedisplay, event->width, event->height); return FALSE; - } -void imagedisplay_put_data(ImageDisplay *imagedisplay, ImageRecord imagerecord) { - +void imagedisplay_put_data(ImageDisplay *imagedisplay, ImageRecord imagerecord) +{ unsigned int x, y; unsigned int w, h; int min, max; @@ -117,17 +122,18 @@ void imagedisplay_put_data(ImageDisplay *imagedisplay, ImageRecord imagerecord) memcpy(&imagedisplay->imagerecord, &imagerecord, sizeof(ImageRecord)); /* Create the pixbuf from the 8-bit display data */ - imagedisplay->pixbuf = gdk_pixbuf_new_from_data(imagedisplay->data, GDK_COLORSPACE_RGB, FALSE, 8, w, h, w*3, - (GdkPixbufDestroyNotify)imagedisplay_free_data, imagedisplay); + imagedisplay->pixbuf = gdk_pixbuf_new_from_data(imagedisplay->data, + GDK_COLORSPACE_RGB, FALSE, 8, w, h, w*3, + (GdkPixbufDestroyNotify)imagedisplay_free_data, + imagedisplay); if ( imagedisplay->realised ) { imagedisplay_force_redraw(imagedisplay); } - } -void imagedisplay_clear_marks(ImageDisplay *imagedisplay) { - +void imagedisplay_clear_marks(ImageDisplay *imagedisplay) +{ ImageDisplayMark *cur; cur = imagedisplay->marks; @@ -137,11 +143,11 @@ void imagedisplay_clear_marks(ImageDisplay *imagedisplay) { cur = next; } imagedisplay->marks = NULL; - } -static void imagedisplay_destroyed(GtkWidget *widget, ImageDisplay *imagedisplay) { - +static void imagedisplay_destroyed(GtkWidget *widget, + ImageDisplay *imagedisplay) +{ imagedisplay_clear_marks(imagedisplay); if ( imagedisplay->flags & IMAGEDISPLAY_QUIT_IF_CLOSED ) { @@ -158,19 +164,21 @@ static void imagedisplay_destroyed(GtkWidget *widget, ImageDisplay *imagedisplay } free(imagedisplay); - } -void imagedisplay_close(ImageDisplay *imagedisplay) { - imagedisplay->flags = (imagedisplay->flags | IMAGEDISPLAY_QUIT_IF_CLOSED)^IMAGEDISPLAY_QUIT_IF_CLOSED; +void imagedisplay_close(ImageDisplay *imagedisplay) +{ + imagedisplay->flags = (imagedisplay->flags + | IMAGEDISPLAY_QUIT_IF_CLOSED)^IMAGEDISPLAY_QUIT_IF_CLOSED; if ( imagedisplay->window ) { gtk_widget_destroy(imagedisplay->window); } } -static void imagedisplay_add_scalebar(ImageDisplay *imagedisplay, GtkWidget *drawingarea, - double scale, double xoffs, double yoffs) { - +static void imagedisplay_add_scalebar(ImageDisplay *imagedisplay, + GtkWidget *drawingarea, double scale, + double xoffs, double yoffs) +{ PangoLayout *layout; double sb; PangoRectangle rect; @@ -184,55 +192,66 @@ static void imagedisplay_add_scalebar(ImageDisplay *imagedisplay, GtkWidget *dra bwidth = (sb*scale)+20; bheight = rect.height+30; if ( rect.width > bwidth ) bwidth = rect.width+20; - gdk_draw_rectangle(drawingarea->window, drawingarea->style->bg_gc[GTK_WIDGET_STATE(drawingarea)], TRUE, - xoffs+20, yoffs+view_height-20-bheight, - bwidth, bheight); + gdk_draw_rectangle(drawingarea->window, + drawingarea->style->bg_gc[GTK_WIDGET_STATE(drawingarea)], + TRUE, xoffs+20, yoffs+view_height-20-bheight, bwidth, bheight); gdk_draw_line(drawingarea->window, imagedisplay->gc_scalebar, xoffs+30, yoffs+view_height-30, xoffs+30+(scale*sb), yoffs+view_height-30); - gdk_draw_layout(drawingarea->window, drawingarea->style->fg_gc[GTK_WIDGET_STATE(drawingarea)], - xoffs+30, yoffs+view_height-20-bheight+10, layout); - + gdk_draw_layout(drawingarea->window, + drawingarea->style->fg_gc[GTK_WIDGET_STATE(drawingarea)], + xoffs+30, yoffs+view_height-20-bheight+10, layout); } -#define imagedisplay_draw_line(gc,x1,y1,x2,y2) (gdk_draw_line(drawingarea->window,gc, \ - xoffs+(x1), yoffs+imagedisplay->view_height-1-(y1), \ - xoffs+(x2), yoffs+imagedisplay->view_height-1-(y2))) - -static gboolean imagedisplay_redraw(GtkWidget *drawingarea, GdkEventExpose *event, ImageDisplay *imagedisplay) { +#define imagedisplay_draw_line(gc,x1,y1,x2,y2) \ + (gdk_draw_line(drawingarea->window,gc, \ + xoffs+(x1), yoffs+imagedisplay->view_height-1-(y1), \ + xoffs+(x2), yoffs+imagedisplay->view_height-1-(y2))) +static gboolean imagedisplay_redraw(GtkWidget *drawingarea, + GdkEventExpose *event, + ImageDisplay *imagedisplay) +{ double scale, xoffs, yoffs; ImageDisplayMark *cur; double max; - xoffs = ((double)imagedisplay->drawingarea_width - imagedisplay->view_width) / 2; - yoffs = ((double)imagedisplay->drawingarea_height - imagedisplay->view_height) / 2; + xoffs = ((double)imagedisplay->drawingarea_width + - imagedisplay->view_width) / 2; + yoffs = ((double)imagedisplay->drawingarea_height + - imagedisplay->view_height) / 2; scale = (double)imagedisplay->view_width/imagedisplay->imagerecord.width; - gdk_draw_pixbuf(drawingarea->window, drawingarea->style->bg_gc[GTK_WIDGET_STATE(drawingarea)], - imagedisplay->pixbuf_scaled, - 0, 0, xoffs, yoffs, imagedisplay->view_width, imagedisplay->view_height, - GDK_RGB_DITHER_NONE, 0, 0); -//return FALSE; + gdk_draw_pixbuf(drawingarea->window, + drawingarea->style->bg_gc[GTK_WIDGET_STATE(drawingarea)], + imagedisplay->pixbuf_scaled, + 0, 0, xoffs, yoffs, imagedisplay->view_width, + imagedisplay->view_height, GDK_RGB_DITHER_NONE, 0, 0); + if ( imagedisplay->flags & IMAGEDISPLAY_SHOW_TILT_AXIS ) { /* This is nasty, but works */ imagedisplay_draw_line(imagedisplay->gc_tiltaxis, imagedisplay->imagerecord.x_centre * scale, imagedisplay->imagerecord.y_centre * scale, - (imagedisplay->imagerecord.x_centre + imagedisplay->imagerecord.width) * scale, - (imagedisplay->imagerecord.y_centre + imagedisplay->imagerecord.width - * tan(imagedisplay->imagerecord.omega)) * scale); + (imagedisplay->imagerecord.x_centre + + imagedisplay->imagerecord.width) * scale, + (imagedisplay->imagerecord.y_centre + + imagedisplay->imagerecord.width + * tan(imagedisplay->imagerecord.omega)) * scale); imagedisplay_draw_line(imagedisplay->gc_tiltaxis, imagedisplay->imagerecord.x_centre * scale, imagedisplay->imagerecord.y_centre * scale, - (imagedisplay->imagerecord.x_centre - imagedisplay->imagerecord.width) * scale, - (imagedisplay->imagerecord.y_centre - imagedisplay->imagerecord.width - * tan(imagedisplay->imagerecord.omega)) * scale); + (imagedisplay->imagerecord.x_centre + - imagedisplay->imagerecord.width) * scale, + (imagedisplay->imagerecord.y_centre + - imagedisplay->imagerecord.width + * tan(imagedisplay->imagerecord.omega)) * scale); } /* Add scale bar */ if ( imagedisplay->flags & IMAGEDISPLAY_SCALE_BAR ) { - imagedisplay_add_scalebar(imagedisplay, drawingarea, scale, xoffs, yoffs); + imagedisplay_add_scalebar(imagedisplay, drawingarea, scale, + xoffs, yoffs); } /* NB This calls the function above, which sorts out stuff */ @@ -255,12 +274,12 @@ static gboolean imagedisplay_redraw(GtkWidget *drawingarea, GdkEventExpose *even while ( cur ) { if ( cur->weight < 0.0 ) { - //printf("ID: Warning: ImageDisplayMark with negative weight\n"); cur = cur->next; continue; } - if ( log(1+0.1*cur->weight) > max ) max = log(1+0.1*cur->weight); + if ( log(1+0.1*cur->weight) > max ) + max = log(1+0.1*cur->weight); cur = cur->next; } @@ -271,11 +290,26 @@ static gboolean imagedisplay_redraw(GtkWidget *drawingarea, GdkEventExpose *even GdkGC *gc; 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_CIRCLE_3 : gc = imagedisplay->gc_marks_3; break; - case IMAGEDISPLAY_MARK_LINE_1 : gc = imagedisplay->gc_marks_1; break; - case IMAGEDISPLAY_MARK_LINE_2 : gc = imagedisplay->gc_marks_2; break; + 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_CIRCLE_3 : { + gc = imagedisplay->gc_marks_3; + break; + } + case IMAGEDISPLAY_MARK_LINE_1 : { + gc = imagedisplay->gc_marks_1; + break; + } + case IMAGEDISPLAY_MARK_LINE_2 : { + gc = imagedisplay->gc_marks_2; + break; + } default : gc = imagedisplay->gc_marks_1; break; } @@ -297,17 +331,18 @@ static gboolean imagedisplay_redraw(GtkWidget *drawingarea, GdkEventExpose *even } gdk_draw_arc(drawingarea->window, gc, FALSE, - xoffs + cur->x*scale - r, - yoffs + imagedisplay->view_height-1-cur->y*scale - r, - 2*r, 2*r, 0, 64*360); + xoffs + cur->x*scale - r, + yoffs + imagedisplay->view_height-1-cur->y*scale - r, + 2*r, 2*r, 0, 64*360); - } else if ( (cur->type == IMAGEDISPLAY_MARK_LINE_1) || (cur->type == IMAGEDISPLAY_MARK_LINE_2) ) { + } 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 ); + xoffs + cur->x*scale, + yoffs + imagedisplay->view_height-1-cur->y*scale, + xoffs + cur->x2*scale, + yoffs + imagedisplay->view_height-1-cur->y2*scale); } @@ -318,8 +353,8 @@ static gboolean imagedisplay_redraw(GtkWidget *drawingarea, GdkEventExpose *even } -static gint imagedisplay_realize(GtkWidget *widget, ImageDisplay *imagedisplay) { - +static gint imagedisplay_realize(GtkWidget *widget, ImageDisplay *imagedisplay) +{ GdkColor colour; imagedisplay->gc_centre = gdk_gc_new(imagedisplay->drawingarea->window); @@ -345,7 +380,8 @@ static gint imagedisplay_realize(GtkWidget *widget, ImageDisplay *imagedisplay) imagedisplay->gc_scalebar = gdk_gc_new(imagedisplay->drawingarea->window); gdk_color_parse("#000000", &colour); gdk_gc_set_rgb_fg_color(imagedisplay->gc_scalebar, &colour); - gdk_gc_set_line_attributes(imagedisplay->gc_scalebar, 5, GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_MITER); + gdk_gc_set_line_attributes(imagedisplay->gc_scalebar, 5, + GDK_LINE_SOLID, GDK_CAP_BUTT, GDK_JOIN_MITER); imagedisplay->realised = TRUE; @@ -353,9 +389,12 @@ static gint imagedisplay_realize(GtkWidget *widget, ImageDisplay *imagedisplay) } -ImageDisplay *imagedisplay_new_nowindow(ImageRecord imagerecord, ImageDisplayFlags flags, const char *message, - GCallback mouse_click_func, gpointer callback_data) { - +ImageDisplay *imagedisplay_new_nowindow(ImageRecord imagerecord, + ImageDisplayFlags flags, + const char *message, + GCallback mouse_click_func, + gpointer callback_data) +{ ImageDisplay *imagedisplay; imagedisplay = malloc(sizeof(ImageDisplay)); @@ -379,25 +418,37 @@ ImageDisplay *imagedisplay_new_nowindow(ImageRecord imagerecord, ImageDisplayFla GtkWidget *label; label = gtk_label_new(message); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - gtk_box_pack_start(GTK_BOX(imagedisplay->vbox), label, FALSE, TRUE, 3); + gtk_box_pack_start(GTK_BOX(imagedisplay->vbox), label, FALSE, + TRUE, 3); } imagedisplay->drawingarea = gtk_drawing_area_new(); - gtk_box_pack_start(GTK_BOX(imagedisplay->vbox), imagedisplay->drawingarea, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(imagedisplay->vbox), + imagedisplay->drawingarea, TRUE, TRUE, 0); if ( imagedisplay->mouse_click_func ) { - gtk_widget_add_events(GTK_WIDGET(imagedisplay->drawingarea), GDK_BUTTON_PRESS_MASK); - g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), "button-press-event", - G_CALLBACK(imagedisplay->mouse_click_func), callback_data); + gtk_widget_add_events(GTK_WIDGET(imagedisplay->drawingarea), + GDK_BUTTON_PRESS_MASK); + g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), + "button-press-event", + G_CALLBACK(imagedisplay->mouse_click_func), + callback_data); } - g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), "realize", - G_CALLBACK(imagedisplay_realize), imagedisplay); - g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), "destroy", - G_CALLBACK(imagedisplay_destroyed), imagedisplay); - g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), "configure_event", - G_CALLBACK(imagedisplay_configure_event), imagedisplay); - g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), "expose-event", + g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), + "realize", + G_CALLBACK(imagedisplay_realize), + imagedisplay); + g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), + "destroy", + G_CALLBACK(imagedisplay_destroyed), + imagedisplay); + g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), + "configure_event", + G_CALLBACK(imagedisplay_configure_event), + imagedisplay); + g_signal_connect(GTK_OBJECT(imagedisplay->drawingarea), + "expose-event", G_CALLBACK(imagedisplay_redraw), imagedisplay); return imagedisplay; @@ -405,22 +456,29 @@ ImageDisplay *imagedisplay_new_nowindow(ImageRecord imagerecord, ImageDisplayFla } /* Display an image */ -ImageDisplay *imagedisplay_open_with_message(ImageRecord imagerecord, const char *title, const char *message, - ImageDisplayFlags flags, GCallback mouse_click_func, - gpointer callback_data) { - +ImageDisplay *imagedisplay_open_with_message(ImageRecord imagerecord, + const char *title, + const char *message, + ImageDisplayFlags flags, + GCallback mouse_click_func, + gpointer callback_data) +{ ImageDisplay *imagedisplay; GdkGeometry geom; - imagedisplay = imagedisplay_new_nowindow(imagerecord, flags, message, mouse_click_func, callback_data); + imagedisplay = imagedisplay_new_nowindow(imagerecord, flags, message, + mouse_click_func, callback_data); imagedisplay->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_container_add(GTK_CONTAINER(imagedisplay->window), imagedisplay->vbox); + gtk_container_add(GTK_CONTAINER(imagedisplay->window), + imagedisplay->vbox); imagedisplay->title = strdup(title); - gtk_window_set_title(GTK_WINDOW(imagedisplay->window), imagedisplay->title); + gtk_window_set_title(GTK_WINDOW(imagedisplay->window), + imagedisplay->title); geom.min_width = 128; geom.min_height = 128; - gtk_window_set_geometry_hints(GTK_WINDOW(imagedisplay->window), GTK_WIDGET(imagedisplay->drawingarea), + gtk_window_set_geometry_hints(GTK_WINDOW(imagedisplay->window), + GTK_WIDGET(imagedisplay->drawingarea), &geom, GDK_HINT_MIN_SIZE); gtk_window_set_default_size(GTK_WINDOW(imagedisplay->window), 512, 512); @@ -428,15 +486,18 @@ ImageDisplay *imagedisplay_open_with_message(ImageRecord imagerecord, const char gtk_widget_show_all(imagedisplay->window); return imagedisplay; - } -ImageDisplay *imagedisplay_open(ImageRecord image, const char *title, ImageDisplayFlags flags) { - return imagedisplay_open_with_message(image, title, NULL, flags, NULL, NULL); +ImageDisplay *imagedisplay_open(ImageRecord image, const char *title, + ImageDisplayFlags flags) +{ + return imagedisplay_open_with_message(image, title, NULL, flags, + NULL, NULL); } -void imagedisplay_add_mark(ImageDisplay *imagedisplay, double x, double y, ImageDisplayMarkType type, double weight) { - +void imagedisplay_add_mark(ImageDisplay *imagedisplay, double x, double y, + ImageDisplayMarkType type, double weight) +{ ImageDisplayMark *new; new = malloc(sizeof(ImageDisplayMark)); @@ -454,12 +515,11 @@ void imagedisplay_add_mark(ImageDisplay *imagedisplay, double x, double y, Image } cur->next = new; } - } void imagedisplay_add_line(ImageDisplay *imagedisplay, double x1, double y1, - double x2, double y2, ImageDisplayMarkType type) { - + double x2, double y2, ImageDisplayMarkType type) +{ ImageDisplayMark *new; new = malloc(sizeof(ImageDisplayMark)); @@ -478,11 +538,13 @@ void imagedisplay_add_line(ImageDisplay *imagedisplay, double x1, double y1, } cur->next = new; } - } -void imagedisplay_force_redraw(ImageDisplay *imagedisplay) { - imagedisplay_rescale(imagedisplay, imagedisplay->drawingarea_width, imagedisplay->drawingarea_height); - gtk_widget_queue_draw_area(imagedisplay->drawingarea, 0, 0, imagedisplay->drawingarea_width, - imagedisplay->drawingarea_height); +void imagedisplay_force_redraw(ImageDisplay *imagedisplay) +{ + imagedisplay_rescale(imagedisplay, imagedisplay->drawingarea_width, + imagedisplay->drawingarea_height); + gtk_widget_queue_draw_area(imagedisplay->drawingarea, 0, 0, + imagedisplay->drawingarea_width, + imagedisplay->drawingarea_height); } -- cgit v1.2.3 From 167eb24cae0c452ec64a182bee27c217722dfdeb Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 9 Apr 2009 17:31:16 +0100 Subject: New imagedisplay colours --- src/imagedisplay.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/imagedisplay.c b/src/imagedisplay.c index 47ea914..817ef14 100644 --- a/src/imagedisplay.c +++ b/src/imagedisplay.c @@ -366,11 +366,11 @@ static gint imagedisplay_realize(GtkWidget *widget, ImageDisplay *imagedisplay) gdk_gc_set_rgb_fg_color(imagedisplay->gc_tiltaxis, &colour); imagedisplay->gc_marks_1 = gdk_gc_new(imagedisplay->drawingarea->window); - gdk_color_parse("#dd0000", &colour); + gdk_color_parse("#0077ff", &colour); gdk_gc_set_rgb_fg_color(imagedisplay->gc_marks_1, &colour); imagedisplay->gc_marks_2 = gdk_gc_new(imagedisplay->drawingarea->window); - gdk_color_parse("#00dd00", &colour); + gdk_color_parse("#ffff00", &colour); gdk_gc_set_rgb_fg_color(imagedisplay->gc_marks_2, &colour); imagedisplay->gc_marks_3 = gdk_gc_new(imagedisplay->drawingarea->window); -- cgit v1.2.3 From e472b068cab44e109fdd47f3962ab3a3a76674dd Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 9 Apr 2009 17:31:30 +0100 Subject: Add Zaeferrer distance cutoff, whitespace --- src/itrans-zaefferer.c | 65 ++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/src/itrans-zaefferer.c b/src/itrans-zaefferer.c index 69d2566..e1b63e9 100644 --- a/src/itrans-zaefferer.c +++ b/src/itrans-zaefferer.c @@ -27,89 +27,99 @@ ImageFeatureList *itrans_peaksearch_zaefferer(ImageRecord *imagerecord) { int width, height; uint16_t *image; ImageFeatureList *flist; - + flist = image_feature_list_new(); - + image = imagerecord->image; width = imagerecord->width; height = imagerecord->height; - + for ( x=1; x 400 ) { - + int mask_x, mask_y; int sx, sy; double max; unsigned int did_something = 1; - + mask_x = x; mask_y = y; - + while ( (did_something) && (distance(mask_x, mask_y, x, y)<50) ) { - + max = image[mask_x+width*mask_y]; did_something = 0; - + for ( sy=biggest(mask_y-PEAK_WINDOW_SIZE/2, 0); sy max ) { max = image[sx+width*sy]; mask_x = sx; mask_y = sy; did_something = 1; } - + } - + } - + } - + if ( !did_something ) { - + double d; int idx; - + assert(mask_x=0); assert(mask_y>=0); - - /* Check for a feature at exactly the same coordinates */ - image_feature_closest(flist, mask_x, mask_y, &d, &idx); - + + if ( distance(mask_x, mask_y, x, y) + > 50.0 ) { + printf("Too far\n"); + continue; + } + + /* Check for a feature at exactly the + * same coordinates */ + image_feature_closest(flist, mask_x, + mask_y, &d, + &idx); + if ( d > 1.0 ) { - image_add_feature(flist, mask_x, mask_y, imagerecord, - image[mask_x + width*mask_y]); + image_add_feature(flist, mask_x, + mask_y, imagerecord, + image[mask_x + width*mask_y]); } - + } - + } } } @@ -117,4 +127,3 @@ ImageFeatureList *itrans_peaksearch_zaefferer(ImageRecord *imagerecord) { return flist; } - -- cgit v1.2.3