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