diff options
Diffstat (limited to 'libcrystfel/src/detgeom.h')
-rw-r--r-- | libcrystfel/src/detgeom.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/libcrystfel/src/detgeom.h b/libcrystfel/src/detgeom.h index 7f291a7a..b06ccb8f 100644 --- a/libcrystfel/src/detgeom.h +++ b/libcrystfel/src/detgeom.h @@ -86,12 +86,28 @@ struct detgeom_panel }; +struct detgeom_panel_group +{ + char *name; + int n_children; + + /* If n_children > 0, here are the child groups */ + const struct detgeom_panel_group **children; + + /* If n_children == 0, this is a leaf node, so: */ + struct detgeom_panel *panel; +}; + + struct detgeom { struct detgeom_panel *panels; - int n_panels; + int n_panels; + + struct detgeom_panel_group *top_group; }; + extern void detgeom_transform_coords(struct detgeom_panel *p, double fs, double ss, double wavelength, @@ -107,6 +123,8 @@ extern void show_panel(struct detgeom_panel *p); extern double detgeom_mean_camera_length(struct detgeom *dg); +extern struct detgeom_panel *detgeom_find_panel(struct detgeom *dg, const char *name); + #ifdef __cplusplus } #endif |