diff options
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; - -} - |