diff options
author | Kenneth Beyerlein <kenneth.beyerlein@desy.de> | 2014-01-30 17:40:59 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2015-09-15 13:46:57 +0200 |
commit | f4aed5030aed63c13c857c6955fa09ff06763261 (patch) | |
tree | fb3e18182afc2882ca45a07963bc282bb411d6af /libcrystfel/src/index.c | |
parent | 2e0b645d773d569101b54d535a5d97d6624d8afe (diff) |
Implement Felix Indexer
Diffstat (limited to 'libcrystfel/src/index.c')
-rw-r--r-- | libcrystfel/src/index.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/libcrystfel/src/index.c b/libcrystfel/src/index.c index 944c3f10..b409e80e 100644 --- a/libcrystfel/src/index.c +++ b/libcrystfel/src/index.c @@ -12,6 +12,7 @@ * 2010-2011 Richard Kirian <rkirian@asu.edu> * 2012 Lorenzo Galli * 2013 Cornelius Gati <cornelius.gati@cfel.de> + * 2015 Kenneth Beyerlein <kenneth.beyerlein@desy.de> * * This file is part of CrystFEL. * @@ -51,6 +52,7 @@ #include "index.h" #include "geometry.h" #include "cell-utils.h" +#include "felix.h" static int debug_index(struct image *image) @@ -67,7 +69,8 @@ static int debug_index(struct image *image) IndexingPrivate **prepare_indexing(IndexingMethod *indm, UnitCell *cell, - struct detector *det, float *ltl) + struct detector *det, float *ltl, + const char *options) { int n; int nm = 0; @@ -106,6 +109,10 @@ IndexingPrivate **prepare_indexing(IndexingMethod *indm, UnitCell *cell, iprivs[n] = (IndexingPrivate *)strdup("Hello!"); break; + case INDEXING_FELIX : + iprivs[n] = felix_prepare(&indm[n], cell, det, ltl, options); + break; + default : ERROR("Don't know how to prepare indexing method %i\n", indm[n]); @@ -170,10 +177,14 @@ void cleanup_indexing(IndexingMethod *indms, IndexingPrivate **privs) mosflm_cleanup(privs[n]); break; - case INDEXING_XDS : + case INDEXING_XDS : xds_cleanup(privs[n]); break; + case INDEXING_FELIX : + felix_cleanup(privs[n]); + break; + case INDEXING_DEBUG : free(privs[n]); break; @@ -244,6 +255,11 @@ static int try_indexer(struct image *image, IndexingMethod indm, case INDEXING_DEBUG : return debug_index(image); + break; + + case INDEXING_FELIX : + return felix_index(image, ipriv); + break; default : ERROR("Unrecognised indexing method: %i\n", indm); @@ -366,6 +382,10 @@ char *indexer_str(IndexingMethod indm) strcpy(str, "mosflm"); break; + case INDEXING_FELIX : + strcpy(str, "felix"); + break; + case INDEXING_XDS : strcpy(str, "xds"); break; @@ -438,9 +458,12 @@ IndexingMethod *build_indexer_list(const char *str) } else if ( strcmp(methods[i], "mosflm") == 0) { list[++nmeth] = INDEXING_DEFAULTS_MOSFLM; - } else if ( strcmp(methods[i], "xds") == 0) { + } else if ( strcmp(methods[i], "xds") == 0) { list[++nmeth] = INDEXING_DEFAULTS_XDS; + } else if ( strcmp(methods[i], "felix") == 0) { + list[++nmeth] = INDEXING_DEFAULTS_FELIX; + } else if ( strcmp(methods[i], "none") == 0) { list[++nmeth] = INDEXING_NONE; |