1 /*
2 
3 -Header_File SpiceUsr.h ( CSPICE user interface definitions )
4 
5 -Abstract
6 
7    Perform CSPICE user interface declarations, including type
8    definitions and function prototype declarations.
9 
10 -Disclaimer
11 
12    THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
13    CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
14    GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
15    ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
16    PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
17    TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
18    WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
19    PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
20    SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
21    SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
22 
23    IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
24    BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
25    LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
26    INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
27    REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
28    REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
29 
30    RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
31    THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
32    CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
33    ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
34 
35 -Required_Reading
36 
37    None.
38 
39 -Particulars
40 
41    This file is an umbrella header that includes all header files
42    required to support the CSPICE application programming interface
43    (API).  Users' application code that calls CSPICE need include only
44    this single header file.  This file includes function prototypes for
45    the entire set of CSPICE routines.  Typedef statements used to create
46    SPICE data types are also included.
47 
48 
49    About SPICE data types
50    ======================
51 
52    To assist with long-term maintainability of CSPICE, NAIF has elected
53    to use typedefs to represent data types occurring in argument lists
54    and as return values of CSPICE functions. These are:
55 
56       SpiceBoolean
57       SpiceChar
58       SpiceDouble
59       SpiceInt
60       ConstSpiceBoolean
61       ConstSpiceChar
62       ConstSpiceDouble
63       ConstSpiceInt
64 
65    The SPICE typedefs map in an arguably natural way to ANSI C types:
66 
67       SpiceBoolean -> enum { SPICEFALSE = 0, SPICETRUE = 1 }
68       SpiceChar    -> char
69       SpiceDouble  -> double
70       SpiceInt     -> int or long
71       ConstX       -> const X  (X = any of the above types)
72 
73    The type SpiceInt is a special case: the corresponding type is picked
74    so as to be half the size of a double. On all currently supported
75    platforms, type double occupies 8 bytes and type int occupies 4
76    bytes.  Other platforms may require a SpiceInt to map to type long.
77 
78    While other data types may be used internally in CSPICE, no other
79    types appear in the API.
80 
81 
82    About CSPICE function prototypes
83    ================================
84 
85    Because CSPICE function prototypes enable substantial compile-time
86    error checking, we recommend that user applications always reference
87    them.  Including the header file SpiceUsr.h in any module that calls
88    CSPICE will automatically make the prototypes available.
89 
90 
91    About CSPICE C style
92    ====================
93 
94    CSPICE is written in ANSI C.  No attempt has been made to support K&R
95    conventions or restrictions.
96 
97 
98    About C++ compatibility
99    =======================
100 
101    The preprocessor directive -D__cplusplus should be used when
102    compiling C++ source code that includes this header file.  This
103    directive will suppress mangling of CSPICE names, permitting linkage
104    to a CSPICE object library built from object modules produced by
105    an ANSI C compiler.
106 
107 -Literature_References
108 
109    None.
110 
111 -Author_and_Institution
112 
113    N.J. Bachman       (JPL)
114    S.C. Krening       (JPL)
115    E.D. Wright        (JPL)
116 
117 -Restrictions
118 
119    The #include statements contained in this file are not part of
120    the CSPICE API.  The set of files included may change without notice.
121    Users should not include these files directly in their own
122    application code.
123 
124 -Version
125 
126    -CSPICE Version 6.0.0, 07-FEB-2010 (NJB)
127 
128       Now includes SpiceOsc.h.
129 
130     27-FEB-2016 (NJB)
131 
132       Updated to include header files
133 
134         SpiceDLA.h
135         SpiceDSK.h
136         SpiceSrf.h
137         SpiceDtl.h
138 
139    -CSPICE Version 5.0.0, 11-MAY-2012 (NJB) (SCK)
140 
141       Updated to include header files
142 
143         SpiceErr.h
144         SpiceFrm.h
145         SpiceOccult.h
146 
147    -CSPICE Version 4.0.0, 30-SEP-2008 (NJB)
148 
149       Updated to include header file
150 
151         SpiceGF.h
152 
153    -CSPICE Version 3.0.0, 19-AUG-2002 (NJB)
154 
155       Updated to include header files
156 
157         SpiceCel.h
158         SpiceCK.h
159         SpiceSPK.h
160 
161    -CSPICE Version 3.0.0, 17-FEB-1999 (NJB)
162 
163       Updated to support suppression of name mangling when included in
164       C++ source code.  Also now interface macros to intercept function
165       calls and perform automatic type casting.
166 
167       Now includes platform macro definition header file.
168 
169       References to types SpiceVoid and ConstSpiceVoid were removed.
170 
171    -CSPICE Version 2.0.0, 06-MAY-1998 (NJB) (EDW)
172 
173 */
174 
175 #ifdef __cplusplus
176    extern "C" {
177 #endif
178 
179 
180 #ifndef HAVE_SPICE_USER
181 
182    #define HAVE_SPICE_USER
183 
184 
185    /*
186    Include CSPICE platform macro definitions.
187    */
188    #include "SpiceZpl.h"
189 
190    /*
191    Include CSPICE data type definitions.
192    */
193    #include "SpiceZdf.h"
194 
195    /*
196    Include the CSPICE error handling interface definitions.
197    */
198    #include "SpiceErr.h"
199 
200    /*
201    Include the CSPICE EK interface definitions.
202    */
203    #include "SpiceEK.h"
204 
205    /*
206    Include the CSPICE frame subsystem API definitions.
207    */
208    #include "SpiceFrm.h"
209 
210    /*
211    Include the CSPICE Cell interface definitions.
212    */
213    #include "SpiceCel.h"
214 
215    /*
216    Include the CSPICE CK interface definitions.
217    */
218    #include "SpiceCK.h"
219 
220    /*
221    Include the CSPICE SPK interface definitions.
222    */
223    #include "SpiceSPK.h"
224 
225    /*
226    Include the CSPICE GF interface definitions.
227    */
228    #include "SpiceGF.h"
229 
230    /*
231    Include the CSPICE occultation definitions.
232    */
233    #include "SpiceOccult.h"
234 
235    /*
236    Include the CSPICE DLA definitions.
237    */
238    #include "SpiceDLA.h"
239 
240    /*
241    Include the CSPICE DSK definitions.
242    */
243    #include "SpiceDSK.h"
244 
245    /*
246    Include the CSPICE DSK tolerance definitions.
247    */
248    #include "SpiceDtl.h"
249 
250    /*
251    Include the CSPICE surface definitions.
252    */
253    #include "SpiceSrf.h"
254 
255    /*
256    Include oscltx_c definitions.
257    */
258    #include "SpiceOsc.h"
259 
260    /*
261    Include CSPICE prototypes.
262    */
263    #include "SpiceZpr.h"
264 
265    /*
266    Define the CSPICE function interface macros.
267    */
268    #include "SpiceZim.h"
269 
270 
271 
272 #endif
273 
274 
275 #ifdef __cplusplus
276    }
277 #endif
278 
279