gifov.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GIFOV_H
00029 #define GIFOV_H
00030
00031 #include <cxslist.h>
00032
00033 #include <cpl_macros.h>
00034 #include <cpl_array.h>
00035 #include <cpl_parameterlist.h>
00036
00037 #include <giimage.h>
00038 #include <gitable.h>
00039 #include <gicube.h>
00040 #include <girebinning.h>
00041
00042
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046
00047
00048 enum GiFieldOfViewCubeFormat {
00049 GIFOV_FORMAT_SINGLE = 1 << 0,
00050 GIFOV_FORMAT_ESO3D = 1 << 1
00051 };
00052
00053 typedef enum GiFieldOfViewCubeFormat GiFieldOfViewCubeFormat;
00054
00055
00056 struct GiFieldOfViewConfig {
00057 cxdouble minimum;
00058 cxdouble maximum;
00059 cxbool cube;
00060
00061 GiFieldOfViewCubeFormat format;
00062 };
00063
00064 typedef struct GiFieldOfViewConfig GiFieldOfViewConfig;
00065
00066
00067 struct GiFieldOfView {
00068 GiInstrumentMode mode;
00069
00070 cpl_array* ssn;
00071
00072 struct {
00073 GiImage* spectra;
00074 GiImage* errors;
00075 } fov;
00076
00077 struct {
00078 cx_slist* spectra;
00079 cx_slist* errors;
00080 } images;
00081
00082 struct {
00083 cx_slist* spectra;
00084 cx_slist* errors;
00085 } cubes;
00086 };
00087
00088 typedef struct GiFieldOfView GiFieldOfView;
00089
00090
00091
00092
00093
00094
00095 cxint giraffe_fov_build(GiFieldOfView* result,
00096 GiRebinning* rebinning, GiTable* fibers,
00097 GiTable* wsolution, GiTable* grating,
00098 GiTable* slitgeometry,
00099 GiFieldOfViewConfig* config);
00100
00101
00102
00103
00104
00105
00106 GiFieldOfView* giraffe_fov_new(void);
00107 void giraffe_fov_delete(GiFieldOfView* self);
00108 void giraffe_fov_clear(GiFieldOfView* self);
00109
00110 cxint giraffe_fov_save_cubes(const GiFieldOfView* self,
00111 cpl_propertylist* properties,
00112 const cxchar* filename, cxptr data);
00113
00114 cxint giraffe_fov_save_cubes_eso3d(const GiFieldOfView* self,
00115 cpl_propertylist* properties,
00116 const cxchar* filename, cxptr data);
00117
00118 GiFieldOfViewConfig* giraffe_fov_config_create(cpl_parameterlist* list);
00119 void giraffe_fov_config_destroy(GiFieldOfViewConfig* config);
00120 void giraffe_fov_config_add(cpl_parameterlist* list);
00121
00122
00123 #ifdef __cplusplus
00124 }
00125 #endif
00126
00127 #endif