/* * control.c * * Common control structure * * (c) 2007 Thomas White * * dtr - Diffraction Tomography Reconstruction * */ #include #include #include "control.h" int control_add_image(ControlContext *ctx, uint16_t *image, int width, int height, double tilt) { 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; 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; } ControlContext *control_ctx_new() { ControlContext *ctx; ctx = malloc(sizeof(ControlContext)); ctx->x_centre = 0; ctx->y_centre = 0; ctx->have_centres = 0; return ctx; }