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 struct GiFieldOfViewConfig {
00049 cxdouble minimum;
00050 cxdouble maximum;
00051 cxbool cube;
00052 };
00053
00054 typedef struct GiFieldOfViewConfig GiFieldOfViewConfig;
00055
00056 struct GiFieldOfView {
00057 GiInstrumentMode mode;
00058
00059 cpl_array* ssn;
00060
00061 struct {
00062 GiImage* spectra;
00063 GiImage* errors;
00064 } fov;
00065
00066 struct {
00067 cx_slist* spectra;
00068 cx_slist* errors;
00069 } images;
00070
00071 struct {
00072 cx_slist* spectra;
00073 cx_slist* errors;
00074 } cubes;
00075 };
00076
00077 typedef struct GiFieldOfView GiFieldOfView;
00078
00079
00080
00081
00082
00083
00084 cxint giraffe_fov_build(GiFieldOfView* result,
00085 GiRebinning* rebinning, GiTable* fibers,
00086 GiTable* wsolution, GiTable* grating,
00087 GiTable* slitgeometry,
00088 GiFieldOfViewConfig* config);
00089
00090
00091
00092
00093
00094
00095 GiFieldOfView* giraffe_fov_new(void);
00096 void giraffe_fov_delete(GiFieldOfView* self);
00097 void giraffe_fov_clear(GiFieldOfView* self);
00098
00099 cxint giraffe_fov_save_cubes(const GiFieldOfView* self,
00100 cpl_propertylist* properties,
00101 const cxchar* filename, cxptr data);
00102
00103
00104 GiFieldOfViewConfig* giraffe_fov_config_create(cpl_parameterlist* list);
00105 void giraffe_fov_config_destroy(GiFieldOfViewConfig* config);
00106 void giraffe_fov_config_add(cpl_parameterlist* list);
00107
00108
00109 #ifdef __cplusplus
00110 }
00111 #endif
00112
00113 #endif