/usr/include/wcslib-5.18/pgwcsl.h is in wcslib-dev 5.18-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /*============================================================================
PGSBOX 5.18 - draw curvilinear coordinate axes for PGPLOT.
Copyright (C) 1997-2018, Mark Calabretta
This file is part of PGSBOX.
PGSBOX 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.
PGSBOX 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 Public License
along with PGSBOX. If not, see http://www.gnu.org/licenses.
Direct correspondence concerning PGSBOX to mark@calabretta.id.au
Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
http://www.atnf.csiro.au/people/Mark.Calabretta
$Id: pgwcsl.h,v 5.18 2018/01/10 08:32:14 mcalabre Exp $
*=============================================================================
*
* pgwcsl_() is an NLFUNC for PGSBOX that defines curvilinear celestial
* coordinate systems by interfacing to WCSLIB 4.x.
*
* Since WCSLIB 4.x is a C library, pgwcsl_() is written in C. However, as
* PGSBOX expects NLFUNC to be a FORTRAN subroutine, its interfaces
* necessarily emulate those of a FORTRAN subroutine. Hence the trailing
* underscore in the name of the function and the pointer (reference)
* argument list.
*
* The wcsprm struct on which WCSLIB 4.x is based is passed as an integer
* array of size WCSLEN at least (WCSLEN is defined in wcs.h). While the
* contents of this array are not interpretable in FORTRAN, it may be
* constructed and interrogated by service routines (WCSPUT and WCSGET)
* provided with the FORTRAN wrappers for WCSLIB 4.x. The array is cast to
* (struct wcsprm *) for use here and in WCSLIB.
*
* Given:
* opcode int* Transformation code:
* 2: Compute a set of pixel coordinates that
* describe a path between this and the previous
* pair of world coordinates remembered from the
* last call with opcode == 1 || 2.
* 1: Compute pixel coordinates from world
* coordinates.
* 0: Initialize.
* -1: Compute world coordinates from pixel
* coordinates.
*
* nlc int* Number of elements in nlcprm[] (not used).
*
* nli int* Number of elements in wcs (at least WCSLEN).
*
* nld int* Number of elements in nldprm (not used).
*
* nlcprm char[nlc]
* Character array (not used).
*
* Given and/or returned:
* wcs int[nli] Integer array that contains the wcsprm struct (see
* below).
*
* nldprm double[nld]
* Double precision array (not used).
*
* world double[2]
* World coordinates. world[0] and world[1] are the
* longitude and latitude, in degrees. Given if
* opcode > 0, returned if opcode < 0.
*
* pixel double[2]
* Pixel coordinates. Given if opcode < 0, returned if
* opcode > 0.
*
* contrl int* Control flag for opcode == 2:
* 0: Normal state
* 1: A discontinuity has been encountered; force
* PGSBOX to flush its plotting buffer and call
* pgwcsl_() again with the same world
* coordinates.
* 2: Call pgwcsl_() again with the same world
* coordinates.
*
* contxt double[20]
* Context elements for opcode == 2.
*
* Returned:
* ierr int* Status return value:
* 0: Success.
* 1: Invalid parameters.
* 2: Invalid world coordinate.
* 3: Invalid pixel coordinate.
*
* Notes
* -----
* 1) pgwcsl_() assumes a simple 2-D image.
*
* 2) The wcsprm struct (contained in the wcs[] array) is maintained by
* pgwcsl_() and WCSLIB and must not be disturbed by the caller after
* initialization with opcode == 0.
*
* 3) pgwcsl_() doesn't properly handle discontinuities between the faces
* of the quadcube projections nor in the polar region of the HPX
* projection.
*
*
*===========================================================================*/
#ifndef PGSBOX_PGWCSL
#define PGSBOX_PGWCSL
#include "cpgsbox.h"
/* Fortran name mangling. */
#include <wcsconfig_f77.h>
#define pgwcsl_ F77_FUNC(pgwcsl, PGWCSL)
#ifdef __cplusplus
extern "C" {
#endif
nlfunc_t pgwcsl_;
#ifdef __cplusplus
}
#endif
#endif /* PGSBOX_PGWCSL */
|