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

OpenGL

开发平台:

Visual C++

  1. /*
  2. -Header_File SpiceUsr.h ( CSPICE user interface definitions )
  3. -Abstract
  4.    Perform CSPICE user interface declarations, including type
  5.    definitions and function prototype declarations.
  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.    This file is an umbrella header that includes all header files 
  33.    required to support the CSPICE application programming interface
  34.    (API).  Users' application code that calls CSPICE need include only
  35.    this single header file.  This file includes function prototypes for 
  36.    the entire set of CSPICE routines.  Typedef statements used to create
  37.    SPICE data types are also included.
  38.    
  39.    
  40.    About SPICE data types
  41.    ======================
  42.    
  43.    To assist with long-term maintainability of CSPICE, NAIF has elected
  44.    to use typedefs to represent data types occurring in argument lists
  45.    and as return values of CSPICE functions. These are:
  46.  
  47.       SpiceBoolean
  48.       SpiceChar
  49.       SpiceDouble
  50.       SpiceInt
  51.       ConstSpiceBoolean
  52.       ConstSpiceChar
  53.       ConstSpiceDouble
  54.       ConstSpiceInt
  55.  
  56.    The SPICE typedefs map in an arguably natural way to ANSI C types:
  57.  
  58.       SpiceBoolean -> enum { SPICEFALSE = 0, SPICETRUE = 1 }
  59.       SpiceChar    -> char
  60.       SpiceDouble  -> double
  61.       SpiceInt     -> int or long
  62.       ConstX       -> const X  (X = any of the above types)
  63.  
  64.    The type SpiceInt is a special case: the corresponding type is picked
  65.    so as to be half the size of a double. On all currently supported
  66.    platforms, type double occupies 8 bytes and type int occupies 4 
  67.    bytes.  Other platforms may require a SpiceInt to map to type long.
  68.  
  69.    While other data types may be used internally in CSPICE, no other
  70.    types appear in the API.
  71.       
  72.    
  73.    About CSPICE function prototypes
  74.    ================================ 
  75.    
  76.     Because CSPICE function prototypes enable substantial
  77.     compile-time error checking, we recommend that user
  78.     applications always reference them.  Including the header
  79.     file SpiceUsr.h in any module that calls CSPICE will
  80.     automatically make the prototypes available.
  81.       
  82.       
  83.    About CSPICE C style
  84.    ====================
  85.    
  86.    CSPICE is written in ANSI C.  No attempt has been made to support K&R
  87.    conventions or restrictions.
  88.    
  89.    
  90.    About C++ compatibility
  91.    =======================
  92.    
  93.    The preprocessor directive -D__cplusplus should be used when 
  94.    compiling C++ source code that includes this header file.  This 
  95.    directive will suppress mangling of CSPICE names, permitting linkage
  96.    to a CSPICE object library built from object modules produced by
  97.    an ANSI C compiler.
  98.    
  99. -Literature_References
  100.    None.
  101. -Author_and_Institution
  102.    N.J. Bachman       (JPL)
  103.    E.D. Wright        (JPL)
  104.    
  105. -Restrictions
  106.    The #include statements contained in this file are not part of 
  107.    the CSPICE API.  The set of files included may change without notice.
  108.    Users should not include these files directly in their own
  109.    application code.
  110.    
  111. -Version
  112.    -CSPICE Version 3.0.0, 19-AUG-2002 (NJB) 
  113.       Updated to include header files
  114.         SpiceCel.h
  115.         SpiceCK.h
  116.         SpiceSPK.h
  117.  
  118.    -CSPICE Version 3.0.0, 17-FEB-1999 (NJB)  
  119.       Updated to support suppression of name mangling when included in 
  120.       C++ source code.  Also now interface macros to intercept function
  121.       calls and perform automatic type casting.
  122.       
  123.       Now includes platform macro definition header file.
  124.       
  125.       References to types SpiceVoid and ConstSpiceVoid were removed.
  126.    
  127.    -CSPICE Version 2.0.0, 06-MAY-1998 (NJB) (EDW)
  128. */
  129. #ifdef __cplusplus
  130.    extern "C" { 
  131. #endif
  132.            
  133. #ifndef HAVE_SPICE_USER
  134.    #define HAVE_SPICE_USER
  135.    
  136.    /*
  137.    Include CSPICE platform macro definitions.
  138.    */
  139.    #include "SpiceZpl.h"
  140.    /*
  141.    Include CSPICE data type definitions.
  142.    */
  143.    #include "SpiceZdf.h"   
  144.          
  145.    /*
  146.    Include the CSPICE EK interface definitions.
  147.    */
  148.    #include "SpiceEK.h"
  149.       
  150.    /*
  151.    Include the CSPICE Cell interface definitions.
  152.    */
  153.    #include "SpiceCel.h"
  154.    
  155.    /*
  156.    Include the CSPICE CK interface definitions.
  157.    */
  158.    #include "SpiceCK.h"
  159.    
  160.    /*
  161.    Include the CSPICE SPK interface definitions.
  162.    */
  163.    #include "SpiceSPK.h"
  164.    
  165.    /*
  166.    Include CSPICE prototypes.
  167.    */
  168.    #include "SpiceZpr.h"
  169.    /*
  170.    Define the CSPICE function interface macros.
  171.    */
  172.    #include "SpiceZim.h"
  173.  
  174. #endif
  175. #ifdef __cplusplus
  176.    }
  177. #endif