aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2023-08-30 13:53:34 +0200
committerThomas White <taw@physics.org>2023-08-30 13:53:34 +0200
commit2db4f5df4bb8b5bdf8e510252de3ba500872a8ef (patch)
treef8e0a66bbc4f332addddafbc1d60ad82ea1db5a3
parente7e23a6a8ef8b2352e3e4d684d5a422e4af3d2aa (diff)
align_detector: Add --out-of-plane
-rw-r--r--src/align_detector.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/align_detector.c b/src/align_detector.c
index 49bf6445..050d4331 100644
--- a/src/align_detector.c
+++ b/src/align_detector.c
@@ -61,6 +61,7 @@ static void show_help(const char *s)
" -g, --geometry=file Input geometry file\n"
" -o, --output=file Output geometry file\n"
" -l, --level=n Alignment hierarchy level\n"
+ " --out-of-plane Also refine out of x/y plane\n"
"\n"
" -h, --help Display this help message\n"
" --version Print version number and exit\n");
@@ -226,6 +227,7 @@ int main(int argc, char *argv[])
char line[256];
time_t first_mtime = 0;
int warn_times = 0;
+ int out_of_plane = 0;
/* Long options */
const struct option longopts[] = {
@@ -237,6 +239,7 @@ int main(int argc, char *argv[])
{"input", 1, NULL, 'g'},
{"output", 1, NULL, 'o'},
{"level", 1, NULL, 'l'},
+ {"out-of-plane", 0, &out_of_plane, 1},
{0, 0, NULL, 0}
};
@@ -330,20 +333,21 @@ int main(int argc, char *argv[])
/* Top level */
fprintf(fh, "%i 0 0\n", mille_label(0, GPARAM_DET_TX));
fprintf(fh, "%i 0 0\n", mille_label(0, GPARAM_DET_TY));
- fprintf(fh, "%i 0 -1\n", mille_label(0, GPARAM_DET_TZ));
- fprintf(fh, "%i 0 -1\n", mille_label(0, GPARAM_DET_RX));
- fprintf(fh, "%i 0 -1\n", mille_label(0, GPARAM_DET_RY));
+ fprintf(fh, "%i 0 %i\n", mille_label(0, GPARAM_DET_TZ), out_of_plane ? 0 : -1);
+ fprintf(fh, "%i 0 %i\n", mille_label(0, GPARAM_DET_RX), out_of_plane ? 0 : -1);
+ fprintf(fh, "%i 0 %i\n", mille_label(0, GPARAM_DET_RY), out_of_plane ? 0 : -1);
fprintf(fh, "%i 0 -1\n", mille_label(0, GPARAM_DET_RZ));
for ( i=0; i<n_groups; i++ ) {
- int f = (groups[i].hierarchy_level > level) ? -1 : 0;
+ int f_inplane = (groups[i].hierarchy_level > level) ? -1 : 0;
+ int f_outplane = out_of_plane ? f_inplane : -1;
if ( groups[i].hierarchy_level == 0 ) continue;
- fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_TX), f);
- fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_TY), f);
- fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_TZ), -1);
- fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_RX), -1);
- fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_RY), -1);
- fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_RZ), f);
+ fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_TX), f_inplane);
+ fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_TY), f_inplane);
+ fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_TZ), f_outplane);
+ fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_RX), f_outplane);
+ fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_RY), f_outplane);
+ fprintf(fh, "%i 0 %i\n", mille_label(groups[i].serial, GPARAM_DET_RZ), f_inplane);
}
fprintf(fh, "\n");