/*============================================================================= * * WCSLIB - an implementation of the FITS WCS proposal. * Copyright (C) 1995-2002, Mark Calabretta * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Library General Public License as published * by the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library * General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street,Fifth Floor, Boston, MA 02110-1301, USA * * Correspondence concerning WCSLIB may be directed to: * Internet email: mcalabre@atnf.csiro.au * Postal address: Dr. Mark Calabretta, * Australia Telescope National Facility, * P.O. Box 76, * Epping, NSW, 2121, * AUSTRALIA * * Author: Mark Calabretta, Australia Telescope National Facility * $Id$ *============================================================================= * * This version of proj.h is based on the version in wcslib-2.9, but has * been modified in the following ways by the Starlink project (e-mail: * ussc@star.rl.ac.uk): * - Support for non-ANSI C prototypes removed * - Changed the name of the WCSLIB_PROJ macro to WCSLIB_PROJ_INCLUDED * - Changed names of all functions and structures to avoid name * clashes with wcslib. * - Change the maximum number of projection parameters to 100. * - Added definition of macro WCSLIB_MXPAR, and use it to define * size of projection parameter array within AstPrjPrm structure. * - Added component "p2" to the AstPrjPrm structure to hold projection * parameters associated with the longitude axis (for use within * the tpn.c file which holds an implementation of the old "TAN with * correction terms" projection). * - Added prototypes for TPN projection functions (defined in file * tpn.c). * - Added prototypes for HPX projection functions. * - Added prototypes for XPH projection functions. *===========================================================================*/ #ifndef WCSLIB_PROJ_INCLUDED #define WCSLIB_PROJ_INCLUDED #ifdef __cplusplus extern "C" { #endif #define WCSLIB_MXPAR 100 extern int npcode; extern char pcodes[26][4]; struct AstPrjPrm { char code[4]; int flag; double phi0, theta0; double r0; double *p; double *p2; double w[20]; int n; int (*astPRJfwd)(const double, const double, struct AstPrjPrm *, double *, double *); int (*astPRJrev)(const double, const double, struct AstPrjPrm *, double *, double *); }; int astPRJset(const char [], struct AstPrjPrm *); int astPRJfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astPRJrev(const double, const double, struct AstPrjPrm *, double *, double *); int astAZPset(struct AstPrjPrm *); int astAZPfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astAZPrev(const double, const double, struct AstPrjPrm *, double *, double *); int astSZPset(struct AstPrjPrm *); int astSZPfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astSZPrev(const double, const double, struct AstPrjPrm *, double *, double *); int astTANset(struct AstPrjPrm *); int astTANfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astTANrev(const double, const double, struct AstPrjPrm *, double *, double *); int astSTGset(struct AstPrjPrm *); int astSTGfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astSTGrev(const double, const double, struct AstPrjPrm *, double *, double *); int astSINset(struct AstPrjPrm *); int astSINfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astSINrev(const double, const double, struct AstPrjPrm *, double *, double *); int astARCset(struct AstPrjPrm *); int astARCfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astARCrev(const double, const double, struct AstPrjPrm *, double *, double *); int astZPNset(struct AstPrjPrm *); int astZPNfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astZPNrev(const double, const double, struct AstPrjPrm *, double *, double *); int astZEAset(struct AstPrjPrm *); int astZEAfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astZEArev(const double, const double, struct AstPrjPrm *, double *, double *); int astAIRset(struct AstPrjPrm *); int astAIRfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astAIRrev(const double, const double, struct AstPrjPrm *, double *, double *); int astCYPset(struct AstPrjPrm *); int astCYPfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCYPrev(const double, const double, struct AstPrjPrm *, double *, double *); int astCEAset(struct AstPrjPrm *); int astCEAfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCEArev(const double, const double, struct AstPrjPrm *, double *, double *); int astCARset(struct AstPrjPrm *); int astCARfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCARrev(const double, const double, struct AstPrjPrm *, double *, double *); int astMERset(struct AstPrjPrm *); int astMERfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astMERrev(const double, const double, struct AstPrjPrm *, double *, double *); int astSFLset(struct AstPrjPrm *); int astSFLfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astSFLrev(const double, const double, struct AstPrjPrm *, double *, double *); int astPARset(struct AstPrjPrm *); int astPARfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astPARrev(const double, const double, struct AstPrjPrm *, double *, double *); int astMOLset(struct AstPrjPrm *); int astMOLfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astMOLrev(const double, const double, struct AstPrjPrm *, double *, double *); int astAITset(struct AstPrjPrm *); int astAITfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astAITrev(const double, const double, struct AstPrjPrm *, double *, double *); int astCOPset(struct AstPrjPrm *); int astCOPfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCOPrev(const double, const double, struct AstPrjPrm *, double *, double *); int astCOEset(struct AstPrjPrm *); int astCOEfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCOErev(const double, const double, struct AstPrjPrm *, double *, double *); int astCODset(struct AstPrjPrm *); int astCODfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCODrev(const double, const double, struct AstPrjPrm *, double *, double *); int astCOOset(struct AstPrjPrm *); int astCOOfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCOOrev(const double, const double, struct AstPrjPrm *, double *, double *); int astBONset(struct AstPrjPrm *); int astBONfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astBONrev(const double, const double, struct AstPrjPrm *, double *, double *); int astPCOset(struct AstPrjPrm *); int astPCOfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astPCOrev(const double, const double, struct AstPrjPrm *, double *, double *); int astTSCset(struct AstPrjPrm *); int astTSCfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astTSCrev(const double, const double, struct AstPrjPrm *, double *, double *); int astCSCset(struct AstPrjPrm *); int astCSCfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astCSCrev(const double, const double, struct AstPrjPrm *, double *, double *); int astQSCset(struct AstPrjPrm *); int astQSCfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astQSCrev(const double, const double, struct AstPrjPrm *, double *, double *); int astHPXset(struct AstPrjPrm *); int astHPXfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astHPXrev(const double, const double, struct AstPrjPrm *, double *, double *); int astXPHset(struct AstPrjPrm *); int astXPHfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astXPHrev(const double, const double, struct AstPrjPrm *, double *, double *); int astTPNset(struct AstPrjPrm *); int astTPNfwd(const double, const double, struct AstPrjPrm *, double *, double *); int astTPNrev(const double, const double, struct AstPrjPrm *, double *, double *); extern const char *astPRJset_errmsg[]; extern const char *astPRJfwd_errmsg[]; extern const char *astPRJrev_errmsg[]; #ifdef __cplusplus }; #endif #endif /* WCSLIB_PROJ_INCLUDED */