gislitgeometry.h
00001 /* $Id: gislitgeometry.h,v 1.8 2007/03/12 12:53:23 rpalsa Exp $ 00002 * 00003 * This file is part of the GIRAFFE Pipeline 00004 * Copyright (C) 2002-2006 European Southern Observatory 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00019 */ 00020 00021 /* 00022 * $Author: rpalsa $ 00023 * $Date: 2007/03/12 12:53:23 $ 00024 * $Revision: 1.8 $ 00025 * $Name: giraffe-2_8_8 $ 00026 */ 00027 00028 #ifndef GISLITGEOMETRY_H 00029 #define GISLITGEOMETRY_H 00030 00031 #include <cxmacros.h> 00032 #include <cxtypes.h> 00033 #include <cxstring.h> 00034 00035 #include <gitable.h> 00036 00037 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #endif 00041 00042 00052 struct GiSlitGeometry { 00053 00054 cpl_matrix *fps; 00055 cpl_matrix *rindex; 00056 00057 cpl_matrix *xf; 00058 cpl_matrix *yf; 00059 00063 cxint nsubslits; 00064 00071 cpl_matrix **subslits; 00072 00073 }; 00074 00075 typedef struct GiSlitGeometry GiSlitGeometry; 00076 00077 00078 GiSlitGeometry *giraffe_slitgeometry_new(void); 00079 GiSlitGeometry *giraffe_slitgeometry_create(GiTable *, cxbool); 00080 GiSlitGeometry *giraffe_slitgeometry_duplicate(GiSlitGeometry *); 00081 void giraffe_slitgeometry_delete(GiSlitGeometry *); 00082 00083 cxint giraffe_slitgeometry_size(GiSlitGeometry *); 00084 void giraffe_slitgeometry_resize(GiSlitGeometry *, cxint); 00085 00086 void giraffe_slitgeometry_set(GiSlitGeometry *, cxint, cpl_matrix *); 00087 cpl_matrix* giraffe_slitgeometry_get(GiSlitGeometry *, cxint); 00088 void giraffe_slitgeometry_print(GiSlitGeometry *); 00089 00090 00091 GiTable *giraffe_slitgeometry_load(const GiTable *fibers, 00092 const cxchar *filename, cxint pos, 00093 const cxchar *tag); 00094 cpl_frame *giraffe_slitgeometry_save(const GiTable *slitgeometry); 00095 00096 00097 #ifdef __cplusplus 00098 } 00099 #endif 00100 00101 #endif /* GISLITGEOMETRY_H */