SpiceUsr.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:6k
- /*
- -Header_File SpiceUsr.h ( CSPICE user interface definitions )
- -Abstract
- Perform CSPICE user interface declarations, including type
- definitions and function prototype declarations.
-
- -Disclaimer
- THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
- CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
- GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
- ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
- PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
- TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
- WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
- PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
- SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
- SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
- IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
- BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
- LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
- REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
- REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
- RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
- THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
- CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
- ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
- -Required_Reading
- None.
-
- -Particulars
- This file is an umbrella header that includes all header files
- required to support the CSPICE application programming interface
- (API). Users' application code that calls CSPICE need include only
- this single header file. This file includes function prototypes for
- the entire set of CSPICE routines. Typedef statements used to create
- SPICE data types are also included.
-
-
- About SPICE data types
- ======================
-
- To assist with long-term maintainability of CSPICE, NAIF has elected
- to use typedefs to represent data types occurring in argument lists
- and as return values of CSPICE functions. These are:
-
- SpiceBoolean
- SpiceChar
- SpiceDouble
- SpiceInt
- ConstSpiceBoolean
- ConstSpiceChar
- ConstSpiceDouble
- ConstSpiceInt
-
- The SPICE typedefs map in an arguably natural way to ANSI C types:
-
- SpiceBoolean -> enum { SPICEFALSE = 0, SPICETRUE = 1 }
- SpiceChar -> char
- SpiceDouble -> double
- SpiceInt -> int or long
- ConstX -> const X (X = any of the above types)
-
- The type SpiceInt is a special case: the corresponding type is picked
- so as to be half the size of a double. On all currently supported
- platforms, type double occupies 8 bytes and type int occupies 4
- bytes. Other platforms may require a SpiceInt to map to type long.
-
- While other data types may be used internally in CSPICE, no other
- types appear in the API.
-
-
- About CSPICE function prototypes
- ================================
-
- Because CSPICE function prototypes enable substantial
- compile-time error checking, we recommend that user
- applications always reference them. Including the header
- file SpiceUsr.h in any module that calls CSPICE will
- automatically make the prototypes available.
-
-
- About CSPICE C style
- ====================
-
- CSPICE is written in ANSI C. No attempt has been made to support K&R
- conventions or restrictions.
-
-
- About C++ compatibility
- =======================
-
- The preprocessor directive -D__cplusplus should be used when
- compiling C++ source code that includes this header file. This
- directive will suppress mangling of CSPICE names, permitting linkage
- to a CSPICE object library built from object modules produced by
- an ANSI C compiler.
-
- -Literature_References
- None.
- -Author_and_Institution
- N.J. Bachman (JPL)
- E.D. Wright (JPL)
-
- -Restrictions
- The #include statements contained in this file are not part of
- the CSPICE API. The set of files included may change without notice.
- Users should not include these files directly in their own
- application code.
-
- -Version
- -CSPICE Version 3.0.0, 19-AUG-2002 (NJB)
- Updated to include header files
- SpiceCel.h
- SpiceCK.h
- SpiceSPK.h
-
- -CSPICE Version 3.0.0, 17-FEB-1999 (NJB)
- Updated to support suppression of name mangling when included in
- C++ source code. Also now interface macros to intercept function
- calls and perform automatic type casting.
-
- Now includes platform macro definition header file.
-
- References to types SpiceVoid and ConstSpiceVoid were removed.
-
- -CSPICE Version 2.0.0, 06-MAY-1998 (NJB) (EDW)
- */
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #ifndef HAVE_SPICE_USER
- #define HAVE_SPICE_USER
-
- /*
- Include CSPICE platform macro definitions.
- */
- #include "SpiceZpl.h"
- /*
- Include CSPICE data type definitions.
- */
- #include "SpiceZdf.h"
-
- /*
- Include the CSPICE EK interface definitions.
- */
- #include "SpiceEK.h"
-
- /*
- Include the CSPICE Cell interface definitions.
- */
- #include "SpiceCel.h"
-
- /*
- Include the CSPICE CK interface definitions.
- */
- #include "SpiceCK.h"
-
- /*
- Include the CSPICE SPK interface definitions.
- */
- #include "SpiceSPK.h"
-
- /*
- Include CSPICE prototypes.
- */
- #include "SpiceZpr.h"
- /*
- Define the CSPICE function interface macros.
- */
- #include "SpiceZim.h"
-
- #endif
- #ifdef __cplusplus
- }
- #endif