diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2018-09-21 17:02:41 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2018-09-21 17:02:41 (GMT) |
commit | bd7d67f66c53df36bb50e3423bfc91eae8618201 (patch) | |
tree | 343b06f7a9f2decdfa8d3e4aae885be3e909aa14 /ast/wcsmap.h | |
parent | f2f490ba0f98917b590fd7e538b9514e4119e640 (diff) | |
download | blt-bd7d67f66c53df36bb50e3423bfc91eae8618201.zip blt-bd7d67f66c53df36bb50e3423bfc91eae8618201.tar.gz blt-bd7d67f66c53df36bb50e3423bfc91eae8618201.tar.bz2 |
update ast
Diffstat (limited to 'ast/wcsmap.h')
-rw-r--r-- | ast/wcsmap.h | 591 |
1 files changed, 0 insertions, 591 deletions
diff --git a/ast/wcsmap.h b/ast/wcsmap.h deleted file mode 100644 index 16ec3a7..0000000 --- a/ast/wcsmap.h +++ /dev/null @@ -1,591 +0,0 @@ -#if !defined( WCSMAP_INCLUDED ) /* Include this file only once */ -#define WCSMAP_INCLUDED -/* -*+ -* Name: -* wcsmap.h - -* Type: -* C include file. - -* Purpose: -* Define the interface to the WcsMap class. - -* Invocation: -* #include "wcsmap.h" - -* Description: -* This include file defines the interface to the WcsMap class and -* provides the type definitions, function prototypes and macros, -* etc. needed to use this class. -* -* The WcsMap class implements Mappings that transform a pair of -* longitude/latitude values into a pair of projected Cartesian -* coordinates. All the projections included in FITS WCS are included. -* For more information about these projections, see the appropriate -* FITS document. - -* Inheritance: -* The WcsMap class inherits from the Mapping class. - -* Attributes Over-Ridden: -* None. - -* New Attributes Defined: -* NatLat (double) -* This attribute gives the latitude of the reference point of -* a FITS WCS projection, in the native coordinate system. The value -* returned is in radians. A value of AST__BAD is returned if -* no value is defined. This attribute is read only, and may change -* if new values are assigned to the projection parameters. -* NatLon (double) -* This attribute gives the longitude of the reference point of -* a FITS WCS projection, in the native coordinate system. The value -* returned is in radians. A value of AST__BAD is returned if -* no value is defined. This attribute is read only, and may change -* if new values are assigned to the projection parameters. -* ProjP(i) (double) -* This attribute provides aliases for the PV attributes, which -* specifies the projection parameter values to be used by a WcsMap -* when implementing a FITS-WCS sky projection. ProjP is retained for -* compatibility with previous versions of FITS-WCS and AST. New -* applications should use the PV attibute instead. -* PVj_m (double) -* This attribute gives the parameter values used by a FITS WCS -* projection. The index j is the axis index in the range 1 to 99, and -* the index m is the parameter index in the range 0 to 99. They will -* have the value AST__BAD if undefined. By default, no projection -* parameters are defined. These should be assigned appropriate values -* before using a WcsMap to transform points. -* WcsAxis(lonlat) (int) -* This attribute gives the indices of the longitude and latitude axes -* of a FITS WCS projection within the coordinate system used by a -* WcsMap. If "lonlat" is 1 then the index of the longitude axis is -* returned. If it is 2 the index of the latitude axis is returned. -* The first axis in the coordinate system is axis 1. This is a -* read-only attribute. -* WcsType (int) -* This attribute gives the FITS WCS projection type implemented by a -* WcsMap. Macros giving the integer value associated with supported -* projections are defined. They have the general form "AST__xxx" where -* "xxx" is the 3-character code used to represent the projection in the -* FITS CTYPE keyword. - -* Methods Over-Ridden: -* Public: -* None. -* -* Protected: -* astClearAttrib -* Clear an attribute value for a WcsMap. -* astGetAttrib -* Get an attribute value for a WcsMap. -* astSetAttrib -* Set an attribute value for a WcsMap. -* astTestAttrib -* Test if an attribute value has been set for a WcsMap. -* astTransform -* Apply a WcsMap to transform a set of points. - -* New Methods Defined: -* Public: -* None. -* -* Protected: -* astClearPV -* Clear a PVi_j attribute value for a WcsMap. -* astGetNatLat -* Get the NatLat attribute value for a WcsMap. -* astGetNatLon -* Get the NatLon attribute value for a WcsMap. -* astGetPV -* Get a PVi_j attribute value for a WcsMap. -* astGetWcsAxis -* Get a WcsAxis attribute value for a WcsMap. -* astGetWcsType -* Get the WcsType attribute value for a WcsMap. -* astIsZenithal -* Is the projection zenithal? -* astSetPV -* Set a PVi_j attribute value for a WcsMap. -* astTestPV -* Test if a PVi_j attribute value has been set for a WcsMap. -* astWcsPrjName -* Return the FITS CTYPE keyword value for a given projection type. -* astWcsPrjDesc -* Return a textual description for a given projection type. -* astWcsPrjType -* Return the projection type given a FITS CTYPE keyword value. - -* Other Class Functions: -* Public: -* astIsAWcsMap -* Test class membership. -* astWcsMap -* Create a WcsMap. -* -* Protected: -* astCheckWcsMap -* Validate class membership. -* astInitWcsMap -* Initialise a WcsMap. -* astInitWcsMapVtab -* Initialise the virtual function table for the WcsMap class. -* astLoadWcsMap -* Load a WcsMap. - -* Macros: -* Public: -* AST__WCSMX -* Maximum number of parameters associated with a projection. -* AST__DPI -* 180 degrees in radians. -* AST__DPIBY2 -* 90 degrees in radians. -* AST__DD2R -* Factor for converting degrees to radians. -* AST__DR2D -* Factor for converting radians to degrees. -* AST__AZP -* An integer identifier for the FITS AZP projection. -* AST__TAN -* An integer identifier for the FITS TAN projection. -* AST__SIN -* An integer identifier for the FITS SIN projection. -* AST__STG -* An integer identifier for the FITS STG projection. -* AST__ARC -* An integer identifier for the FITS ARC projection. -* AST__ZPN -* An integer identifier for the FITS ZPN projection. -* AST__ZEA -* An integer identifier for the FITS ZEA projection. -* AST__AIR -* An integer identifier for the FITS AIR projection. -* AST__CYP -* An integer identifier for the FITS CYP projection. -* AST__CAR -* An integer identifier for the FITS CAR projection. -* AST__MER -* An integer identifier for the FITS MER projection. -* AST__CEA -* An integer identifier for the FITS CEA projection. -* AST__COP -* An integer identifier for the FITS COP projection. -* AST__COD -* An integer identifier for the FITS COD projection. -* AST__COE -* An integer identifier for the FITS COE projection. -* AST__COO -* An integer identifier for the FITS COO projection. -* AST__BON -* An integer identifier for the FITS BON projection. -* AST__PCO -* An integer identifier for the FITS PCO projection. -* AST__GLS -* A depracated integer identifier for the FITS SFL projection. -* AST__SFL -* An integer identifier for the FITS SFL projection. -* AST__PAR -* An integer identifier for the FITS PAR projection. -* AST__AIT -* An integer identifier for the FITS AIT projection. -* AST__MOL -* An integer identifier for the FITS MOL projection. -* AST__CSC -* An integer identifier for the FITS CSC projection. -* AST__QSC -* An integer identifier for the FITS QSC projection. -* AST__TSC -* An integer identifier for the FITS TSC projection -* AST__HPX -* An integer identifier for the FITS HPX projection. -* AST__XPH -* An integer identifier for the FITS XPH projection. -* AST__TPN -* An integer identifier for a "TAN with correction terms" projection. -* AST__WCSBAD -* An integer identifier for a "null" projection. -* -* Protected: -* None. - -* Type Definitions: -* Public: -* AstWcsMap -* WcsMap object type. -* -* Protected: -* AstWcsMapVtab -* WcsMap virtual function table type. - -* Feature Test Macros: -* astCLASS -* If the astCLASS macro is undefined, only public symbols are -* made available, otherwise protected symbols (for use in other -* class implementations) are defined. This macro also affects -* the reporting of error context information, which is only -* provided for external calls to the AST library. - -* Copyright: -* Copyright (C) 1997-2006 Council for the Central Laboratory of the -* Research Councils - -* Licence: -* This program is free software: you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation, either -* version 3 of the License, or (at your option) any later -* version. -* -* This program 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 Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General -* License along with this program. If not, see -* <http://www.gnu.org/licenses/>. - -* Authors: -* DSB: D.S. Berry (Starlink) - -* History: -* 15-Feb-1996 (DSB): -* Original version. -* 23-MAR-1996 (DSB): -* Support for PointSets with more than 2 axes added. -* 18-NOV-1996 (DSB): -* Updated to include attributes, etc. -* 26-SEP-1997 (DSB): -* Included new protected function, astPrjDesc. -* 11-FEB-2000 (DSB): -* Replaced wcsmap component projp by pointers p and np. -* 20-OCT-2002 (DSB): -* Added astIsZenithal -* 8-JAN-2003 (DSB): -* Added protected astInitWcsMapVtab method. -*- -*/ - -/* Include files. */ -/* ============== */ -/* Interface definitions. */ -/* ---------------------- */ -#include "mapping.h" /* Coordinate mappings (parent class) */ -#include "proj.h" /* Mark Calabretta's WCSLIB library header - file */ - -#if defined(astCLASS) /* Protected */ -#include "pointset.h" /* Sets of points/coordinates */ -#include "channel.h" /* I/O channels */ -#endif - -/* C header files. */ -/* --------------- */ -#if defined(astCLASS) /* Protected */ -#include <stddef.h> -#endif - -/* Macros. */ -/* ------- */ -/* Max. number of parameters for a WCS projection */ - -#if defined(astCLASS) || defined(astFORTRAN77) -#define STATUS_PTR status -#else -#define STATUS_PTR astGetStatusPtr -#endif -#define AST__WCSMX 10 - -/* pi: 180 degrees in radians - from SLALIB file slamac.h. */ -#define AST__DPI 3.1415926535897932384626433832795028841971693993751 - -/* pi/2: 90 degrees in radians - from SLALIB file slamac.h. */ -#define AST__DPIBY2 1.5707963267948966192313216916397514420985846996876 - -/* pi/180: degrees to radians - from SLALIB file slamac.h. */ -#define AST__DD2R 0.017453292519943295769236907684886127134428718885417 - -/* 180/pi: radians to degrees - from SLALIB file slamac.h. */ -#define AST__DR2D 57.295779513082320876798154814105170332405472466564 - -/* Projection Types: (note, WCSBAD must be the last in this list) */ - -#define AST__AZP 1 -#define AST__SZP 2 -#define AST__TAN 3 -#define AST__STG 4 -#define AST__SIN 5 -#define AST__ARC 6 -#define AST__ZPN 7 -#define AST__ZEA 8 -#define AST__AIR 9 -#define AST__CYP 10 -#define AST__CEA 11 -#define AST__CAR 12 -#define AST__MER 13 -#define AST__SFL 14 -#define AST__PAR 15 -#define AST__MOL 16 -#define AST__AIT 17 -#define AST__COP 18 -#define AST__COE 19 -#define AST__COD 20 -#define AST__COO 21 -#define AST__BON 22 -#define AST__PCO 23 -#define AST__TSC 24 -#define AST__CSC 25 -#define AST__QSC 26 -#define AST__NCP 27 -#define AST__GLS 28 -#define AST__TPN 29 -#define AST__HPX 30 -#define AST__XPH 31 -#define AST__WCSBAD 32 /* A bad projection type */ - -/* Define a dummy __attribute__ macro for use on non-GNU compilers. */ -#ifndef __GNUC__ -# define __attribute__(x) /*NOTHING*/ -#endif - -/* Type Definitions. */ -/* ================= */ -/* WcsMap structure. */ -/* ------------------ */ -/* This structure contains all information that is unique to each object in - the class (e.g. its instance variables). */ -typedef struct AstWcsMap { - -/* Attributes inherited from the parent class. */ - AstMapping mapping; /* Parent class structure */ - -/* Attributes specific to objects in this class. */ - int type; /* Projection type */ - int wcsaxis[2]; /* Indices of lon and lat. axes */ - double **p; /* Pointer to array of projection parameter arrays */ - int *np; /* Pointer to array of projection parameter counts */ - struct AstPrjPrm params; /* WCS structure holding projection - parameters, etc. Defined in proj.h */ - int fits_proj; /* Use as FITS-WCS projection? */ - int tpn_tan; /* Include TAN projection in TPN transformation? */ -} AstWcsMap; - -/* Virtual function table. */ -/* ----------------------- */ -/* This table contains all information that is the same for all - objects in the class (e.g. pointers to its virtual functions). */ -#if defined(astCLASS) /* Protected */ -typedef struct AstWcsMapVtab { - -/* Properties (e.g. methods) inherited from the parent class. */ - AstMappingVtab mapping_vtab; /* Parent class virtual function table */ - -/* A Unique identifier to determine class membership. */ - AstClassIdentifier id; - -/* Properties (e.g. methods) specific to this class. */ - double (* GetNatLat)( AstWcsMap *, int * ); - double (* GetNatLon)( AstWcsMap *, int * ); - double (* GetPV)( AstWcsMap *, int, int, int * ); - int (* GetWcsAxis)( AstWcsMap *, int, int * ); - int (* GetWcsType)( AstWcsMap *, int * ); - int (* GetPVMax)( AstWcsMap *, int, int * ); - int (* TestPV)( AstWcsMap *, int, int, int * ); - void (* ClearPV)( AstWcsMap *, int, int, int * ); - void (* SetPV)( AstWcsMap *, int, int, double, int * ); - int (* IsZenithal)( AstWcsMap *, int * ); - - int (* GetFITSProj)( AstWcsMap *, int * ); - int (* TestFITSProj)( AstWcsMap *, int * ); - void (* ClearFITSProj)( AstWcsMap *, int * ); - void (* SetFITSProj)( AstWcsMap *, int, int * ); - - int (* GetTPNTan)( AstWcsMap *, int * ); - int (* TestTPNTan)( AstWcsMap *, int * ); - void (* ClearTPNTan)( AstWcsMap *, int * ); - void (* SetTPNTan)( AstWcsMap *, int, int * ); - -} AstWcsMapVtab; - -#if defined(THREAD_SAFE) - -/* Define a structure holding all data items that are global within this - class. */ -typedef struct AstWcsMapGlobals { - AstWcsMapVtab Class_Vtab; - int Class_Init; - char GetAttrib_Buff[ 101 ]; -} AstWcsMapGlobals; - -#endif -#endif - -/* Function prototypes. */ -/* ==================== */ -/* Prototypes for standard class functions. */ -/* ---------------------------------------- */ -astPROTO_CHECK(WcsMap) /* Check class membership */ -astPROTO_ISA(WcsMap) /* Test class membership */ - -/* Constructor. */ -#if defined(astCLASS) /* Protected. */ -AstWcsMap *astWcsMap_( int, int, int, int, const char *, int *, ...); -#else -AstWcsMap *astWcsMapId_( int, int, int, int, const char *, ... )__attribute__((format(printf,5,6))); -#endif - -#if defined(astCLASS) /* Protected */ - -/* Initialiser. */ -AstWcsMap *astInitWcsMap_( void *, size_t, int, AstWcsMapVtab *, - const char *, int, int, int, int, int * ); - -/* Vtab initialiser. */ -void astInitWcsMapVtab_( AstWcsMapVtab *, const char *, int * ); - -/* Loader. */ -AstWcsMap *astLoadWcsMap_( void *, size_t, AstWcsMapVtab *, - const char *, AstChannel *, int * ); - -/* Thread-safe initialiser for all global data used by this module. */ -#if defined(THREAD_SAFE) -void astInitWcsMapGlobals_( AstWcsMapGlobals * ); -#endif - -#endif - -/* Prototypes for member functions. */ -/* -------------------------------- */ -# if defined(astCLASS) /* Protected */ - const char *astWcsPrjDesc_( int, int * ); - const char *astWcsPrjName_( int, int * ); - double astGetNatLat_( AstWcsMap *, int * ); - double astGetNatLon_( AstWcsMap *, int * ); - double astGetPV_( AstWcsMap *, int, int, int * ); - int astWcsPrjType_( const char *, int * ); - int astGetWcsAxis_( AstWcsMap *, int, int * ); - int astGetWcsType_( AstWcsMap *, int * ); - int astGetPVMax_( AstWcsMap *, int, int * ); - int astTestPV_( AstWcsMap *, int, int, int * ); - int astIsZenithal_( AstWcsMap *, int * ); - void astClearPV_( AstWcsMap *, int, int, int * ); - void astSetPV_( AstWcsMap *, int, int, double, int * ); - - int astGetFITSProj_( AstWcsMap *, int * ); - int astTestFITSProj_( AstWcsMap *, int * ); - void astClearFITSProj_( AstWcsMap *, int * ); - void astSetFITSProj_( AstWcsMap *, int, int * ); - - int astGetTPNTan_( AstWcsMap *, int * ); - int astTestTPNTan_( AstWcsMap *, int * ); - void astClearTPNTan_( AstWcsMap *, int * ); - void astSetTPNTan_( AstWcsMap *, int, int * ); - -#endif - -/* Function interfaces. */ -/* ==================== */ -/* These macros are wrap-ups for the functions defined by this class - to make them easier to invoke (e.g. to avoid type mis-matches when - passing pointers to objects from derived classes). */ - -/* Interfaces to standard class functions. */ -/* --------------------------------------- */ -/* Some of these functions provide validation, so we cannot use them - to validate their own arguments. We must use a cast when passing - object pointers (so that they can accept objects from derived - classes). */ - -/* Check class membership. */ -#define astCheckWcsMap(this) astINVOKE_CHECK(WcsMap,this,0) -#define astVerifyWcsMap(this) astINVOKE_CHECK(WcsMap,this,1) - -/* Test class membership. */ -#define astIsAWcsMap(this) astINVOKE_ISA(WcsMap,this) - -/* Constructor. */ -#if defined(astCLASS) /* Protected. */ -#define astWcsMap astINVOKE(F,astWcsMap_) -#else -#define astWcsMap astINVOKE(F,astWcsMapId_) -#endif - -#if defined(astCLASS) /* Protected */ - -/* Initialiser. */ -#define astInitWcsMap(mem,size,init,vtab,name,ncoord,type,lon,lat) \ -astINVOKE(O,astInitWcsMap_(mem,size,init,vtab,name,ncoord,type,lon,lat,STATUS_PTR)) - -/* Vtab Initialiser. */ -#define astInitWcsMapVtab(vtab,name) astINVOKE(V,astInitWcsMapVtab_(vtab,name,STATUS_PTR)) -/* Loader. */ -#define astLoadWcsMap(mem,size,vtab,name,channel) \ -astINVOKE(O,astLoadWcsMap_(mem,size,vtab,name,astCheckChannel(channel),STATUS_PTR)) -#endif - -/* Interfaces to public member functions. */ -/* -------------------------------------- */ -/* Here we make use of astCheckWcsMap to validate WcsMap pointers - before use. This provides a contextual error report if a pointer - to the wrong sort of Object is supplied. */ - -#if defined(astCLASS) /* Protected */ - -#define astWcsPrjType(ctype) astWcsPrjType_(ctype,STATUS_PTR) -#define astWcsPrjName(type) astWcsPrjName_(type,STATUS_PTR) -#define astWcsPrjDesc(type) astWcsPrjDesc_(type,STATUS_PTR) - -#define astClearPV(this,i,j) \ -astINVOKE(V,astClearPV_(astCheckWcsMap(this),i,j,STATUS_PTR)) -#define astGetPV(this,i,j) \ -astINVOKE(V,astGetPV_(astCheckWcsMap(this),i,j,STATUS_PTR)) -#define astSetPV(this,i,j,par) \ -astINVOKE(V,astSetPV_(astCheckWcsMap(this),i,j,par,STATUS_PTR)) -#define astTestPV(this,i,j) \ -astINVOKE(V,astTestPV_(astCheckWcsMap(this),i,j,STATUS_PTR)) - -#define astClearFITSProj(this) \ -astINVOKE(V,astClearFITSProj_(astCheckWcsMap(this),STATUS_PTR)) -#define astGetFITSProj(this) \ -astINVOKE(V,astGetFITSProj_(astCheckWcsMap(this),STATUS_PTR)) -#define astSetFITSProj(this,value) \ -astINVOKE(V,astSetFITSProj_(astCheckWcsMap(this),value,STATUS_PTR)) -#define astTestFITSProj(this) \ -astINVOKE(V,astTestFITSProj_(astCheckWcsMap(this),STATUS_PTR)) - -#define astClearTPNTan(this) \ -astINVOKE(V,astClearTPNTan_(astCheckWcsMap(this),STATUS_PTR)) -#define astGetTPNTan(this) \ -astINVOKE(V,astGetTPNTan_(astCheckWcsMap(this),STATUS_PTR)) -#define astSetTPNTan(this,value) \ -astINVOKE(V,astSetTPNTan_(astCheckWcsMap(this),value,STATUS_PTR)) -#define astTestTPNTan(this) \ -astINVOKE(V,astTestTPNTan_(astCheckWcsMap(this),STATUS_PTR)) - -#define astGetWcsType(this) \ -astINVOKE(V,astGetWcsType_(astCheckWcsMap(this),STATUS_PTR)) - -#define astGetPVMax(this,i) \ -astINVOKE(V,astGetPVMax_(astCheckWcsMap(this),i,STATUS_PTR)) - -#define astGetNatLat(this) \ -astINVOKE(V,astGetNatLat_(astCheckWcsMap(this),STATUS_PTR)) - -#define astGetNatLon(this) \ -astINVOKE(V,astGetNatLon_(astCheckWcsMap(this),STATUS_PTR)) - -#define astGetWcsAxis(this,index) \ -astINVOKE(V,astGetWcsAxis_(astCheckWcsMap(this),index,STATUS_PTR)) - -#define astIsZenithal(this) \ -astINVOKE(V,astIsZenithal_(astCheckWcsMap(this),STATUS_PTR)) - -#endif -#endif - - - - - |