aboutsummaryrefslogtreecommitdiff
path: root/src/mapping.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mapping.c')
-rw-r--r--src/mapping.c42
1 files changed, 33 insertions, 9 deletions
diff --git a/src/mapping.c b/src/mapping.c
index a4ecd96..8c82c14 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -18,6 +18,7 @@
#include "control.h"
#include "itrans.h"
#include "image.h"
+#include "displaywindow.h"
static int mapping_map_to_space(ImageFeature *refl, double *ddx, double *ddy, double *ddz, double *twotheta) {
@@ -90,19 +91,14 @@ static int mapping_map_to_space(ImageFeature *refl, double *ddx, double *ddy, do
}
-ReflectionList *mapping_create(ControlContext *ctx) {
+static void mapping_map_features(ControlContext *ctx) {
int i;
-
- /* Pass all images through itrans */
- printf("MP: Analysing images..."); fflush(stdout);
- for ( i=0; i<ctx->images->n_images; i++ ) {
- ctx->images->images[i].features = itrans_process_image(&ctx->images->images[i], ctx->psmode);
- }
- printf("done.\n");
-
+
/* Create reflection list for measured reflections */
+ if ( ctx->reflectionlist ) reflectionlist_free(ctx->reflectionlist);
ctx->reflectionlist = reflectionlist_new();
+
printf("MP: Mapping to 3D..."); fflush(stdout);
for ( i=0; i<ctx->images->n_images; i++ ) {
@@ -121,8 +117,36 @@ ReflectionList *mapping_create(ControlContext *ctx) {
}
printf("done.\n");
+
+}
+
+ReflectionList *mapping_create(ControlContext *ctx) {
+
+ int i;
+
+ /* Find all the features */
+ printf("MP: Analysing images..."); fflush(stdout);
+ for ( i=0; i<ctx->images->n_images; i++ ) {
+ ctx->images->images[i].features = itrans_process_image(&ctx->images->images[i], ctx->psmode);
+ }
+ printf("done.\n");
+
+ mapping_map_features(ctx);
return ctx->reflectionlist;
}
+void mapping_adjust_axis(ControlContext *ctx, double offset) {
+
+ int i;
+
+ for ( i=0; i<ctx->images->n_images; i++ ) {
+ ctx->images->images[i].omega += offset;
+ }
+
+ mapping_map_features(ctx);
+ if ( ctx->dw ) displaywindow_update(ctx->dw);
+
+}
+