diff options
Diffstat (limited to 'src/itrans-lsq.c')
-rw-r--r-- | src/itrans-lsq.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/itrans-lsq.c b/src/itrans-lsq.c index 1bf3d80..841a8b9 100644 --- a/src/itrans-lsq.c +++ b/src/itrans-lsq.c @@ -129,13 +129,16 @@ static void itrans_interpolate(int16_t *image, int width, int x, int y) { } -unsigned int itrans_peaksearch_lsq(int16_t *image, ControlContext *ctx, double tilt_degrees, ImageDisplay *imagedisplay) { +unsigned int itrans_peaksearch_lsq(ImageRecord imagerecord, ControlContext *ctx, double tilt_degrees, ImageDisplay *imagedisplay) { int16_t max_val = 0; int width, height; + int16_t *image; unsigned int n_reflections = 0; - width = ctx->width; height = ctx->height; + width = imagerecord.width; + height = imagerecord.height; + image = imagerecord.image; /* Least-Squares Craziness. NB Doesn't quite work... */ do { @@ -256,14 +259,11 @@ unsigned int itrans_peaksearch_lsq(int16_t *image, ControlContext *ctx, double t double frac; printf("Fit converged after %i iterations: Centre %3i,%3i, a=%f b=%f c=%f d=%f e=%f f=%f\n", iter, x, y, ga, gb, gc, gd, ge, gf); - if ( ctx->fmode == FORMULATION_PIXELSIZE ) { - reflection_add_from_reciprocal(ctx, (x-ctx->x_centre)*ctx->pixel_size, (y-ctx->y_centre)*ctx->pixel_size, + if ( imagerecord.fmode == FORMULATION_PIXELSIZE ) { + reflection_add_from_reciprocal(ctx, (x-imagerecord.x_centre)*imagerecord.pixel_size, (y-imagerecord.y_centre)*imagerecord.pixel_size, tilt_degrees, image[x + width*y]); } else { - reflection_add_from_dp(ctx, (x-ctx->x_centre), (y-ctx->y_centre), tilt_degrees, image[x + width*y]); - } - if ( ctx->first_image ) { - imagedisplay_mark_point(imagedisplay, x, y); + reflection_add_from_dp(ctx, (x-imagerecord.x_centre), (y-imagerecord.y_centre), tilt_degrees, image[x + width*y]); } n_reflections++; @@ -333,3 +333,4 @@ unsigned int itrans_peaksearch_lsq(int16_t *image, ControlContext *ctx, double t return n_reflections; } + |