1 #if !defined( UNIT_INCLUDED )  /* Include this file only once */
2 #define UNIT_INCLUDED
3 /*
4 *+
5 *  Name:
6 *     unit.h
7 
8 *  Purpose:
9 *     Define the interface to the Unit module.
10 
11 *  Description:
12 *     This module defines functions which identify units and transform
13 *     between them.
14 *
15 *     Note that this module is not a class implementation, although it
16 *     resembles one.
17 
18 *  Functions Defined:
19 *     Public:
20 *        None.
21 *
22 *     Protected:
23 
24 *  Copyright:
25 *     Copyright (C) 1997-2006 Council for the Central Laboratory of the
26 *     Research Councils
27 
28 *  Licence:
29 *     This program is free software: you can redistribute it and/or
30 *     modify it under the terms of the GNU Lesser General Public
31 *     License as published by the Free Software Foundation, either
32 *     version 3 of the License, or (at your option) any later
33 *     version.
34 *
35 *     This program is distributed in the hope that it will be useful,
36 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
37 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
38 *     GNU Lesser General Public License for more details.
39 *
40 *     You should have received a copy of the GNU Lesser General
41 *     License along with this program.  If not, see
42 *     <http://www.gnu.org/licenses/>.
43 
44 *  Authors:
45 *     DSB: D.S. Berry (Starlink)
46 
47 *  History:
48 *     10-DEC-2002 (DSB):
49 *        Original version.
50 *-
51 */
52 
53 /* Include files. */
54 /* ============== */
55 #include "mapping.h"             /* Coordinate mappings */
56 
57 /* C header files. */
58 /* --------------- */
59 
60 /* Function prototypes. */
61 /* ==================== */
62 #if defined(astCLASS)            /* Protected  */
63 AstMapping *astUnitMapper_( const char *, const char *, const char *,
64                             char **, int * );
65 const char *astUnitLabel_( const char *, int * );
66 double astUnitAnalyser_( const char *, double[9], int * );
67 const char *astUnitNormaliser_( const char *, int * );
68 #endif
69 
70 /* Function interfaces. */
71 /* ==================== */
72 /* These wrap up the functions defined by this module. */
73 
74 #if defined(astCLASS)            /* Protected */
75 #define astUnitMapper(in,out,inlab,outlab) astINVOKE(O,astUnitMapper_(in,out,inlab,outlab,STATUS_PTR))
76 #define astUnitAnalyser(in,powers) astUnitAnalyser_(in,powers,STATUS_PTR)
77 #define astUnitNormaliser(in) astUnitNormaliser_(in,STATUS_PTR)
78 #define astUnitLabel(sym) astINVOKE(O,astUnitLabel_(sym,STATUS_PTR))
79 #endif
80 #endif
81 
82 
83 
84