SpiceZdf.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:6k
- /*
- -Header_File SpiceZdf.h ( CSPICE definitions )
- -Abstract
- Define CSPICE data types via typedefs; also define some user-visible
- enumerated types.
-
- -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
-
- CSPICE 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 -> int
- 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 most currently supported
- platforms, type double occupies 8 bytes and type long occupies 4
- bytes. Other platforms may require a SpiceInt to map to type int.
- The Alpha/Digital Unix platform is an example of the latter case.
-
- While other data types may be used internally in CSPICE, no other
- types appear in the API.
-
-
- CSPICE enumerated types
- =======================
-
- These are provided to enhance readability of the code.
-
- Type name Value set
- --------- ---------
-
- _Spicestatus { SPICEFAILURE = -1, SPICESUCCESS = 0 }
-
-
- -Literature_References
- None.
- -Author_and_Institution
- N.J. Bachman (JPL)
- E.D. Wright (JPL)
-
- -Restrictions
- None.
-
- -Version
- -CSPICE Version 6.0.0, 21-FEB-2006 (NJB)
- Updated to support the PC Linux 64 bit mode/gcc platform.
- -CSPICE Version 5.0.0, 27-JAN-2003 (NJB)
- Updated to support the Sun Solaris 64 bit mode/gcc platform.
- -CSPICE Version 4.0.0 27-JUL-2002 (NJB)
-
- Added definition of SpiceDataType.
-
- -CSPICE Version 3.0.0 18-SEP-1999 (NJB)
-
- SpiceBoolean implementation changed from enumerated type to
- typedef mapping to int.
-
- -CSPICE Version 2.0.0 29-JAN-1999 (NJB)
-
- Made definition of SpiceInt and ConstSpiceInt platform
- dependent to accommodate the Alpha/Digital Unix platform.
-
- Removed definitions of SpiceVoid and ConstSpiceVoid.
-
- -CSPICE Version 1.0.0 25-OCT-1997 (KRG) (NJB) (EDW)
- */
- #ifndef HAVE_SPICEDEFS_H
- #define HAVE_SPICEDEFS_H
-
- /*
- Include platform definitions, if they haven't been executed already.
- */
- #ifndef HAVE_PLATFORM_MACROS_H
- #include "SpiceZpl.h"
- #endif
-
- /*
- Basic data types. These are defined to be compatible with the
- types used by f2c, and so they follow the Fortran notion of what
- these things are. See the f2c documentation for the details
- about the choices for the sizes of these types.
- */
- typedef char SpiceChar;
- typedef double SpiceDouble;
- typedef float SpiceFloat;
-
-
- #if ( defined(CSPICE_ALPHA_DIGITAL_UNIX )
- || defined(CSPICE_SUN_SOLARIS_64BIT_GCC )
- || defined(CSPICE_PC_LINUX_64BIT_GCC ) )
-
- typedef int SpiceInt;
- #else
- typedef long SpiceInt;
- #endif
-
- typedef const char ConstSpiceChar;
- typedef const double ConstSpiceDouble;
- typedef const float ConstSpiceFloat;
- #if ( defined(CSPICE_ALPHA_DIGITAL_UNIX )
- || defined(CSPICE_SUN_SOLARIS_64BIT_GCC )
- || defined(CSPICE_PC_LINUX_64BIT_GCC ) )
-
- typedef const int ConstSpiceInt;
- #else
- typedef const long ConstSpiceInt;
- #endif
-
-
- /*
- More basic data types. These give mnemonics for some other data
- types in C that are not used in Fortran written by NAIF or
- supported by ANSI Fortran 77. These are for use in C functions
- but should not be passed to any C SPICE wrappers, ``*_c.c''
- since they are not Fortran compatible.
- */
- typedef long SpiceLong;
- typedef short SpiceShort;
- /*
- Unsigned data types
- */
- typedef unsigned char SpiceUChar;
- typedef unsigned int SpiceUInt;
- typedef unsigned long SpiceULong;
- typedef unsigned short SpiceUShort;
- /*
- Signed data types
- */
- typedef signed char SpiceSChar;
- /*
- Other basic types
- */
- typedef int SpiceBoolean;
- typedef const int ConstSpiceBoolean;
-
- #define SPICETRUE 1
- #define SPICEFALSE 0
-
-
- enum _Spicestatus { SPICEFAILURE = -1, SPICESUCCESS = 0 };
-
- typedef enum _Spicestatus SpiceStatus;
- enum _SpiceDataType { SPICE_CHR = 0,
- SPICE_DP = 1,
- SPICE_INT = 2,
- SPICE_TIME = 3,
- SPICE_BOOL = 4 };
-
- typedef enum _SpiceDataType SpiceDataType;
- #endif