diff options
author | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-10-19 16:25:08 +0000 |
---|---|---|
committer | taw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1> | 2007-10-19 16:25:08 +0000 |
commit | 45864cb5113ec4dde6afe1d23ea53f75402b9ece (patch) | |
tree | b3d4dad81bcfa34037cb067e1356303b32401df1 /src/control.c | |
parent | 7c4c25f2eda4f0a0780cf2edb087452ceb63f226 (diff) |
Refactor image handling code
Remove itrans-lsq
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@158 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/control.c')
-rw-r--r-- | src/control.c | 85 |
1 files changed, 2 insertions, 83 deletions
diff --git a/src/control.c b/src/control.c index 4e49de4..e581b06 100644 --- a/src/control.c +++ b/src/control.c @@ -14,41 +14,7 @@ #include <math.h> #include "control.h" - -int control_add_image(ControlContext *ctx, uint16_t *image, int width, int height, double tilt) { - - if ( ctx->images ) { - ctx->images = realloc(ctx->images, (ctx->n_images+1)*sizeof(ImageRecord)); - } else { - ctx->images = malloc(sizeof(ImageRecord)); - } - - ctx->images[ctx->n_images].tilt = tilt; - ctx->images[ctx->n_images].omega = ctx->omega; - ctx->images[ctx->n_images].image = image; - ctx->images[ctx->n_images].width = width; - ctx->images[ctx->n_images].height = height; - ctx->images[ctx->n_images].lambda = ctx->lambda; - ctx->images[ctx->n_images].fmode = ctx->fmode; - ctx->images[ctx->n_images].x_centre = ctx->x_centre; - ctx->images[ctx->n_images].y_centre = ctx->y_centre; - ctx->images[ctx->n_images].slop = 0.0; - - if ( ctx->fmode == FORMULATION_PIXELSIZE ) { - ctx->images[ctx->n_images].pixel_size = ctx->pixel_size; - ctx->images[ctx->n_images].camera_len = 0; - ctx->images[ctx->n_images].resolution = 0; - } else if ( ctx->fmode == FORMULATION_CLEN ) { - ctx->images[ctx->n_images].pixel_size = 0; - ctx->images[ctx->n_images].camera_len = ctx->camera_length; - ctx->images[ctx->n_images].resolution = ctx->resolution; - } - - ctx->n_images++; - - return ctx->n_images - 1; - -} +#include "image.h" ControlContext *control_ctx_new() { @@ -61,56 +27,9 @@ ControlContext *control_ctx_new() { ctx->have_centres = 0; ctx->cell = NULL; ctx->dirax = NULL; - ctx->n_images = 0; - ctx->images = NULL; + ctx->images = image_list_new(); return ctx; } -/* Return the minimum (most negative) tilt angle used */ -double control_min_tilt(ControlContext *ctx) { - - int i; - double min = 360; - - for ( i=0; i<ctx->n_images; i++ ) { - if ( ctx->images[i].tilt < min ) min = ctx->images[i].tilt; - } - - return min; - -} - -/* Return the maximum (most positive) tilt angle used */ -double control_max_tilt(ControlContext *ctx) { - - int i; - double max = -360; - - for ( i=0; i<ctx->n_images; i++ ) { - if ( ctx->images[i].tilt > max ) max = ctx->images[i].tilt; - } - - return max; - -} - -/* Return a reference to the image record with tilt closest to the given value */ -ImageRecord *control_image_nearest_tilt(ControlContext *ctx, double tilt) { - - int i; - double dev = 360; - ImageRecord *im = NULL; - - for ( i=0; i<ctx->n_images; i++ ) { - if ( fabs(ctx->images[i].tilt - tilt) < dev ) { - dev = fabs(ctx->images[i].tilt - tilt); - im = &ctx->images[i]; - } - } - - return im; - -} - |