aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/dirax.c
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2013-02-12 02:16:44 -0800
committerThomas White <taw@physics.org>2013-02-12 02:16:44 -0800
commita9d289c5c9c5c3491b8ecd6580c381a423094734 (patch)
tree8b438263b69d4b28bcc84eb5f2f8c547ef2055cd /libcrystfel/src/dirax.c
parent9b7274a5b5d8a241277d61e980a8ddf922ebf293 (diff)
Improve handling of indexing methods
Diffstat (limited to 'libcrystfel/src/dirax.c')
-rw-r--r--libcrystfel/src/dirax.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libcrystfel/src/dirax.c b/libcrystfel/src/dirax.c
index fc185fd4..e6ff36b1 100644
--- a/libcrystfel/src/dirax.c
+++ b/libcrystfel/src/dirax.c
@@ -626,27 +626,31 @@ int run_dirax(struct image *image, IndexingPrivate *ipriv)
}
-IndexingPrivate *dirax_prepare(IndexingMethod indm, UnitCell *cell,
+IndexingPrivate *dirax_prepare(IndexingMethod *indm, UnitCell *cell,
const char *filename, struct detector *det,
struct beam_params *beam, float *ltl)
{
struct dirax_private *dp;
int need_cell = 0;
- if ( indm & INDEXING_CHECK_CELL_COMBINATIONS ) need_cell = 1;
- if ( indm & INDEXING_CHECK_CELL_AXES ) need_cell = 1;
+ if ( *indm & INDEXING_CHECK_CELL_COMBINATIONS ) need_cell = 1;
+ if ( *indm & INDEXING_CHECK_CELL_AXES ) need_cell = 1;
if ( need_cell && (cell == NULL) ) {
ERROR("DirAx needs a unit cell for this set of flags.\n");
return NULL;
}
+ /* Flags that DirAx knows about */
+ *indm &= INDEXING_METHOD_MASK | INDEXING_CHECK_CELL_COMBINATIONS
+ | INDEXING_CHECK_CELL_AXES | INDEXING_CHECK_PEAKS;
+
dp = malloc(sizeof(struct dirax_private));
if ( dp == NULL ) return NULL;
dp->ltl = ltl;
dp->template = cell;
- dp->indm = indm;
+ dp->indm = *indm;
return (IndexingPrivate *)dp;
}