SpiceZdf.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:6k
源码类别:

OpenGL

开发平台:

Visual C++

  1. /*
  2. -Header_File SpiceZdf.h ( CSPICE definitions )
  3. -Abstract
  4.    Define CSPICE data types via typedefs; also define some user-visible
  5.    enumerated types.
  6.       
  7. -Disclaimer
  8.    THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
  9.    CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
  10.    GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
  11.    ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
  12.    PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
  13.    TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
  14.    WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
  15.    PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
  16.    SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
  17.    SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
  18.    IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
  19.    BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
  20.    LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  21.    INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
  22.    REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
  23.    REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
  24.    RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
  25.    THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
  26.    CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
  27.    ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
  28. -Required_Reading
  29.    None.
  30.    
  31. -Particulars
  32.    
  33.    CSPICE data types
  34.    =================
  35.    
  36.    To assist with long-term maintainability of CSPICE, NAIF has elected
  37.    to use typedefs to represent data types occurring in argument lists
  38.    and as return values of CSPICE functions. These are:
  39.  
  40.       SpiceBoolean
  41.       SpiceChar
  42.       SpiceDouble
  43.       SpiceInt
  44.       ConstSpiceBoolean
  45.       ConstSpiceChar
  46.       ConstSpiceDouble
  47.       ConstSpiceInt
  48.  
  49.    The SPICE typedefs map in an arguably natural way to ANSI C types:
  50.  
  51.       SpiceBoolean -> int  
  52.       SpiceChar    -> char
  53.       SpiceDouble  -> double
  54.       SpiceInt     -> int or long
  55.       ConstX       -> const X  (X = any of the above types)
  56.  
  57.    The type SpiceInt is a special case: the corresponding type is picked
  58.    so as to be half the size of a double. On most currently supported
  59.    platforms, type double occupies 8 bytes and type long occupies 4 
  60.    bytes.  Other platforms may require a SpiceInt to map to type int.
  61.    The Alpha/Digital Unix platform is an example of the latter case.
  62.    
  63.    While other data types may be used internally in CSPICE, no other
  64.    types appear in the API.
  65.       
  66.       
  67.    CSPICE enumerated types
  68.    =======================
  69.    
  70.    These are provided to enhance readability of the code.
  71.       
  72.       Type name                Value set
  73.       ---------                ---------
  74.       
  75.       _Spicestatus             { SPICEFAILURE = -1,   SPICESUCCESS = 0 }
  76.       
  77.       
  78. -Literature_References
  79.    None.
  80. -Author_and_Institution
  81.    N.J. Bachman       (JPL)
  82.    E.D. Wright        (JPL)
  83.    
  84. -Restrictions
  85.    None.
  86.       
  87. -Version
  88.    -CSPICE Version 1.2.0, 27-JAN-2003 (NJB)
  89.        Updated to support the Sun Solaris 64 bit mode/gcc platform.
  90.    -CSPICE Version 4.0.0 27-JUL-2002 (NJB) 
  91.    
  92.       Added definition of SpiceDataType.
  93.    
  94.    -CSPICE Version 3.0.0 18-SEP-1999 (NJB) 
  95.    
  96.       SpiceBoolean implementation changed from enumerated type to 
  97.       typedef mapping to int.
  98.    
  99.    -CSPICE Version 2.0.0 29-JAN-1999 (NJB) 
  100.    
  101.       Made definition of SpiceInt and ConstSpiceInt platform 
  102.       dependent to accommodate the Alpha/Digital Unix platform.
  103.       
  104.       Removed definitions of SpiceVoid and ConstSpiceVoid.
  105.    
  106.    -CSPICE Version 1.0.0 25-OCT-1997 (KRG) (NJB) (EDW)
  107. */
  108.    #ifndef HAVE_SPICEDEFS_H
  109.    #define HAVE_SPICEDEFS_H
  110.    
  111.    /*
  112.    Include platform definitions, if they haven't been executed already.
  113.    */
  114.    #ifndef HAVE_PLATFORM_MACROS_H
  115.       #include "SpiceZpl.h"
  116.    #endif
  117.    
  118.    /*
  119.    Basic data types. These are defined to be compatible with the
  120.    types used by f2c, and so they follow the Fortran notion of what
  121.    these things are. See the f2c documentation for the details
  122.    about the choices for the sizes of these types.
  123.    */
  124.    typedef char           SpiceChar;
  125.    typedef double         SpiceDouble;
  126.    typedef float          SpiceFloat;
  127.    
  128.  
  129.    #if (    defined(CSPICE_ALPHA_DIGITAL_UNIX    )    
  130.          || defined(CSPICE_SUN_SOLARIS_64BIT_GCC )  )
  131.    
  132.       typedef int         SpiceInt;
  133.    #else
  134.       typedef long        SpiceInt;
  135.    #endif
  136.    
  137.    typedef const char     ConstSpiceChar;
  138.    typedef const double   ConstSpiceDouble;
  139.    typedef const float    ConstSpiceFloat;
  140.    #if (    defined(CSPICE_ALPHA_DIGITAL_UNIX    )    
  141.          || defined(CSPICE_SUN_SOLARIS_64BIT_GCC )  )
  142.    
  143.       typedef const int   ConstSpiceInt;
  144.    #else
  145.       typedef const long  ConstSpiceInt;
  146.    #endif
  147.    
  148.    
  149.    /*
  150.    More basic data types. These give mnemonics for some other data
  151.    types in C that are not used in Fortran written by NAIF or
  152.    supported by ANSI Fortran 77. These are for use in C functions
  153.    but should not be passed to any C SPICE wrappers, ``*_c.c''
  154.    since they are not Fortran compatible.
  155.    */
  156.    typedef long           SpiceLong;
  157.    typedef short          SpiceShort;
  158.    /*
  159.    Unsigned data types
  160.    */
  161.    typedef unsigned char  SpiceUChar;
  162.    typedef unsigned int   SpiceUInt;
  163.    typedef unsigned long  SpiceULong;
  164.    typedef unsigned short SpiceUShort;
  165.    /*
  166.    Signed data types
  167.    */
  168.    typedef signed char    SpiceSChar;
  169.    /*
  170.    Other basic types
  171.    */
  172.    typedef int            SpiceBoolean;
  173.    typedef const int      ConstSpiceBoolean;
  174.    
  175.    #define SPICETRUE      1
  176.    #define SPICEFALSE     0
  177.       
  178.    
  179.    enum _Spicestatus { SPICEFAILURE = -1, SPICESUCCESS = 0 };
  180.    
  181.    typedef enum _Spicestatus SpiceStatus;
  182.    enum _SpiceDataType { SPICE_CHR  = 0, 
  183.                          SPICE_DP   = 1, 
  184.                          SPICE_INT  = 2,
  185.                          SPICE_TIME = 3,
  186.                          SPICE_BOOL = 4 };
  187.     
  188.    typedef enum _SpiceDataType SpiceDataType;
  189. #endif