mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-18 02:49:03 -06:00
Add Spice as a submodule
This commit is contained in:
5
.gitmodules
vendored
5
.gitmodules
vendored
@@ -3,4 +3,7 @@
|
||||
url = https://github.com/OpenSpace/Ghoul.git
|
||||
[submodule "modules/kameleon/ext/kameleon"]
|
||||
path = modules/kameleon/ext/kameleon
|
||||
url = https://github.com/OpenSpace/Kameleon.git
|
||||
url = https://github.com/OpenSpace/Kameleon.git
|
||||
[submodule "ext/spice"]
|
||||
path = ext/spice
|
||||
url = https://github.com/OpenSpace/Spice.git
|
||||
|
||||
1
ext/spice
Submodule
1
ext/spice
Submodule
Submodule ext/spice added at 283112bc20
@@ -1,155 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceCK.h ( CSPICE CK definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE definitions to support CK wrapper interfaces.
|
||||
|
||||
-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 header defines types that may be referenced in
|
||||
application code that calls CSPICE CK functions.
|
||||
|
||||
Typedef
|
||||
=======
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SpiceCK05Subtype Typedef for enum indicating the
|
||||
mathematical representation used
|
||||
in an CK type 05 segment. Possible
|
||||
values and meanings are:
|
||||
|
||||
C05TP0:
|
||||
|
||||
Hermite interpolation, 8-
|
||||
element packets containing
|
||||
|
||||
q0, q1, q2, q3,
|
||||
dq0/dt, dq1/dt, dq2/dt dq3/dt
|
||||
|
||||
where q0, q1, q2, q3 represent
|
||||
quaternion components and dq0/dt,
|
||||
dq1/dt, dq2/dt, dq3/dt represent
|
||||
quaternion time derivative components.
|
||||
|
||||
Quaternions are unitless. Quaternion
|
||||
time derivatives have units of
|
||||
1/second.
|
||||
|
||||
|
||||
C05TP1:
|
||||
|
||||
Lagrange interpolation, 4-
|
||||
element packets containing
|
||||
|
||||
q0, q1, q2, q3,
|
||||
|
||||
where q0, q1, q2, q3 represent
|
||||
quaternion components. Quaternion
|
||||
derivatives are obtained by
|
||||
differentiating interpolating
|
||||
polynomials.
|
||||
|
||||
|
||||
C05TP2:
|
||||
|
||||
Hermite interpolation, 14-
|
||||
element packets containing
|
||||
|
||||
q0, q1, q2, q3,
|
||||
dq0/dt, dq1/dt, dq2/dt dq3/dt,
|
||||
av0, av1, av2,
|
||||
dav0/dt, dav1/dt, dav2/dt
|
||||
|
||||
where q0, q1, q2, q3 represent
|
||||
quaternion components and dq0/dt,
|
||||
dq1/dt, dq2/dt, dq3/dt represent
|
||||
quaternion time derivative components,
|
||||
av0, av1, av2 represent angular
|
||||
velocity components, and
|
||||
dav0/dt, dav1/dt, dav2/dt represent
|
||||
angular acceleration components.
|
||||
|
||||
|
||||
C05TP3:
|
||||
|
||||
Lagrange interpolation, 7-
|
||||
element packets containing
|
||||
|
||||
q0, q1, q2, q3,
|
||||
av0, av1, av2
|
||||
|
||||
where q0, q1, q2, q3 represent
|
||||
quaternion components and
|
||||
av0, av1, av2 represent angular
|
||||
velocity components.
|
||||
|
||||
|
||||
|
||||
Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 20-AUG-2002 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HAVE_SPICE_CK_H
|
||||
|
||||
#define HAVE_SPICE_CK_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
CK type 05 subtype codes:
|
||||
*/
|
||||
|
||||
enum _SpiceCK05Subtype { C05TP0, C05TP1, C05TP2, C05TP3 };
|
||||
|
||||
|
||||
typedef enum _SpiceCK05Subtype SpiceCK05Subtype;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,441 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceCel.h ( CSPICE Cell definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE definitions for the SpiceCell data type.
|
||||
|
||||
-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
|
||||
|
||||
CELLS
|
||||
|
||||
-Particulars
|
||||
|
||||
This header defines structures, macros, and enumerated types that
|
||||
may be referenced in application code that calls CSPICE cell
|
||||
functions.
|
||||
|
||||
CSPICE cells are data structures that implement functionality
|
||||
parallel to that of the cell abstract data type in SPICELIB. In
|
||||
CSPICE, a cell is a C structure containing bookkeeping information,
|
||||
including a pointer to an associated data array.
|
||||
|
||||
For numeric data types, the data array is simply a SPICELIB-style
|
||||
cell, including a valid control area. For character cells, the data
|
||||
array has the same number of elements as the corresponding
|
||||
SPICELIB-style cell, but the contents of the control area are not
|
||||
maintained, and the data elements are null-terminated C-style
|
||||
strings.
|
||||
|
||||
CSPICE cells should be declared using the declaration macros
|
||||
provided in this header file. See the table of macros below.
|
||||
|
||||
|
||||
Structures
|
||||
==========
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SpiceCell Structure containing CSPICE cell metadata.
|
||||
|
||||
The members are:
|
||||
|
||||
dtype: Data type of cell: character,
|
||||
integer, or double precision.
|
||||
|
||||
dtype has type
|
||||
SpiceCellDataType.
|
||||
|
||||
length: For character cells, the
|
||||
declared length of the
|
||||
cell's string array.
|
||||
|
||||
size: The maximum number of data
|
||||
items that can be stored in
|
||||
the cell's data array.
|
||||
|
||||
card: The cell's "cardinality": the
|
||||
number of data items currently
|
||||
present in the cell.
|
||||
|
||||
isSet: Boolean flag indicating whether
|
||||
the cell is a CSPICE set.
|
||||
Sets have no duplicate data
|
||||
items, and their data items are
|
||||
stored in increasing order.
|
||||
|
||||
adjust: Boolean flag indicating whether
|
||||
the cell's data area has
|
||||
adjustable size. Adjustable
|
||||
size cell data areas are not
|
||||
currently implemented.
|
||||
|
||||
init: Boolean flag indicating whether
|
||||
the cell has been initialized.
|
||||
|
||||
base: is a void pointer to the
|
||||
associated data array. base
|
||||
points to the start of the
|
||||
control area of this array.
|
||||
|
||||
data: is a void pointer to the
|
||||
first data slot in the
|
||||
associated data array. This
|
||||
slot is the element following
|
||||
the control area.
|
||||
|
||||
|
||||
ConstSpiceCell A const SpiceCell.
|
||||
|
||||
|
||||
|
||||
|
||||
Declaration Macros
|
||||
==================
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SPICECHAR_CELL ( name, size, length ) Declare a
|
||||
character CSPICE
|
||||
cell having cell
|
||||
name name,
|
||||
maximum cell
|
||||
cardinality size,
|
||||
and string length
|
||||
length. The
|
||||
macro declares
|
||||
both the cell and
|
||||
the associated
|
||||
data array. The
|
||||
name of the data
|
||||
array begins with
|
||||
"SPICE_".
|
||||
|
||||
|
||||
SPICEDOUBLE_CELL ( name, size ) Like SPICECHAR_CELL,
|
||||
but declares a
|
||||
double precision
|
||||
cell.
|
||||
|
||||
|
||||
SPICEINT_CELL ( name, size ) Like
|
||||
SPICECHAR_CELL,
|
||||
but declares an
|
||||
integer cell.
|
||||
|
||||
Assignment Macros
|
||||
=================
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
SPICE_CELL_SET_C( item, i, cell ) Assign the ith
|
||||
element of a
|
||||
character cell.
|
||||
Arguments cell
|
||||
and item are
|
||||
pointers.
|
||||
|
||||
SPICE_CELL_SET_D( item, i, cell ) Assign the ith
|
||||
element of a
|
||||
double precision
|
||||
cell. Argument
|
||||
cell is a
|
||||
pointer.
|
||||
|
||||
SPICE_CELL_SET_I( item, i, cell ) Assign the ith
|
||||
element of an
|
||||
integer cell.
|
||||
Argument cell is
|
||||
a pointer.
|
||||
|
||||
|
||||
Fetch Macros
|
||||
==============
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
SPICE_CELL_GET_C( cell, i, lenout, item ) Fetch the ith
|
||||
element from a
|
||||
character cell.
|
||||
Arguments cell
|
||||
and item are
|
||||
pointers.
|
||||
Argument lenout
|
||||
is the available
|
||||
space in item.
|
||||
|
||||
SPICE_CELL_GET_D( cell, i, item ) Fetch the ith
|
||||
element from a
|
||||
double precision
|
||||
cell. Arguments
|
||||
cell and item are
|
||||
pointers.
|
||||
|
||||
SPICE_CELL_GET_I( cell, i, item ) Fetch the ith
|
||||
element from an
|
||||
integer cell.
|
||||
Arguments cell
|
||||
and item are
|
||||
pointers.
|
||||
Element Pointer Macros
|
||||
======================
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
SPICE_CELL_ELEM_C( cell, i ) Macro evaluates
|
||||
to a SpiceChar
|
||||
pointer to the
|
||||
ith data element
|
||||
of a character
|
||||
cell. Argument
|
||||
cell is a
|
||||
pointer.
|
||||
|
||||
SPICE_CELL_ELEM_D( cell, i ) Macro evaluates
|
||||
to a SpiceDouble
|
||||
pointer to the
|
||||
ith data element
|
||||
of a double
|
||||
precision cell.
|
||||
Argument cell is
|
||||
a pointer.
|
||||
|
||||
SPICE_CELL_ELEM_I( cell, i ) Macro evaluates
|
||||
to a SpiceInt
|
||||
pointer to the
|
||||
ith data element
|
||||
of an integer
|
||||
cell. Argument
|
||||
cell is a
|
||||
pointer.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 22-AUG-2002 (NJB)
|
||||
|
||||
*/
|
||||
#ifndef HAVE_SPICE_CELLS_H
|
||||
|
||||
#define HAVE_SPICE_CELLS_H
|
||||
|
||||
|
||||
/*
|
||||
Data type codes:
|
||||
*/
|
||||
typedef enum _SpiceDataType SpiceCellDataType;
|
||||
|
||||
|
||||
/*
|
||||
Cell structure:
|
||||
*/
|
||||
struct _SpiceCell
|
||||
|
||||
{ SpiceCellDataType dtype;
|
||||
SpiceInt length;
|
||||
SpiceInt size;
|
||||
SpiceInt card;
|
||||
SpiceBoolean isSet;
|
||||
SpiceBoolean adjust;
|
||||
SpiceBoolean init;
|
||||
void * base;
|
||||
void * data; };
|
||||
|
||||
typedef struct _SpiceCell SpiceCell;
|
||||
|
||||
typedef const SpiceCell ConstSpiceCell;
|
||||
|
||||
|
||||
/*
|
||||
SpiceCell control area size:
|
||||
*/
|
||||
#define SPICE_CELL_CTRLSZ 6
|
||||
|
||||
|
||||
/*
|
||||
Declaration macros:
|
||||
*/
|
||||
|
||||
#define SPICECHAR_CELL( name, size, length ) \
|
||||
\
|
||||
static SpiceChar SPICE_CELL_##name[SPICE_CELL_CTRLSZ + size][length]; \
|
||||
\
|
||||
static SpiceCell name = \
|
||||
\
|
||||
{ SPICE_CHR, \
|
||||
length, \
|
||||
size, \
|
||||
0, \
|
||||
SPICETRUE, \
|
||||
SPICEFALSE, \
|
||||
SPICEFALSE, \
|
||||
(void *) &(SPICE_CELL_##name), \
|
||||
(void *) &(SPICE_CELL_##name[SPICE_CELL_CTRLSZ]) }
|
||||
|
||||
|
||||
#define SPICEDOUBLE_CELL( name, size ) \
|
||||
\
|
||||
static SpiceDouble SPICE_CELL_##name [SPICE_CELL_CTRLSZ + size]; \
|
||||
\
|
||||
static SpiceCell name = \
|
||||
\
|
||||
{ SPICE_DP, \
|
||||
0, \
|
||||
size, \
|
||||
0, \
|
||||
SPICETRUE, \
|
||||
SPICEFALSE, \
|
||||
SPICEFALSE, \
|
||||
(void *) &(SPICE_CELL_##name), \
|
||||
(void *) &(SPICE_CELL_##name[SPICE_CELL_CTRLSZ]) }
|
||||
|
||||
|
||||
#define SPICEINT_CELL( name, size ) \
|
||||
\
|
||||
static SpiceInt SPICE_CELL_##name [SPICE_CELL_CTRLSZ + size]; \
|
||||
\
|
||||
static SpiceCell name = \
|
||||
\
|
||||
{ SPICE_INT, \
|
||||
0, \
|
||||
size, \
|
||||
0, \
|
||||
SPICETRUE, \
|
||||
SPICEFALSE, \
|
||||
SPICEFALSE, \
|
||||
(void *) &(SPICE_CELL_##name), \
|
||||
(void *) &(SPICE_CELL_##name[SPICE_CELL_CTRLSZ]) }
|
||||
|
||||
|
||||
/*
|
||||
Access macros for individual elements:
|
||||
*/
|
||||
|
||||
/*
|
||||
Data element pointer macros:
|
||||
*/
|
||||
|
||||
#define SPICE_CELL_ELEM_C( cell, i ) \
|
||||
\
|
||||
( ( (SpiceChar *) (cell)->data ) + (i)*( (cell)->length ) )
|
||||
|
||||
|
||||
#define SPICE_CELL_ELEM_D( cell, i ) \
|
||||
\
|
||||
( ( (SpiceDouble *) (cell)->data )[(i)] )
|
||||
|
||||
|
||||
#define SPICE_CELL_ELEM_I( cell, i ) \
|
||||
\
|
||||
( ( (SpiceInt *) (cell)->data )[(i)] )
|
||||
|
||||
|
||||
/*
|
||||
"Fetch" macros:
|
||||
*/
|
||||
|
||||
#define SPICE_CELL_GET_C( cell, i, lenout, item ) \
|
||||
\
|
||||
{ \
|
||||
SpiceInt nBytes; \
|
||||
\
|
||||
nBytes = brckti_c ( (cell)->length, 0, (lenout-1) ) \
|
||||
* sizeof ( SpiceChar ); \
|
||||
\
|
||||
memmove ( (item), SPICE_CELL_ELEM_C((cell), (i)), nBytes ); \
|
||||
\
|
||||
item[nBytes] = NULLCHAR; \
|
||||
}
|
||||
|
||||
|
||||
#define SPICE_CELL_GET_D( cell, i, item ) \
|
||||
\
|
||||
( (*item) = ( (SpiceDouble *) (cell)->data)[i] )
|
||||
|
||||
|
||||
#define SPICE_CELL_GET_I( cell, i, item ) \
|
||||
\
|
||||
( (*item) = ( (SpiceInt *) (cell)->data)[i] )
|
||||
|
||||
|
||||
/*
|
||||
Assignment macros:
|
||||
*/
|
||||
|
||||
#define SPICE_CELL_SET_C( item, i, cell ) \
|
||||
\
|
||||
{ \
|
||||
SpiceChar * sPtr; \
|
||||
SpiceInt nBytes; \
|
||||
\
|
||||
nBytes = brckti_c ( strlen(item), 0, (cell)->length - 1 ) \
|
||||
* sizeof ( SpiceChar ); \
|
||||
\
|
||||
sPtr = SPICE_CELL_ELEM_C((cell), (i)); \
|
||||
\
|
||||
memmove ( sPtr, (item), nBytes ); \
|
||||
\
|
||||
sPtr[nBytes] = NULLCHAR; \
|
||||
}
|
||||
|
||||
|
||||
#define SPICE_CELL_SET_D( item, i, cell ) \
|
||||
\
|
||||
( ( (SpiceDouble *) (cell)->data)[i] = (item) )
|
||||
|
||||
|
||||
#define SPICE_CELL_SET_I( item, i, cell ) \
|
||||
\
|
||||
( ( (SpiceInt *) (cell)->data)[i] = (item) )
|
||||
|
||||
|
||||
/*
|
||||
The enum SpiceTransDir is used to indicate language translation
|
||||
direction: C to Fortran or vice versa.
|
||||
*/
|
||||
enum _SpiceTransDir { C2F = 0, F2C = 1 };
|
||||
|
||||
typedef enum _SpiceTransDir SpiceTransDir;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,448 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceEK.h ( CSPICE EK-specific definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE EK-specific definitions, including macros and user-
|
||||
defined 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
|
||||
|
||||
This header defines macros, enumerated types, structures, and
|
||||
typedefs that may be referenced in application code that calls CSPICE
|
||||
EK functions.
|
||||
|
||||
|
||||
Macros
|
||||
======
|
||||
|
||||
General limits
|
||||
--------------
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
SPICE_EK_MXCLSG Maximum number of columns per segment.
|
||||
|
||||
SPICE_EK_TYPLEN Maximum length of a short string
|
||||
indicating a data type (one of
|
||||
{"CHR", "DP", "INT", "TIME"}). Such
|
||||
strings are returned by some of the
|
||||
Fortran SPICELIB EK routines, hence also
|
||||
by their f2c'd counterparts.
|
||||
|
||||
Sizes of EK objects
|
||||
-------------------
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SPICE_EK_CNAMSZ Maximum length of column name.
|
||||
SPICE_EK_CSTRLN Length of string required to hold column
|
||||
name.
|
||||
SPICE_EK_TNAMSZ Maximum length of table name.
|
||||
SPICE_EK_TSTRLN Length of string required to hold table
|
||||
name.
|
||||
|
||||
|
||||
Query-related limits
|
||||
--------------------
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SPICE_EK_MAXQRY Maximum length of an input query. This
|
||||
value is currently equivalent to
|
||||
twenty-five 80-character lines.
|
||||
|
||||
SPICE_EK_MAXQSEL Maximum number of columns that may be
|
||||
listed in the `SELECT clause' of a query.
|
||||
|
||||
SPICE_EK_MAXQTAB Maximum number of tables that may be
|
||||
listed in the `FROM clause' of a query.
|
||||
|
||||
SPICE_EK_MAXQCON Maximum number of relational expressions
|
||||
that may be listed in the `constraint
|
||||
clause' of a query.
|
||||
|
||||
This limit applies to a query when it is
|
||||
represented in `normalized form': that
|
||||
is, the constraints have been expressed
|
||||
as a disjunction of conjunctions of
|
||||
relational expressions. The number of
|
||||
relational expressions in a query that
|
||||
has been expanded in this fashion may be
|
||||
greater than the number of relations in
|
||||
the query as orginally written. For
|
||||
example, the expression
|
||||
|
||||
( ( A LT 1 ) OR ( B GT 2 ) )
|
||||
AND
|
||||
( ( C NE 3 ) OR ( D EQ 4 ) )
|
||||
|
||||
which contains 4 relational expressions,
|
||||
expands to the equivalent normalized
|
||||
constraint
|
||||
|
||||
( ( A LT 1 ) AND ( C NE 3 ) )
|
||||
OR
|
||||
( ( A LT 1 ) AND ( D EQ 4 ) )
|
||||
OR
|
||||
( ( B GT 2 ) AND ( C NE 3 ) )
|
||||
OR
|
||||
( ( B GT 2 ) AND ( D EQ 4 ) )
|
||||
|
||||
which contains eight relational
|
||||
expressions.
|
||||
|
||||
|
||||
|
||||
SPICE_EK_MAXQJOIN Maximum number of tables that can be
|
||||
joined.
|
||||
|
||||
SPICE_EK_MAXQJCON Maximum number of join constraints
|
||||
allowed.
|
||||
|
||||
SPICE_EK_MAXQORD Maximum number of columns that may be
|
||||
used in the `order-by clause' of a query.
|
||||
|
||||
SPICE_EK_MAXQTOK Maximum number of tokens in a query.
|
||||
Tokens
|
||||
are reserved words, column names,
|
||||
parentheses, and values. Literal strings
|
||||
and time values count as single tokens.
|
||||
|
||||
SPICE_EK_MAXQNUM Maximum number of numeric tokens in a
|
||||
query.
|
||||
|
||||
SPICE_EK_MAXQCLN Maximum total length of character tokens
|
||||
in a query.
|
||||
|
||||
SPICE_EK_MAXQSTR Maximum length of literal string values
|
||||
allowed in queries.
|
||||
|
||||
|
||||
Codes
|
||||
-----
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SPICE_EK_VARSIZ Code used to indicate variable-size
|
||||
objects. Usually this is used in a
|
||||
context where a non-negative integer
|
||||
indicates the size of a fixed-size object
|
||||
and the presence of this code indicates a
|
||||
variable-size object.
|
||||
|
||||
The value of this constant must match the
|
||||
parameter IFALSE used in the Fortran
|
||||
library SPICELIB.
|
||||
|
||||
|
||||
Enumerated Types
|
||||
================
|
||||
|
||||
Enumerated code values
|
||||
----------------------
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
SpiceEKDataType Codes for data types used in the EK
|
||||
interface: character, double precision,
|
||||
integer, and "time."
|
||||
|
||||
The values are:
|
||||
|
||||
{ SPICE_CHR = 0,
|
||||
SPICE_DP = 1,
|
||||
SPICE_INT = 2,
|
||||
SPICE_TIME = 3 }
|
||||
|
||||
|
||||
|
||||
SpiceEKExprClass Codes for types of expressions that may
|
||||
appear in the SELECT clause of EK
|
||||
queries. Values and meanings are:
|
||||
|
||||
|
||||
SPICE_EK_EXP_COL Selected item was a
|
||||
column. The column
|
||||
may qualified by a
|
||||
table name.
|
||||
|
||||
SPICE_EK_EXP_FUNC Selected item was
|
||||
a simple function
|
||||
invocation of the
|
||||
form
|
||||
|
||||
F ( <column> )
|
||||
|
||||
or else was
|
||||
|
||||
COUNT(*)
|
||||
|
||||
SPICE_EK_EXP_EXPR Selected item was a
|
||||
more general
|
||||
expression than
|
||||
those shown above.
|
||||
|
||||
|
||||
Numeric values are:
|
||||
|
||||
{ SPICE_EK_EXP_COL = 0,
|
||||
SPICE_EK_EXP_FUNC = 1,
|
||||
SPICE_EK_EXP_EXPR = 2 }
|
||||
|
||||
|
||||
Structures
|
||||
==========
|
||||
|
||||
EK API structures
|
||||
-----------------
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SpiceEKAttDsc EK column attribute descriptor. Note
|
||||
that this object is distinct from the EK
|
||||
column descriptors used internally in
|
||||
the EK routines; those descriptors
|
||||
contain pointers as well as attribute
|
||||
information.
|
||||
|
||||
The members are:
|
||||
|
||||
cclass: Column class code.
|
||||
|
||||
dtype: Data type code: has type
|
||||
SpiceEKDataType.
|
||||
|
||||
strlen: String length. Applies to
|
||||
SPICE_CHR type. Value is
|
||||
SPICE_EK_VARSIZ for
|
||||
variable-length strings.
|
||||
|
||||
size: Column entry size; this is
|
||||
the number of array
|
||||
elements in a column
|
||||
entry. The value is
|
||||
SPICE_EK_VARSIZ for
|
||||
variable-size columns.
|
||||
|
||||
indexd: Index flag; value is
|
||||
SPICETRUE if the column is
|
||||
indexed, SPICEFALSE
|
||||
otherwise.
|
||||
|
||||
nullok: Null flag; value is
|
||||
SPICETRUE if the column
|
||||
may contain null values,
|
||||
SPICEFALSE otherwise.
|
||||
|
||||
|
||||
|
||||
SpiceEKSegSum EK segment summary. This structure
|
||||
contains user interface level descriptive
|
||||
information. The structure contains the
|
||||
following members:
|
||||
|
||||
tabnam The name of the table to
|
||||
which the segment belongs.
|
||||
|
||||
nrows The number of rows in the
|
||||
segment.
|
||||
|
||||
ncols The number of columns in
|
||||
the segment.
|
||||
|
||||
cnames An array of names of
|
||||
columns in the segment.
|
||||
Column names may contain
|
||||
as many as SPICE_EK_CNAMSZ
|
||||
characters. The array
|
||||
contains room for
|
||||
SPICE_EK_MXCLSG column
|
||||
names.
|
||||
|
||||
cdescrs An array of column
|
||||
attribute descriptors of
|
||||
type SpiceEKAttDsc.
|
||||
The array contains room
|
||||
for SPICE_EK_MXCLSG
|
||||
descriptors. The Ith
|
||||
descriptor corresponds to
|
||||
the column whose name is
|
||||
the Ith element of the
|
||||
array cnames.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 2.0.0 27-JUL-2002 (NJB)
|
||||
|
||||
Defined SpiceEKDataType using SpiceDataType. Removed declaration
|
||||
of enum _SpiceEKDataType.
|
||||
|
||||
-CSPICE Version 1.0.0, 05-JUL-1999 (NJB)
|
||||
|
||||
Renamed _SpiceEKAttDsc member "class" to "cclass." The
|
||||
former name is a reserved word in C++.
|
||||
|
||||
|
||||
-CSPICE Version 1.0.0, 24-FEB-1999 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HAVE_SPICE_EK_H
|
||||
|
||||
#define HAVE_SPICE_EK_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Constants
|
||||
*/
|
||||
|
||||
/*
|
||||
Sizes of EK objects:
|
||||
*/
|
||||
|
||||
#define SPICE_EK_CNAMSZ 32
|
||||
#define SPICE_EK_CSTRLN ( SPICE_EK_CNAMSZ + 1 )
|
||||
#define SPICE_EK_TNAMSZ 64
|
||||
#define SPICE_EK_TSTRLN ( SPICE_EK_TNAMSZ + 1 )
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Maximum number of columns per segment:
|
||||
*/
|
||||
|
||||
#define SPICE_EK_MXCLSG 100
|
||||
|
||||
|
||||
/*
|
||||
Maximum length of string indicating data type:
|
||||
*/
|
||||
|
||||
#define SPICE_EK_TYPLEN 4
|
||||
|
||||
|
||||
/*
|
||||
Query-related limits (see header for details):
|
||||
*/
|
||||
|
||||
#define SPICE_EK_MAXQRY 2000
|
||||
#define SPICE_EK_MAXQSEL 50
|
||||
#define SPICE_EK_MAXQTAB 10
|
||||
#define SPICE_EK_MAXQCON 1000
|
||||
#define SPICE_EK_MAXQJOIN 10
|
||||
#define SPICE_EK_MAXQJCON 100
|
||||
#define SPICE_EK_MAXQORD 10
|
||||
#define SPICE_EK_MAXQTOK 500
|
||||
#define SPICE_EK_MAXQNUM 100
|
||||
#define SPICE_EK_MAXQCLN SPICE_EK_MAXQRY
|
||||
#define SPICE_EK_MAXQSTR 1024
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Code indicating "variable size":
|
||||
*/
|
||||
#define SPICE_EK_VARSIZ (-1)
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Data type codes:
|
||||
*/
|
||||
typedef SpiceDataType SpiceEKDataType;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
SELECT clause expression type codes:
|
||||
*/
|
||||
enum _SpiceEKExprClass{ SPICE_EK_EXP_COL = 0,
|
||||
SPICE_EK_EXP_FUNC = 1,
|
||||
SPICE_EK_EXP_EXPR = 2 };
|
||||
|
||||
typedef enum _SpiceEKExprClass SpiceEKExprClass;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
EK column attribute descriptor:
|
||||
*/
|
||||
|
||||
struct _SpiceEKAttDsc
|
||||
|
||||
{ SpiceInt cclass;
|
||||
SpiceEKDataType dtype;
|
||||
SpiceInt strlen;
|
||||
SpiceInt size;
|
||||
SpiceBoolean indexd;
|
||||
SpiceBoolean nullok; };
|
||||
|
||||
typedef struct _SpiceEKAttDsc SpiceEKAttDsc;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
EK segment summary:
|
||||
*/
|
||||
|
||||
struct _SpiceEKSegSum
|
||||
|
||||
{ SpiceChar tabnam [SPICE_EK_TSTRLN];
|
||||
SpiceInt nrows;
|
||||
SpiceInt ncols;
|
||||
SpiceChar cnames [SPICE_EK_MXCLSG][SPICE_EK_CSTRLN];
|
||||
SpiceEKAttDsc cdescrs[SPICE_EK_MXCLSG]; };
|
||||
|
||||
typedef struct _SpiceEKSegSum SpiceEKSegSum;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceEll.h ( CSPICE Ellipse definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE definitions for the SpiceEllipse data type.
|
||||
|
||||
-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 header defines structures and typedefs that may be referenced in
|
||||
application code that calls CSPICE Ellipse functions.
|
||||
|
||||
|
||||
Structures
|
||||
==========
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SpiceEllipse Structure representing an ellipse in 3-
|
||||
dimensional space.
|
||||
|
||||
The members are:
|
||||
|
||||
center: Vector defining ellipse's
|
||||
center.
|
||||
|
||||
semiMajor: Vector defining ellipse's
|
||||
semi-major axis.
|
||||
|
||||
semiMinor: Vector defining ellipse's
|
||||
semi-minor axis.
|
||||
|
||||
The ellipse is the set of points
|
||||
|
||||
{X: X = center
|
||||
+ cos(theta) * semiMajor
|
||||
+ sin(theta) * semiMinor,
|
||||
|
||||
theta in [0, 2*Pi) }
|
||||
|
||||
|
||||
ConstSpiceEllipse A const SpiceEllipse.
|
||||
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 04-MAR-1999 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HAVE_SPICE_ELLIPSES
|
||||
|
||||
#define HAVE_SPICE_ELLIPSES
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Ellipse structure:
|
||||
*/
|
||||
|
||||
struct _SpiceEllipse
|
||||
|
||||
{ SpiceDouble center [3];
|
||||
SpiceDouble semiMajor [3];
|
||||
SpiceDouble semiMinor [3]; };
|
||||
|
||||
typedef struct _SpiceEllipse SpiceEllipse;
|
||||
|
||||
typedef const SpiceEllipse ConstSpiceEllipse;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,141 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceErr.h ( CSPICE error handling definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE definitions for error handling APIs.
|
||||
|
||||
-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 header defines constants that may be referenced in
|
||||
application code that calls CSPICE error handling functions.
|
||||
|
||||
|
||||
CONSTANTS
|
||||
==========
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SPICE_ERROR_LMSGLN Maximum length of a long error message,
|
||||
including the null terminator.
|
||||
|
||||
SPICE_ERROR_SMSGLN Maximum length of a short error message,
|
||||
including the null terminator.
|
||||
|
||||
SPICE_ERROR_XMSGLN Maximum length of a short error
|
||||
explanation message, including the null
|
||||
terminator.
|
||||
|
||||
SPICE_ERROR_MODLEN Maximum length of a module name
|
||||
appearing in the traceback message,
|
||||
including the null terminator.
|
||||
|
||||
SPICE_ERROR_MAXMOD Maximum count of module names
|
||||
appearing in the traceback message.
|
||||
|
||||
SPICE_ERROR_TRCLEN Maximum length of a traceback message,
|
||||
including the null terminator.
|
||||
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 05-NOV-2013 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HAVE_SPICE_ERROR_HANDLING
|
||||
|
||||
#define HAVE_SPICE_ERROR_HANDLING
|
||||
|
||||
|
||||
/*
|
||||
Local constants
|
||||
*/
|
||||
#define ARROWLEN 5
|
||||
|
||||
/*
|
||||
Public constants
|
||||
*/
|
||||
|
||||
/*
|
||||
Long error message length, which is equal to
|
||||
|
||||
( 23 * 80 ) + 1
|
||||
|
||||
*/
|
||||
#define SPICE_ERROR_LMSGLN 1841
|
||||
|
||||
/*
|
||||
Short error message length:
|
||||
*/
|
||||
#define SPICE_ERROR_SMSGLN 26
|
||||
|
||||
/*
|
||||
Short error message explanation length:
|
||||
*/
|
||||
#define SPICE_ERROR_XMSGLN 81
|
||||
|
||||
/*
|
||||
Module name length for traceback entries:
|
||||
*/
|
||||
#define SPICE_ERROR_MODLEN 33
|
||||
|
||||
/*
|
||||
Maximum module count for traceback string:
|
||||
*/
|
||||
#define SPICE_ERROR_MAXMOD 100
|
||||
|
||||
/*
|
||||
Maximum length of traceback string returned
|
||||
by qcktrc_c.
|
||||
*/
|
||||
#define SPICE_ERROR_TRCLEN ( ( SPICE_ERROR_MAXMOD \
|
||||
* ( SPICE_ERROR_MODLEN-1 ) ) \
|
||||
+ ( ARROWLEN \
|
||||
* ( SPICE_ERROR_MAXMOD-1 ) ) \
|
||||
+ 1 )
|
||||
#endif
|
||||
|
||||
@@ -1,193 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceFrm.h ( CSPICE frame subsystem definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE definitions for frame subsystem APIs.
|
||||
|
||||
-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
|
||||
|
||||
CK
|
||||
FRAMES
|
||||
PCK
|
||||
|
||||
-Particulars
|
||||
|
||||
This header defines constants that may be referenced in
|
||||
application code that calls CSPICE frame subsystem APIs.
|
||||
|
||||
|
||||
CONSTANTS
|
||||
==========
|
||||
|
||||
|
||||
Frame counts
|
||||
------------
|
||||
|
||||
The following parameter are counts of built-in frames. These
|
||||
parameters correspond to those defined in the SPICELIB Fortran
|
||||
INCLUDE files
|
||||
|
||||
ninert.inc
|
||||
nninrt.inc
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SPICE_NFRAME_NINERT Number of built-in inertial frames.
|
||||
SPICE_NFRAME_NNINRT Number of built-in non-inertial frames.
|
||||
|
||||
|
||||
|
||||
Frame classes
|
||||
-------------
|
||||
|
||||
The following parameters identify SPICE frame classes. These
|
||||
parameters correspond to those defined in the SPICELIB Fortran
|
||||
INCLUDE file frmtyp.inc. See the Frames Required Reading for a
|
||||
detailed discussion of frame classes.
|
||||
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SPICE_FRMTYP_INERTL an inertial frame that is listed in the
|
||||
f2c'd routine chgirf_ and that requires
|
||||
no external file to compute the
|
||||
transformation from or to any other
|
||||
inertial frame.
|
||||
|
||||
|
||||
SPICE_FRMTYP_PCK is a frame that is specified relative
|
||||
to some built-in, inertial frame (of
|
||||
class SPICE_FRMTYP_INERTL) and that has
|
||||
an IAU model that may be retrieved from
|
||||
the PCK system via a call to the
|
||||
routine tisbod_c.
|
||||
|
||||
|
||||
SPICE_FRMTYP_CK is a frame defined by a C-kernel.
|
||||
|
||||
|
||||
SPICE_FRMTYP_TK is a "text kernel" frame. These frames
|
||||
are offset from their associated
|
||||
"relative" frames by a constant
|
||||
rotation.
|
||||
|
||||
|
||||
SPICE_FRMTYP_DYN is a "dynamic" frame. These currently
|
||||
are limited to parameterized frames
|
||||
where the full frame definition depends
|
||||
on parameters supplied via a frame
|
||||
kernel.
|
||||
|
||||
SPICE_FRMTYP_ALL indicates any of the above classes.
|
||||
This parameter is used in APIs that
|
||||
fetch information about frames of a
|
||||
specified class.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 23-MAY-2012 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HAVE_SPICE_FRAME_DEFS
|
||||
|
||||
#define HAVE_SPICE_FRAME_DEFS
|
||||
|
||||
|
||||
/*
|
||||
Frame counts:
|
||||
*/
|
||||
|
||||
/*
|
||||
Number of built-in inertial frames. This number must be kept in
|
||||
sync with that defined in the SPICELIB include file ninert.inc.
|
||||
*/
|
||||
#define SPICE_NFRAME_NINERT 21
|
||||
|
||||
/*
|
||||
Number of built-in non-inertial frames. This number must be kept in
|
||||
sync with that defined in the SPICELIB include file nninrt.inc.
|
||||
*/
|
||||
#define SPICE_NFRAME_NNINRT 105
|
||||
|
||||
|
||||
|
||||
/*
|
||||
The frame class codes defined here are identical
|
||||
to those used in SPICELIB.
|
||||
*/
|
||||
|
||||
/*
|
||||
Inertial, built-in frames:
|
||||
*/
|
||||
#define SPICE_FRMTYP_INERTL 1
|
||||
|
||||
/*
|
||||
PCK frames:
|
||||
*/
|
||||
#define SPICE_FRMTYP_PCK 2
|
||||
|
||||
/*
|
||||
CK frames:
|
||||
*/
|
||||
#define SPICE_FRMTYP_CK 3
|
||||
|
||||
/*
|
||||
TK frames:
|
||||
*/
|
||||
#define SPICE_FRMTYP_TK 4
|
||||
|
||||
/*
|
||||
Dynamic frames:
|
||||
*/
|
||||
#define SPICE_FRMTYP_DYN 5
|
||||
|
||||
/*
|
||||
All frame classes:
|
||||
*/
|
||||
#define SPICE_FRMTYP_ALL ( -1 )
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,341 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceGF.h ( CSPICE GF-specific definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE GF-specific definitions.
|
||||
|
||||
-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
|
||||
|
||||
GF
|
||||
|
||||
-Keywords
|
||||
|
||||
GEOMETRY
|
||||
SEARCH
|
||||
|
||||
-Exceptions
|
||||
|
||||
None
|
||||
|
||||
-Files
|
||||
|
||||
None
|
||||
|
||||
-Particulars
|
||||
|
||||
This header defines macros that may be referenced in application
|
||||
code that calls CSPICE GF functions.
|
||||
|
||||
|
||||
Macros
|
||||
======
|
||||
|
||||
Workspace parameters
|
||||
--------------------
|
||||
|
||||
CSPICE applications normally don't declare workspace arguments
|
||||
and therefore don't directly reference workspace size parameters.
|
||||
However, CSPICE GF APIs dealing with numeric constraints
|
||||
dynamically allocate workspace memory; the amount allocated
|
||||
depends on the number of intervals the workspace windows can
|
||||
hold. This amount is an input argument to the GF numeric quantity
|
||||
APIs.
|
||||
|
||||
The parameters below are used to calculate the amount of memory
|
||||
required. Each workspace window contains 6 double precision
|
||||
numbers in its control area and 2 double precision numbers for
|
||||
each interval it can hold.
|
||||
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
SPICE_GF_NWMAX Maximum number of windows required for
|
||||
a user-defined workspace array.
|
||||
|
||||
SPICE_GF_NWDIST Number of workspace windows used by
|
||||
gfdist_c and the underlying SPICELIB
|
||||
routine GFDIST.
|
||||
|
||||
SPICE_GF_NWILUM Number of workspace windows used by
|
||||
gfilum_c and the underlying SPICELIB
|
||||
routine GFILUM.
|
||||
|
||||
SPICE_GF_NWSEP Number of workspace windows used by
|
||||
gfsep_c and the underlying SPICELIB
|
||||
routine GFSEP.
|
||||
|
||||
SPICE_GF_NWRR Number of workspace windows used by
|
||||
gfrr_c and the underlying SPICELIB
|
||||
routine GFRR.
|
||||
|
||||
SPICE_GF_NWPA Number of workspace windows used by
|
||||
gfpa_c and the underlying SPICELIB
|
||||
routine GFPA.
|
||||
|
||||
|
||||
Field of view (FOV) parameters
|
||||
------------------------------
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
SPICE_GF_MAXVRT Maximum allowed number of boundary
|
||||
vectors for a polygonal FOV.
|
||||
|
||||
SPICE_GF_CIRFOV Parameter identifying a circular FOV.
|
||||
|
||||
SPICE_GF_ELLFOV Parameter identifying a elliptical FOV.
|
||||
|
||||
SPICE_GF_POLFOV Parameter identifying a polygonal FOV.
|
||||
|
||||
SPICE_GF_RECFOV Parameter identifying a rectangular FOV.
|
||||
|
||||
SPICE_GF_SHPLEN Parameter specifying maximum length of
|
||||
a FOV shape name.
|
||||
|
||||
SPICE_GF_MARGIN is a small positive number used to
|
||||
constrain the orientation of the
|
||||
boundary vectors of polygonal FOVs. Such
|
||||
FOVs must satisfy the following
|
||||
constraints:
|
||||
|
||||
1) The boundary vectors must be
|
||||
contained within a right circular
|
||||
cone of angular radius less than
|
||||
than (pi/2) - MARGIN radians; in
|
||||
other words, there must be a vector
|
||||
A such that all boundary vectors
|
||||
have angular separation from A of
|
||||
less than (pi/2)-MARGIN radians.
|
||||
|
||||
2) There must be a pair of boundary
|
||||
vectors U, V such that all other
|
||||
boundary vectors lie in the same
|
||||
half space bounded by the plane
|
||||
containing U and V. Furthermore, all
|
||||
other boundary vectors must have
|
||||
orthogonal projections onto a plane
|
||||
normal to this plane such that the
|
||||
projections have angular separation
|
||||
of at least 2*MARGIN radians from
|
||||
the plane spanned by U and V.
|
||||
|
||||
MARGIN is currently set to 1.D-12.
|
||||
|
||||
|
||||
Occultation parameters
|
||||
----------------------
|
||||
|
||||
SPICE_GF_ANNULR Parameter identifying an "annular
|
||||
occultation." This geometric condition
|
||||
is more commonly known as a "transit."
|
||||
The limb of the background object must
|
||||
not be blocked by the foreground object
|
||||
in order for an occultation to be
|
||||
"annular."
|
||||
|
||||
SPICE_GF_ANY Parameter identifying any type of
|
||||
occultation or transit.
|
||||
|
||||
SPICE_GF_FULL Parameter identifying a full
|
||||
occultation: the foreground body
|
||||
entirely blocks the background body.
|
||||
|
||||
SPICE_GF_PARTL Parameter identifying an "partial
|
||||
occultation." This is an occultation in
|
||||
which the foreground body blocks part,
|
||||
but not all, of the limb of the
|
||||
background body.
|
||||
|
||||
|
||||
|
||||
Target shape parameters
|
||||
-----------------------
|
||||
|
||||
SPICE_GF_EDSHAP Parameter indicating a target object's
|
||||
shape is modeled as an ellipsoid.
|
||||
|
||||
SPICE_GF_PTSHAP Parameter indicating a target object's
|
||||
shape is modeled as a point.
|
||||
|
||||
SPICE_GF_RYSHAP Parameter indicating a target object's
|
||||
"shape" is modeled as a ray emanating
|
||||
from an observer's location. This model
|
||||
may be used in visibility computations
|
||||
for targets whose direction, but not
|
||||
position, relative to an observer is
|
||||
known.
|
||||
|
||||
SPICE_GF_SPSHAP Parameter indicating a target object's
|
||||
shape is modeled as a point.
|
||||
|
||||
|
||||
|
||||
Search parameters
|
||||
-----------------
|
||||
|
||||
These parameters affect the manner in which GF searches are
|
||||
performed.
|
||||
|
||||
SPICE_GF_ADDWIN is a parameter used in numeric quantity
|
||||
searches that use an equality
|
||||
constraint. This parameter is used to
|
||||
expand the confinement window (the
|
||||
window over which the search is
|
||||
performed) by a small amount at both
|
||||
ends. This expansion accommodates the
|
||||
case where a geometric quantity is equal
|
||||
to a reference value at a boundary point
|
||||
of the original confinement window.
|
||||
|
||||
SPICE_GF_CNVTOL is the default convergence tolerance
|
||||
used by GF routines that don't support a
|
||||
user-supplied tolerance value. GF
|
||||
searches for roots will terminate when a
|
||||
root is bracketed by times separated by
|
||||
no more than this tolerance. Units are
|
||||
seconds.
|
||||
|
||||
Configuration parameter
|
||||
-----------------------
|
||||
|
||||
SPICE_GFEVNT_MAXPAR Parameter indicating the maximum number of
|
||||
elements needed for the 'qnames' and 'q*pars'
|
||||
arrays used in gfevnt_c.
|
||||
|
||||
SpiceChar qcpars[SPICE_GFEVNT_MAXPAR][LNSIZE];
|
||||
SpiceDouble qdpars[SPICE_GFEVNT_MAXPAR];
|
||||
SpiceInt qipars[SPICE_GFEVNT_MAXPAR];
|
||||
SpiceBoolean qlpars[SPICE_GFEVNT_MAXPAR];
|
||||
|
||||
-Examples
|
||||
|
||||
None
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
L.S. Elson (JPL)
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 2.1.0, 23-FEB-2012 (NJB)
|
||||
|
||||
Added parameters:
|
||||
|
||||
SPICE_GF_NWILUM
|
||||
SPICE_GF_NWRR
|
||||
SPICE_GF_NWPA
|
||||
|
||||
-CSPICE Version 2.0.0, 23-JUN-2009 (NJB)
|
||||
|
||||
Added parameter for maximum length of FOV shape string.
|
||||
|
||||
-CSPICE Version 1.0.0, 11-MAR-2009 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef HAVE_SPICE_GF_H
|
||||
|
||||
#define HAVE_SPICE_GF_H
|
||||
|
||||
|
||||
/*
|
||||
See the Particulars section above for parameter descriptions.
|
||||
*/
|
||||
|
||||
/*
|
||||
Workspace parameters
|
||||
*/
|
||||
#define SPICE_GF_NWMAX 15
|
||||
#define SPICE_GF_NWDIST 5
|
||||
#define SPICE_GF_NWILUM 5
|
||||
#define SPICE_GF_NWSEP 5
|
||||
#define SPICE_GF_NWRR 5
|
||||
#define SPICE_GF_NWPA 5
|
||||
|
||||
|
||||
/*
|
||||
Field of view (FOV) parameters
|
||||
*/
|
||||
#define SPICE_GF_MAXVRT 10000
|
||||
#define SPICE_GF_CIRFOV "CIRCLE"
|
||||
#define SPICE_GF_ELLFOV "ELLIPSE"
|
||||
#define SPICE_GF_POLFOV "POLYGON"
|
||||
#define SPICE_GF_RECFOV "RECTANGLE"
|
||||
#define SPICE_GF_SHPLEN 10
|
||||
#define SPICE_GF_MARGIN ( 1.e-12 )
|
||||
|
||||
|
||||
/*
|
||||
Occultation parameters
|
||||
*/
|
||||
#define SPICE_GF_ANNULR "ANNULAR"
|
||||
#define SPICE_GF_ANY "ANY"
|
||||
#define SPICE_GF_FULL "FULL"
|
||||
#define SPICE_GF_PARTL "PARTIAL"
|
||||
|
||||
|
||||
/*
|
||||
Target shape parameters
|
||||
*/
|
||||
#define SPICE_GF_EDSHAP "ELLIPSOID"
|
||||
#define SPICE_GF_PTSHAP "POINT"
|
||||
#define SPICE_GF_RYSHAP "RAY"
|
||||
#define SPICE_GF_SPSHAP "SPHERE"
|
||||
|
||||
|
||||
/*
|
||||
Search parameters
|
||||
*/
|
||||
#define SPICE_GF_ADDWIN 1.0
|
||||
#define SPICE_GF_CNVTOL 1.e-6
|
||||
|
||||
|
||||
/*
|
||||
Configuration parameters.
|
||||
*/
|
||||
#define SPICE_GFEVNT_MAXPAR 10
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
End of header file SpiceGF.h
|
||||
*/
|
||||
@@ -1,147 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceOccult.h ( CSPICE Occultation specific definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE occultation specific definitions.
|
||||
|
||||
-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.
|
||||
|
||||
-Keywords
|
||||
|
||||
OCCULTATION
|
||||
GEOMETRY
|
||||
ELLIPSOID
|
||||
|
||||
-Exceptions
|
||||
|
||||
None
|
||||
|
||||
-Files
|
||||
|
||||
None
|
||||
|
||||
-Particulars
|
||||
|
||||
The following integer codes indicate the geometric relationship
|
||||
of the three bodies.
|
||||
|
||||
The meaning of the sign of each code is given below.
|
||||
|
||||
Code sign Meaning
|
||||
--------- ------------------------------
|
||||
> 0 The second ellipsoid is
|
||||
partially or fully occulted
|
||||
by the first.
|
||||
|
||||
< 0 The first ellipsoid is
|
||||
partially of fully
|
||||
occulted by the second.
|
||||
|
||||
= 0 No occultation.
|
||||
|
||||
The meanings of the codes are given below. The variable names
|
||||
indicate the type of occultation and which target is in the back.
|
||||
For example, SPICE_OCCULT_TOTAL1 represents a total occultation in which
|
||||
the first target is in the back (or occulted by) the second target.
|
||||
|
||||
Name Code Meaning
|
||||
------ ----- ------------------------------
|
||||
SPICE_OCCULT_TOTAL1 -3 Total occultation of first
|
||||
target by second.
|
||||
|
||||
SPICE_OCCULT_ANNLR1 -2 Annular occultation of first
|
||||
target by second. The second
|
||||
target does not block the limb
|
||||
of the first.
|
||||
|
||||
SPICE_OCCULT_PARTL1 -1 Partial occultation of first
|
||||
target by second target.
|
||||
|
||||
SPICE_OCCULT_NOOCC 0 No occultation or transit: both
|
||||
objects are completely visible
|
||||
to the observer.
|
||||
|
||||
SPICE_OCCULT_PARTL2 1 Partial occultation of second
|
||||
target by first target.
|
||||
|
||||
SPICE_OCCULT_ANNLR2 2 Annular occultation of second
|
||||
target by first.
|
||||
|
||||
SPICE_OCCULT_TOTAL2 3 Total occultation of second
|
||||
target by first.
|
||||
|
||||
-Examples
|
||||
|
||||
None
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
S.C. Krening (JPL)
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 23-FEB-2012 (SCK)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef HAVE_SPICE_OCCULT_H
|
||||
|
||||
#define HAVE_SPICE_OCCULT_H
|
||||
|
||||
/*
|
||||
See the Particulars section above for parameter descriptions.
|
||||
*/
|
||||
|
||||
/*
|
||||
Occultation parameters
|
||||
*/
|
||||
|
||||
#define SPICE_OCCULT_TOTAL1 -3
|
||||
#define SPICE_OCCULT_ANNLR1 -2
|
||||
#define SPICE_OCCULT_PARTL1 -1
|
||||
#define SPICE_OCCULT_NOOCC 0
|
||||
#define SPICE_OCCULT_PARTL2 1
|
||||
#define SPICE_OCCULT_ANNLR2 2
|
||||
#define SPICE_OCCULT_TOTAL2 3
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,106 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpicePln.h ( CSPICE Plane definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE definitions for the SpicePlane data type.
|
||||
|
||||
-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 header defines structures and typedefs that may be referenced in
|
||||
application code that calls CSPICE Plane functions.
|
||||
|
||||
|
||||
Structures
|
||||
==========
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SpicePlane Structure representing a plane in 3-
|
||||
dimensional space.
|
||||
|
||||
The members are:
|
||||
|
||||
normal: Vector normal to plane.
|
||||
|
||||
constant: Constant of plane equation
|
||||
|
||||
Plane =
|
||||
|
||||
{X: <normal,X> = constant}
|
||||
|
||||
|
||||
|
||||
ConstSpicePlane A const SpicePlane.
|
||||
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 04-MAR-1999 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HAVE_SPICE_PLANES
|
||||
|
||||
#define HAVE_SPICE_PLANES
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Plane structure:
|
||||
*/
|
||||
|
||||
struct _SpicePlane
|
||||
|
||||
{ SpiceDouble normal [3];
|
||||
SpiceDouble constant; };
|
||||
|
||||
typedef struct _SpicePlane SpicePlane;
|
||||
|
||||
typedef const SpicePlane ConstSpicePlane;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,128 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceSPK.h ( CSPICE SPK definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE definitions to support SPK wrapper interfaces.
|
||||
|
||||
-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 header defines types that may be referenced in
|
||||
application code that calls CSPICE SPK functions.
|
||||
|
||||
Typedef
|
||||
=======
|
||||
|
||||
Name Description
|
||||
---- ----------
|
||||
|
||||
SpiceSPK18Subtype Typedef for enum indicating the
|
||||
mathematical representation used
|
||||
in an SPK type 18 segment. Possible
|
||||
values and meanings are:
|
||||
|
||||
S18TP0:
|
||||
|
||||
Hermite interpolation, 12-
|
||||
element packets containing
|
||||
|
||||
x, y, z, dx/dt, dy/dt, dz/dt,
|
||||
vx, vy, vz, dvx/dt, dvy/dt, dvz/dt
|
||||
|
||||
where x, y, z represent Cartesian
|
||||
position components and vx, vy, vz
|
||||
represent Cartesian velocity
|
||||
components. Note well: vx, vy, and
|
||||
vz *are not necessarily equal* to the
|
||||
time derivatives of x, y, and z.
|
||||
This packet structure mimics that of
|
||||
the Rosetta/MEX orbit file from which
|
||||
the data are taken.
|
||||
|
||||
Position units are kilometers,
|
||||
velocity units are kilometers per
|
||||
second, and acceleration units are
|
||||
kilometers per second per second.
|
||||
|
||||
|
||||
S18TP1:
|
||||
|
||||
Lagrange interpolation, 6-
|
||||
element packets containing
|
||||
|
||||
x, y, z, dx/dt, dy/dt, dz/dt
|
||||
|
||||
where x, y, z represent Cartesian
|
||||
position components and vx, vy, vz
|
||||
represent Cartesian velocity
|
||||
components.
|
||||
|
||||
Position units are kilometers;
|
||||
velocity units are kilometers per
|
||||
second.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 16-AUG-2002 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef HAVE_SPICE_SPK_H
|
||||
|
||||
#define HAVE_SPICE_SPK_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
SPK type 18 subtype codes:
|
||||
*/
|
||||
|
||||
enum _SpiceSPK18Subtype { S18TP0, S18TP1 };
|
||||
|
||||
|
||||
typedef enum _SpiceSPK18Subtype SpiceSPK18Subtype;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,240 +0,0 @@
|
||||
/*
|
||||
|
||||
-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)
|
||||
S.C. Krening (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 5.0.0, 11-MAY-2012 (NJB) (SCK)
|
||||
|
||||
Updated to include header files
|
||||
|
||||
SpiceErr.h
|
||||
SpiceFrm.h
|
||||
SpiceOccult.h
|
||||
|
||||
-CSPICE Version 4.0.0, 30-SEP-2008 (NJB)
|
||||
|
||||
Updated to include header file
|
||||
|
||||
SpiceGF.h
|
||||
|
||||
-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 error handling interface definitions.
|
||||
*/
|
||||
#include "SpiceErr.h"
|
||||
|
||||
/*
|
||||
Include the CSPICE EK interface definitions.
|
||||
*/
|
||||
#include "SpiceEK.h"
|
||||
|
||||
/*
|
||||
Include the CSPICE frame subsystem API definitions.
|
||||
*/
|
||||
#include "SpiceFrm.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 the CSPICE GF interface definitions.
|
||||
*/
|
||||
#include "SpiceGF.h"
|
||||
|
||||
/*
|
||||
Include the CSPICE occultation definitions.
|
||||
*/
|
||||
#include "SpiceOccult.h"
|
||||
|
||||
/*
|
||||
Include CSPICE prototypes.
|
||||
*/
|
||||
#include "SpiceZpr.h"
|
||||
|
||||
/*
|
||||
Define the CSPICE function interface macros.
|
||||
*/
|
||||
#include "SpiceZim.h"
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,209 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceZad.h ( CSPICE adapter definitions )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform CSPICE declarations to support passed-in function
|
||||
adapters used in wrapper interfaces.
|
||||
|
||||
-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 header file contains declarations used by the CSPICE
|
||||
passed-in function adapter ("PFA") system. This system enables
|
||||
CSPICE wrapper functions to support passed-in function
|
||||
arguments whose prototypes are C-style, even when these
|
||||
functions are to be called from f2c'd Fortran routines
|
||||
expecting f2c-style interfaces.
|
||||
|
||||
This header declares:
|
||||
|
||||
- The prototype for the passed-in function argument
|
||||
pointer storage and fetch routines
|
||||
|
||||
zzadsave_c
|
||||
zzadget_c
|
||||
|
||||
- Prototypes for CSPICE adapter functions. Each passed-in
|
||||
function argument in a CSPICE wrapper has a corresponding
|
||||
adapter function. The adapter functions have interfaces
|
||||
that match those of their f2c'd counterparts; this allows
|
||||
the adapters to be called by f2c'd SPICELIB code. The
|
||||
adapters look up saved function pointers for routines
|
||||
passed in by the wrapper's caller and call these functions.
|
||||
|
||||
- Values for the enumerated type SpicePassedInFunc. These
|
||||
values are used to map function pointers to the
|
||||
functions they represent, enabling adapters to call
|
||||
the correct passed-in functions.
|
||||
|
||||
Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 2.2.0, 29-NOV-2011 (EDW)
|
||||
|
||||
Updated to support the user defined boolean function capability.
|
||||
|
||||
-CSPICE Version 2.1.0, 21-DEC-2009 (EDW)
|
||||
|
||||
Updated to support the user defined scalar function capability.
|
||||
|
||||
-CSPICE Version 2.0.0, 29-JAN-2009 (NJB)
|
||||
|
||||
Now conditionally includes SpiceZfc.h.
|
||||
|
||||
Updated to reflect new calling sequence of f2c'd
|
||||
routine gfrefn_. Some header updates were made
|
||||
as well.
|
||||
|
||||
-CSPICE Version 1.0.0, 29-MAR-2008 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
This file has dependencies defined in SpiceZfc.h. Include that
|
||||
file if it hasn't already been included.
|
||||
*/
|
||||
#ifndef HAVE_SPICEF2C_H
|
||||
#include "SpiceZfc.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef HAVE_SPICE_ZAD_H
|
||||
|
||||
#define HAVE_SPICE_ZAD_H
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Prototypes for GF adapters:
|
||||
*/
|
||||
|
||||
logical zzadbail_c ( void );
|
||||
|
||||
|
||||
int zzadstep_c ( doublereal * et,
|
||||
doublereal * step );
|
||||
|
||||
|
||||
int zzadrefn_c ( doublereal * t1,
|
||||
doublereal * t2,
|
||||
logical * s1,
|
||||
logical * s2,
|
||||
doublereal * t );
|
||||
|
||||
|
||||
int zzadrepf_c ( void );
|
||||
|
||||
|
||||
int zzadrepi_c ( doublereal * cnfine,
|
||||
char * srcpre,
|
||||
char * srcsuf,
|
||||
ftnlen srcprelen,
|
||||
ftnlen srcsuflen );
|
||||
|
||||
|
||||
int zzadrepu_c ( doublereal * ivbeg,
|
||||
doublereal * ivend,
|
||||
doublereal * et );
|
||||
|
||||
|
||||
int zzadfunc_c ( doublereal * et,
|
||||
doublereal * value );
|
||||
|
||||
|
||||
int zzadqdec_c ( U_fp udfunc,
|
||||
doublereal * et,
|
||||
logical * xbool );
|
||||
|
||||
/*
|
||||
Define the enumerated type
|
||||
|
||||
SpicePassedInFunc
|
||||
|
||||
for names of passed-in functions. Using this type gives
|
||||
us compile-time checking and avoids string comparisons.
|
||||
*/
|
||||
enum _SpicePassedInFunc {
|
||||
UDBAIL,
|
||||
UDREFN,
|
||||
UDREPF,
|
||||
UDREPI,
|
||||
UDREPU,
|
||||
UDSTEP,
|
||||
UDFUNC,
|
||||
UDQDEC,
|
||||
};
|
||||
|
||||
typedef enum _SpicePassedInFunc SpicePassedInFunc;
|
||||
|
||||
/*
|
||||
SPICE_N_PASSED_IN_FUNC is the count of SpicePassedInFunc values.
|
||||
*/
|
||||
#define SPICE_N_PASSED_IN_FUNC 8
|
||||
|
||||
|
||||
/*
|
||||
CSPICE wrappers supporting passed-in function arguments call
|
||||
the adapter setup interface function once per each such argument;
|
||||
these calls save the function pointers for later use within the
|
||||
f2c'd code that calls passed-in functions. The saved pointers
|
||||
will be used in calls by the adapter functions whose prototypes
|
||||
are declared above.
|
||||
|
||||
Prototypes for adapter setup interface:
|
||||
*/
|
||||
void zzadsave_c ( SpicePassedInFunc functionID,
|
||||
void * functionPtr );
|
||||
|
||||
void * zzadget_c ( SpicePassedInFunc functionID );
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
End of header file SpiceZad.h
|
||||
*/
|
||||
|
||||
@@ -1,260 +0,0 @@
|
||||
/*
|
||||
|
||||
-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)
|
||||
B.V. Semenov (JPL)
|
||||
E.D. Wright (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 6.2.0, 10-MAR-2014 (BVS)
|
||||
|
||||
Updated for:
|
||||
|
||||
PC-CYGWIN-64BIT-GCC_C
|
||||
|
||||
environment. Added the corresponding tag:
|
||||
|
||||
CSPICE_PC_CYGWIN_64BIT_GCC
|
||||
|
||||
tag to the #ifdefs set.
|
||||
|
||||
-CSPICE Version 6.1.0, 14-MAY-2010 (EDW)(BVS)
|
||||
|
||||
Updated for:
|
||||
|
||||
MAC-OSX-64BIT-INTEL_C
|
||||
SUN-SOLARIS-64BIT-NATIVE_C
|
||||
SUN-SOLARIS-INTEL-64BIT-CC_C
|
||||
|
||||
environments. Added the corresponding tags:
|
||||
|
||||
CSPICE_MAC_OSX_INTEL_64BIT_GCC
|
||||
CSPICE_SUN_SOLARIS_64BIT_NATIVE
|
||||
CSPICE_SUN_SOLARIS_INTEL_64BIT_CC
|
||||
|
||||
tag to the #ifdefs set.
|
||||
|
||||
-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_NATIVE) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) \
|
||||
|| defined(CSPICE_MAC_OSX_INTEL_64BIT_GCC ) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_INTEL_64BIT_CC ) \
|
||||
|| defined(CSPICE_PC_CYGWIN_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_NATIVE) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) \
|
||||
|| defined(CSPICE_MAC_OSX_INTEL_64BIT_GCC ) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_INTEL_64BIT_CC ) \
|
||||
|| defined(CSPICE_PC_CYGWIN_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
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,980 +0,0 @@
|
||||
/*
|
||||
|
||||
-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.
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
CSPICE private macro file.
|
||||
|
||||
-Particulars
|
||||
|
||||
Current list of macros (spelling counts)
|
||||
|
||||
BLANK
|
||||
C2F_MAP_CELL
|
||||
C2F_MAP_CELL2
|
||||
C2F_MAP_CELL3
|
||||
CELLINIT
|
||||
CELLINIT2
|
||||
CELLINIT3
|
||||
CELLISSETCHK
|
||||
CELLISSETCHK2
|
||||
CELLISSETCHK2_VAL
|
||||
CELLISSETCHK3
|
||||
CELLISSETCHK3_VAL
|
||||
CELLISSETCHK_VAL
|
||||
CELLMATCH2
|
||||
CELLMATCH2_VAL
|
||||
CELLMATCH3
|
||||
CELLMATCH3_VAL
|
||||
CELLTYPECHK
|
||||
CELLTYPECHK2
|
||||
CELLTYPECHK2_VAL
|
||||
CELLTYPECHK3
|
||||
CELLTYPECHK3_VAL
|
||||
CELLTYPECHK_VAL
|
||||
CHKFSTR
|
||||
CHKFSTR_VAL
|
||||
CHKOSTR
|
||||
CHKOSTR_VAL
|
||||
CHKPTR
|
||||
Constants
|
||||
Even
|
||||
F2C_MAP_CELL
|
||||
Index values
|
||||
MOVED
|
||||
MOVEI
|
||||
MaxAbs
|
||||
MaxVal
|
||||
MinAbs
|
||||
MinVal
|
||||
Odd
|
||||
SpiceError
|
||||
TolOrFail
|
||||
|
||||
-Restrictions
|
||||
|
||||
This is a private macro file for use within CSPICE.
|
||||
Do not use or alter any entry. Or else!
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
E.D. Wright (JPL)
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 4.3.0, 18-SEP-2013 (NJB)
|
||||
|
||||
Bug fix: missing comma was added to argument list
|
||||
in body of macro CELLTYPECHK3_VAL.
|
||||
|
||||
-CSPICE Version 4.2.0, 16-FEB-2005 (NJB)
|
||||
|
||||
Bug fix: in the macro C2F_MAP_CELL, error checking has been
|
||||
added after the sequence of calls to ssizec_ and scardc_.
|
||||
If either of these routines signals an error, the dynamically
|
||||
allocated memory for the "Fortran cell" is freed.
|
||||
|
||||
-CSPICE Version 4.1.0, 06-DEC-2002 (NJB)
|
||||
|
||||
Bug fix: added previous missing, bracketing parentheses to
|
||||
references to input cell pointer argument in macro
|
||||
CELLINIT.
|
||||
|
||||
Changed CELLINIT macro so it no longer initializes to zero
|
||||
length all strings in data array of a character cell. Instead,
|
||||
strings are terminated with a null in their final element.
|
||||
|
||||
-CSPICE Version 4.0.0, 22-AUG-2002 (NJB)
|
||||
|
||||
Added macro definitions to support CSPICE cells and sets:
|
||||
|
||||
C2F_MAP_CELL
|
||||
C2F_MAP_CELL2
|
||||
C2F_MAP_CELL3
|
||||
CELLINIT
|
||||
CELLINIT2
|
||||
CELLINIT3
|
||||
CELLISSETCHK
|
||||
CELLISSETCHK2
|
||||
CELLISSETCHK2_VAL
|
||||
CELLISSETCHK3
|
||||
CELLISSETCHK3_VAL
|
||||
CELLISSETCHK_VAL
|
||||
CELLMATCH2
|
||||
CELLMATCH2_VAL
|
||||
CELLMATCH3
|
||||
CELLMATCH3_VAL
|
||||
CELLTYPECHK
|
||||
CELLTYPECHK2
|
||||
CELLTYPECHK2_VAL
|
||||
CELLTYPECHK3
|
||||
CELLTYPECHK3_VAL
|
||||
CELLTYPECHK_VAL
|
||||
F2C_MAP_CELL
|
||||
|
||||
-CSPICE Version 3.0.0, 09-JAN-1998 (NJB)
|
||||
|
||||
Added output string check macros CHKOSTR and CHKOSTR_VAL.
|
||||
Removed variable name arguments from macros
|
||||
|
||||
CHKPTR
|
||||
CHKPTR_VAL
|
||||
CHKFSTR
|
||||
CHKRSTR_VAL
|
||||
|
||||
The strings containing names of the checked variables are now
|
||||
generated from the variables themselves via the # operator.
|
||||
|
||||
-CSPICE Version 2.0.0, 03-DEC-1997 (NJB)
|
||||
|
||||
Added pointer check macro CHKPTR and Fortran string check macro
|
||||
CHKFSTR.
|
||||
|
||||
-CSPICE Version 1.0.0, 25-OCT-1997 (EDW)
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include "SpiceZdf.h"
|
||||
|
||||
|
||||
#define MOVED( arrfrm, ndim, arrto ) \
|
||||
\
|
||||
( memmove ( (void*) (arrto) , \
|
||||
(void*) (arrfrm), \
|
||||
sizeof (SpiceDouble) * (ndim) ) )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#define MOVEI( arrfrm, ndim, arrto ) \
|
||||
\
|
||||
( memmove ( (void*) (arrto) , \
|
||||
(void*) (arrfrm), \
|
||||
sizeof (SpiceInt) * (ndim) ) )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Define a tolerance test for those pesky double precision reals.
|
||||
True if the difference is less than the tolerance, false otherwise.
|
||||
The tolerance refers to a percentage. x, y and tol should be declared
|
||||
double. All values are assumed to be non-zero. Okay?
|
||||
*/
|
||||
|
||||
#define TolOrFail( x, y, tol ) \
|
||||
\
|
||||
( fabs( x-y ) < ( tol * fabs(x) ) )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Simple error output through standard SPICE error system . Set the error
|
||||
message and the type
|
||||
*/
|
||||
|
||||
#define SpiceError( errmsg, errtype ) \
|
||||
\
|
||||
{ \
|
||||
setmsg_c ( errmsg ); \
|
||||
sigerr_c ( errtype ); \
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Return a value which is the maximum/minimum of the absolute values of
|
||||
two values.
|
||||
*/
|
||||
|
||||
#define MaxAbs(a,b) ( fabs(a) >= fabs(b) ? fabs(a) : fabs(b) )
|
||||
#define MinAbs(a,b) ( fabs(a) < fabs(b) ? fabs(a) : fabs(b) )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Return a value which is the maximum/minimum value of two values.
|
||||
*/
|
||||
|
||||
#define MaxVal(A,B) ( (A) >= (B) ? (A) : (B) )
|
||||
#define MinVal(A,B) ( (A) < (B) ? (A) : (B) )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Determine whether a value is even or odd
|
||||
*/
|
||||
#define Even( x ) ( ( (x) & 1 ) == 0 )
|
||||
#define Odd ( x ) ( ( (x) & 1 ) != 0 )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Array indexes for vectors.
|
||||
*/
|
||||
|
||||
#define SpiceX 0
|
||||
#define SpiceY 1
|
||||
#define SpiceZ 2
|
||||
#define SpiceVx 3
|
||||
#define SpiceVy 4
|
||||
#define SpiceVz 5
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Physical constants and dates.
|
||||
*/
|
||||
|
||||
#define B1900 2415020.31352
|
||||
#define J1900 2415020.0
|
||||
#define JYEAR 31557600.0
|
||||
#define TYEAR 31556925.9747
|
||||
#define J1950 2433282.5
|
||||
#define SPD 86400.0
|
||||
#define B1950 2433282.42345905
|
||||
#define J2100 2488070.0
|
||||
#define CLIGHT 299792.458
|
||||
#define J2000 2451545.0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Common literal values.
|
||||
*/
|
||||
|
||||
#define NULLCHAR ( (SpiceChar ) 0 )
|
||||
#define NULLCPTR ( (SpiceChar * ) 0 )
|
||||
#define BLANK ( (SpiceChar ) ' ' )
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Macro CHKPTR is used for checking for a null pointer. CHKPTR uses
|
||||
the constants
|
||||
|
||||
CHK_STANDARD
|
||||
CHK_DISCOVER
|
||||
CHK_REMAIN
|
||||
|
||||
to control tracing behavior. Values and meanings are:
|
||||
|
||||
CHK_STANDARD Standard tracing. If an error
|
||||
is found, signal it, check out
|
||||
and return.
|
||||
|
||||
CHK_DISCOVER Discovery check-in. If an
|
||||
error is found, check in, signal
|
||||
the error, check out, and return.
|
||||
|
||||
CHK_REMAIN If an error is found, signal it.
|
||||
Do not check out or return. This
|
||||
would allow the caller to clean up
|
||||
before returning, if necessary.
|
||||
In such cases the caller must test
|
||||
failed_c() after the macro call.
|
||||
|
||||
CHKPTR should be used in void functions. In non-void functions,
|
||||
use CHKPTR_VAL, which is defined below.
|
||||
|
||||
*/
|
||||
|
||||
#define CHK_STANDARD 1
|
||||
#define CHK_DISCOVER 2
|
||||
#define CHK_REMAIN 3
|
||||
|
||||
#define CHKPTR( errHandling, modname, pointer ) \
|
||||
\
|
||||
if ( (void *)(pointer) == (void *)0 ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Pointer \"#\" is null; a non-null " \
|
||||
"pointer is required." ); \
|
||||
errch_c ( "#", (#pointer) ); \
|
||||
sigerr_c ( "SPICE(NULLPOINTER)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define CHKPTR_VAL( errHandling, modname, pointer, retval ) \
|
||||
\
|
||||
if ( (void *)(pointer) == (void *)0 ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Pointer \"#\" is null; a non-null " \
|
||||
"pointer is required." ); \
|
||||
errch_c ( "#", (#pointer) ); \
|
||||
sigerr_c ( "SPICE(NULLPOINTER)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return ( retval ); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Macro CHKFSTR checks strings that are to be passed to Fortran or
|
||||
f2c'd Fortran routines. Such strings must have non-zero length,
|
||||
and their pointers must be non-null.
|
||||
|
||||
CHKFSTR should be used in void functions. In non-void functions,
|
||||
use CHKFSTR_VAL, which is defined below.
|
||||
*/
|
||||
|
||||
#define CHKFSTR( errHandling, modname, string ) \
|
||||
\
|
||||
CHKPTR ( errHandling, modname, string ); \
|
||||
\
|
||||
if ( ( (void *)string != (void *)0 ) \
|
||||
&& ( strlen(string) == 0 ) ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "String \"#\" has length zero." ); \
|
||||
errch_c ( "#", (#string) ); \
|
||||
sigerr_c ( "SPICE(EMPTYSTRING)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CHKFSTR_VAL( errHandling, modname, string, retval ) \
|
||||
\
|
||||
CHKPTR_VAL( errHandling, modname, string, retval); \
|
||||
\
|
||||
if ( ( (void *)string != (void *)0 ) \
|
||||
&& ( strlen(string) == 0 ) ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "String \"#\" has length zero." ); \
|
||||
errch_c ( "#", (#string) ); \
|
||||
sigerr_c ( "SPICE(EMPTYSTRING)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return ( retval ); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Macro CHKOSTR checks output string pointers and the associated
|
||||
string length values supplied as input arguments. Output string
|
||||
pointers must be non-null, and the string lengths must be at
|
||||
least 2, so Fortran routine can write at least one character to
|
||||
the output string, and so a null terminator can be appended.
|
||||
CHKOSTR should be used in void functions. In non-void functions,
|
||||
use CHKOSTR_VAL, which is defined below.
|
||||
*/
|
||||
|
||||
#define CHKOSTR( errHandling, modname, string, length ) \
|
||||
\
|
||||
CHKPTR ( errHandling, modname, string ); \
|
||||
\
|
||||
if ( ( (void *)string != (void *)0 ) \
|
||||
&& ( length < 2 ) ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "String \"#\" has length #; must be >= 2." ); \
|
||||
errch_c ( "#", (#string) ); \
|
||||
errint_c ( "#", (length) ); \
|
||||
sigerr_c ( "SPICE(STRINGTOOSHORT)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define CHKOSTR_VAL( errHandling, modname, string, length, retval ) \
|
||||
\
|
||||
CHKPTR_VAL( errHandling, modname, string, retval ); \
|
||||
\
|
||||
if ( ( (void *)string != (void *)0 ) \
|
||||
&& ( length < 2 ) ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "String \"#\" has length #; must be >= 2." ); \
|
||||
errch_c ( "#", (#string) ); \
|
||||
errint_c ( "#", (length) ); \
|
||||
sigerr_c ( "SPICE(STRINGTOOSHORT)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return ( retval ); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Definitions for Cells and Sets
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
Cell initialization macros
|
||||
*/
|
||||
#define CELLINIT( cellPtr ) \
|
||||
\
|
||||
if ( !( (cellPtr)->init ) ) \
|
||||
{ \
|
||||
if ( (cellPtr)->dtype == SPICE_CHR ) \
|
||||
{ \
|
||||
/* \
|
||||
Make sure all elements of the data array, including \
|
||||
the control area, start off null-terminated. We place \
|
||||
the null character in the final element of each string, \
|
||||
so as to avoid wiping out data that may have been \
|
||||
assigned to the data array prior to initialization. \
|
||||
*/ \
|
||||
SpiceChar * sPtr; \
|
||||
SpiceInt i; \
|
||||
SpiceInt nmax; \
|
||||
\
|
||||
nmax = SPICE_CELL_CTRLSZ + (cellPtr)->size; \
|
||||
\
|
||||
for ( i = 1; i <= nmax; i++ ) \
|
||||
{ \
|
||||
sPtr = (SpiceChar *)((cellPtr)->base) \
|
||||
+ i * (cellPtr)->length \
|
||||
- 1; \
|
||||
\
|
||||
*sPtr = NULLCHAR; \
|
||||
} \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
zzsynccl_c ( C2F, (cellPtr) ); \
|
||||
} \
|
||||
\
|
||||
(cellPtr)->init = SPICETRUE; \
|
||||
}
|
||||
|
||||
|
||||
#define CELLINIT2( cellPtr1, cellPtr2 ) \
|
||||
\
|
||||
CELLINIT ( cellPtr1 ); \
|
||||
CELLINIT ( cellPtr2 );
|
||||
|
||||
|
||||
#define CELLINIT3( cellPtr1, cellPtr2, cellPtr3 ) \
|
||||
\
|
||||
CELLINIT ( cellPtr1 ); \
|
||||
CELLINIT ( cellPtr2 ); \
|
||||
CELLINIT ( cellPtr3 );
|
||||
|
||||
|
||||
/*
|
||||
Data type checking macros:
|
||||
*/
|
||||
#define CELLTYPECHK( errHandling, modname, dType, cellPtr1 ) \
|
||||
\
|
||||
if ( (cellPtr1)->dtype != (dType) ) \
|
||||
{ \
|
||||
SpiceChar * typstr[3] = \
|
||||
{ \
|
||||
"character", "double precision", "integer" \
|
||||
}; \
|
||||
\
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Data type of # is #; expected type " \
|
||||
"is #." ); \
|
||||
errch_c ( "#", (#cellPtr1) ); \
|
||||
errch_c ( "#", typstr[ (cellPtr1)->dtype ] ); \
|
||||
errch_c ( "#", typstr[ dType ] ); \
|
||||
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define CELLTYPECHK_VAL( errHandling, modname, \
|
||||
dType, cellPtr1, retval ) \
|
||||
\
|
||||
if ( (cellPtr1)->dtype != (dType) ) \
|
||||
{ \
|
||||
SpiceChar * typstr[3] = \
|
||||
{ \
|
||||
"character", "double precision", "integer" \
|
||||
}; \
|
||||
\
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Data type of # is #; expected type " \
|
||||
"is #." ); \
|
||||
errch_c ( "#", (#cellPtr1) ); \
|
||||
errch_c ( "#", typstr[ (cellPtr1)->dtype ] ); \
|
||||
errch_c ( "#", typstr[ dType ] ); \
|
||||
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return (retval); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define CELLTYPECHK2( errHandling, modname, dtype, \
|
||||
cellPtr1, cellPtr2 ) \
|
||||
\
|
||||
CELLTYPECHK( errHandling, modname, dtype, cellPtr1 ); \
|
||||
CELLTYPECHK( errHandling, modname, dtype, cellPtr2 );
|
||||
|
||||
|
||||
|
||||
#define CELLTYPECHK2_VAL( errHandling, modname, dtype, \
|
||||
cellPtr1, cellPtr2, retval ) \
|
||||
\
|
||||
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr1, \
|
||||
retval ); \
|
||||
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr2, \
|
||||
retval );
|
||||
|
||||
|
||||
|
||||
#define CELLTYPECHK3( errHandling, modname, dtype, \
|
||||
cellPtr1, cellPtr2, cellPtr3 ) \
|
||||
\
|
||||
CELLTYPECHK( errHandling, modname, dtype, cellPtr1 ); \
|
||||
CELLTYPECHK( errHandling, modname, dtype, cellPtr2 ); \
|
||||
CELLTYPECHK( errHandling, modname, dtype, cellPtr3 );
|
||||
|
||||
|
||||
#define CELLTYPECHK3_VAL( errHandling, modname, dtype, \
|
||||
cellPtr1, cellPtr2, cellPtr3, \
|
||||
retval ) \
|
||||
\
|
||||
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr1, \
|
||||
retval ); \
|
||||
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr2, \
|
||||
retval ); \
|
||||
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr3, \
|
||||
retval );
|
||||
|
||||
|
||||
|
||||
#define CELLMATCH2( errHandling, modname, cellPtr1, cellPtr2 ) \
|
||||
\
|
||||
if ( (cellPtr1)->dtype != (cellPtr2)->dtype ) \
|
||||
{ \
|
||||
SpiceChar * typstr[3] = \
|
||||
{ \
|
||||
"character", "double precision", "integer" \
|
||||
}; \
|
||||
\
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Data type of # is #; data type of # " \
|
||||
"is #, but types must match." ); \
|
||||
errch_c ( "#", (#cellPtr1) ); \
|
||||
errch_c ( "#", typstr[ (cellPtr1)->dtype ] ); \
|
||||
errch_c ( "#", (#cellPtr2) ); \
|
||||
errch_c ( "#", typstr[ (cellPtr2)->dtype ] ); \
|
||||
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CELLMATCH2_VAL( errHandling, modname, \
|
||||
cellPtr1, cellPtr2, retval ) \
|
||||
\
|
||||
if ( (cellPtr1)->dtype != (cellPtr2)->dtype ) \
|
||||
{ \
|
||||
SpiceChar * typstr[3] = \
|
||||
{ \
|
||||
"character", "double precision", "integer" \
|
||||
}; \
|
||||
\
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Data type of # is #; data type of # " \
|
||||
"is #, but types must match." ); \
|
||||
errch_c ( "#", (#cellPtr1) ); \
|
||||
errch_c ( "#", typstr [ (cellPtr1)->dtype ] ); \
|
||||
errch_c ( "#", (#cellPtr2) ); \
|
||||
errch_c ( "#", typstr [ (cellPtr2)->dtype ] ); \
|
||||
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return ( retval ); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define CELLMATCH3( errHandling, modname, \
|
||||
cellPtr1, cellPtr2, cellPtr3 ) \
|
||||
\
|
||||
CELLMATCH2 ( errHandling, modname, cellPtr1, cellPtr2 ); \
|
||||
CELLMATCH2 ( errHandling, modname, cellPtr2, cellPtr3 );
|
||||
|
||||
|
||||
|
||||
|
||||
#define CELLMATCH3_VAL( errHandling, modname, cellPtr1, \
|
||||
cellPtr2, cellPtr3, retval ) \
|
||||
\
|
||||
CELLMATCH2_VAL ( errHandling, modname, \
|
||||
cellPtr1, cellPtr2, retval ); \
|
||||
\
|
||||
CELLMATCH2_VAL ( errHandling, modname, \
|
||||
cellPtr2, cellPtr3, retval );
|
||||
|
||||
/*
|
||||
Set checking macros:
|
||||
*/
|
||||
#define CELLISSETCHK( errHandling, modname, cellPtr1 ) \
|
||||
\
|
||||
if ( !(cellPtr1)->isSet ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Cell # must be sorted and have unique " \
|
||||
"values in order to be a CSPICE set. " \
|
||||
"The isSet flag in this cell is SPICEFALSE, " \
|
||||
"indicating the cell may have been modified " \
|
||||
"by a routine that doesn't preserve these " \
|
||||
"properties." ); \
|
||||
errch_c ( "#", (#cellPtr1) ); \
|
||||
sigerr_c ( "SPICE(NOTASET)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define CELLISSETCHK_VAL( errHandling, modname, \
|
||||
cellPtr1, retval ) \
|
||||
\
|
||||
if ( !(cellPtr1)->isSet ) \
|
||||
{ \
|
||||
if ( (errHandling) == CHK_DISCOVER ) \
|
||||
{ \
|
||||
chkin_c ( modname ); \
|
||||
} \
|
||||
\
|
||||
setmsg_c ( "Cell # must be sorted and have unique " \
|
||||
"values in order to be a CSPICE set. " \
|
||||
"The isSet flag in this cell is SPICEFALSE, " \
|
||||
"indicating the cell may have been modified " \
|
||||
"by a routine that doesn't preserve these " \
|
||||
"properties." ); \
|
||||
errch_c ( "#", (#cellPtr1) ); \
|
||||
sigerr_c ( "SPICE(NOTASET)" ); \
|
||||
\
|
||||
if ( ( (errHandling) == CHK_DISCOVER ) \
|
||||
|| ( (errHandling) == CHK_STANDARD ) ) \
|
||||
{ \
|
||||
chkout_c ( modname ); \
|
||||
return (retval); \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define CELLISSETCHK2( errHandling, modname, \
|
||||
cellPtr1, cellPtr2 ) \
|
||||
\
|
||||
CELLISSETCHK( errHandling, modname, cellPtr1 ); \
|
||||
CELLISSETCHK( errHandling, modname, cellPtr2 );
|
||||
|
||||
|
||||
|
||||
#define CELLISSETCHK2_VAL( errHandling, modname, \
|
||||
cellPtr1, cellPtr2, retval ) \
|
||||
\
|
||||
CELLISSETCHK_VAL( errHandling, modname, cellPtr1, retval ); \
|
||||
CELLISSETCHK_VAL( errHandling, modname, cellPtr2, retval ); \
|
||||
|
||||
|
||||
|
||||
#define CELLISSETCHK3( errHandling, modname, \
|
||||
cellPtr1, cellPtr2, cellPtr3 ) \
|
||||
\
|
||||
CELLISSETCHK ( errHandling, modname, cellPtr1 ); \
|
||||
CELLISSETCHK ( errHandling, modname, cellPtr2 ); \
|
||||
CELLISSETCHK ( errHandling, modname, cellPtr3 );
|
||||
|
||||
|
||||
#define CELLISSETCHK3_VAL( errHandling, modname, cellPtr1, \
|
||||
cellPtr2, cellPtr3, retval ) \
|
||||
\
|
||||
CELLISSETCHK_VAL ( errHandling, modname, cellPtr1, retval ); \
|
||||
CELLISSETCHK_VAL ( errHandling, modname, cellPtr2, retval ); \
|
||||
CELLISSETCHK_VAL ( errHandling, modname, cellPtr3, retval );
|
||||
|
||||
|
||||
/*
|
||||
C-to-Fortran and Fortran-to-C character cell translation macros:
|
||||
*/
|
||||
|
||||
/*
|
||||
Macros that map one or more character C cells to dynamically
|
||||
allocated Fortran-style character cells:
|
||||
*/
|
||||
#define C2F_MAP_CELL( caller, CCell, fCell, fLen ) \
|
||||
\
|
||||
{ \
|
||||
/* \
|
||||
fCell and fLen are to be passed by reference, as if this \
|
||||
macro were a function. \
|
||||
\
|
||||
\
|
||||
Caution: dynamically allocates array fCell, which is to be \
|
||||
freed by caller! \
|
||||
*/ \
|
||||
SpiceInt ndim; \
|
||||
SpiceInt lenvals; \
|
||||
\
|
||||
\
|
||||
ndim = (CCell)->size + SPICE_CELL_CTRLSZ; \
|
||||
lenvals = (CCell)->length; \
|
||||
\
|
||||
C2F_MapFixStrArr ( (caller), ndim, lenvals, \
|
||||
(CCell)->base, (fLen), (fCell) ); \
|
||||
\
|
||||
if ( !failed_c() ) \
|
||||
{ \
|
||||
/* \
|
||||
Explicitly set the control area info in the Fortran cell.\
|
||||
*/ \
|
||||
ssizec_ ( ( integer * ) &((CCell)->size), \
|
||||
( char * ) *(fCell), \
|
||||
( ftnlen ) *(fLen) ); \
|
||||
\
|
||||
scardc_ ( ( integer * ) &((CCell)->card), \
|
||||
( char * ) *(fCell), \
|
||||
( ftnlen ) *(fLen) ); \
|
||||
\
|
||||
if ( failed_c() ) \
|
||||
{ \
|
||||
/* \
|
||||
Setting size or cardinality of the Fortran cell \
|
||||
can fail, for example if the cell's string length \
|
||||
is too short. \
|
||||
*/ \
|
||||
free ( *(fCell) ); \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define C2F_MAP_CELL2( caller, CCell1, fCell1, fLen1, \
|
||||
CCell2, fCell2, fLen2 ) \
|
||||
\
|
||||
{ \
|
||||
C2F_MAP_CELL( caller, CCell1, fCell1, fLen1 ); \
|
||||
\
|
||||
if ( !failed_c() ) \
|
||||
{ \
|
||||
C2F_MAP_CELL( caller, CCell2, fCell2, fLen2 ); \
|
||||
\
|
||||
if ( failed_c() ) \
|
||||
{ \
|
||||
free ( *(fCell1) ); \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
#define C2F_MAP_CELL3( caller, CCell1, fCell1, fLen1, \
|
||||
CCell2, fCell2, fLen2, \
|
||||
CCell3, fCell3, fLen3 ) \
|
||||
\
|
||||
{ \
|
||||
C2F_MAP_CELL2( caller, CCell1, fCell1, fLen1, \
|
||||
CCell2, fCell2, fLen2 ); \
|
||||
\
|
||||
if ( !failed_c() ) \
|
||||
{ \
|
||||
C2F_MAP_CELL( caller, CCell3, fCell3, fLen3 ); \
|
||||
\
|
||||
if ( failed_c() ) \
|
||||
{ \
|
||||
free ( *(fCell1) ); \
|
||||
free ( *(fCell2) ); \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Macro that maps a Fortran-style character cell to a C cell
|
||||
(Note: this macro frees the Fortran cell):
|
||||
*/
|
||||
|
||||
#define F2C_MAP_CELL( fCell, fLen, CCell ) \
|
||||
\
|
||||
{ \
|
||||
SpiceInt card; \
|
||||
SpiceInt lenvals; \
|
||||
SpiceInt ndim; \
|
||||
SpiceInt nBytes; \
|
||||
SpiceInt size; \
|
||||
void * array; \
|
||||
\
|
||||
ndim = (CCell)->size + SPICE_CELL_CTRLSZ; \
|
||||
lenvals = (CCell)->length; \
|
||||
array = (CCell)->base; \
|
||||
\
|
||||
/* \
|
||||
Capture the size and cardinality of the Fortran cell. \
|
||||
*/ \
|
||||
if ( !failed_c() ) \
|
||||
{ \
|
||||
size = sizec_ ( ( char * ) (fCell), \
|
||||
( ftnlen ) fLen ); \
|
||||
\
|
||||
card = cardc_ ( ( char * ) (fCell), \
|
||||
( ftnlen ) fLen ); \
|
||||
} \
|
||||
\
|
||||
\
|
||||
/* \
|
||||
Copy the Fortran array into the output array. \
|
||||
*/ \
|
||||
\
|
||||
nBytes = ndim * fLen * sizeof(SpiceChar); \
|
||||
memmove ( array, fCell, nBytes ); \
|
||||
/* \
|
||||
Convert the output array from Fortran to C style. \
|
||||
*/ \
|
||||
F2C_ConvertTrStrArr ( ndim, lenvals, (SpiceChar *)array ); \
|
||||
\
|
||||
/* \
|
||||
Sync the size and cardinality of the C cell. \
|
||||
*/ \
|
||||
if ( !failed_c() ) \
|
||||
{ \
|
||||
(CCell)->size = size; \
|
||||
(CCell)->card = card; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
End of header SpiceZmc.h
|
||||
*/
|
||||
@@ -1,117 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceZpl.h ( CSPICE platform macros )
|
||||
|
||||
-Abstract
|
||||
|
||||
Define macros identifying the host platform for which this
|
||||
version of CSPICE is targeted.
|
||||
|
||||
-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.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Particulars
|
||||
|
||||
This header file defines macros that enable CSPICE code to be
|
||||
compiled conditionally based on the identity of the host platform.
|
||||
|
||||
The macros defined here ARE visible in the macro name space of
|
||||
any file that includes SpiceUsr.h. The names are prefixed with
|
||||
the string CSPICE_ to help prevent conflicts with macros defined
|
||||
by users' applications.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
B.V. Semenov (JPL)
|
||||
E.D. Wright (JPL)
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 2.1.0, 10-MAR-2014 (BVS)
|
||||
|
||||
Updated for the:
|
||||
|
||||
PC-CYGWIN-64BIT-GCC_C
|
||||
|
||||
environment.
|
||||
|
||||
-CSPICE Version 2.2.0, 14-MAY-2010 (EDW)(BVS)
|
||||
|
||||
Updated for the:
|
||||
|
||||
MAC-OSX-64BIT-INTEL_C
|
||||
PC-64BIT-MS_C
|
||||
SUN-SOLARIS-64BIT-NATIVE_C
|
||||
SUN-SOLARIS-INTEL-64BIT-CC_C
|
||||
SUN-SOLARIS-INTEL-CC_C
|
||||
|
||||
environments.
|
||||
|
||||
-CSPICE Version 2.1.0, 15-NOV-2006 (BVS)
|
||||
|
||||
Updated for MAC-OSX-INTEL_C environment.
|
||||
|
||||
-CSPICE Version 2.0.0, 21-FEB-2006 (NJB)
|
||||
|
||||
Updated for PC-LINUX-64BIT-GCC_C environment.
|
||||
|
||||
-CSPICE Version 1.3.0, 06-MAR-2005 (NJB)
|
||||
|
||||
Updated for SUN-SOLARIS-64BIT-GCC_C environment.
|
||||
|
||||
-CSPICE Version 1.2.0, 03-JAN-2005 (BVS)
|
||||
|
||||
Updated for PC-CYGWIN_C environment.
|
||||
|
||||
-CSPICE Version 1.1.0, 27-JUL-2002 (BVS)
|
||||
|
||||
Updated for MAC-OSX-NATIVE_C environment.
|
||||
|
||||
-CSPICE Version 1.0.0, 26-FEB-1999 (NJB) (EDW)
|
||||
|
||||
-Index_Entries
|
||||
|
||||
platform ID defines for CSPICE
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef HAVE_PLATFORM_MACROS_H
|
||||
#define HAVE_PLATFORM_MACROS_H
|
||||
|
||||
|
||||
#define CSPICE_MAC_OSX_INTEL_64BIT_GCC
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,82 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceZrnm.h ( CSPICE rename assignments )
|
||||
|
||||
-Abstract
|
||||
|
||||
Reassign CSPICE symbol names to prevent symbol collisions.
|
||||
|
||||
-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.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Particulars
|
||||
|
||||
Compiled symbol names in CSPICE may collide with symbols in other,
|
||||
non-SPICE libraries. This file redefines names which have or may
|
||||
cause a collision.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
E.D. Wright (JPL)
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 17-OCT-2011 (EDW)
|
||||
|
||||
-Index_Entries
|
||||
|
||||
Rename assignments for CSPICE functions
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#ifndef HAVE_SPICERENAME_H
|
||||
|
||||
/*
|
||||
Redefine names causing symbol conflicts:
|
||||
*/
|
||||
#define HAVE_SPICERENAME_H
|
||||
|
||||
/* dpstrf_ may exist in the LAPACK library. */
|
||||
|
||||
#define dpstrf_ zz_dpstrf_
|
||||
|
||||
/* Just in case. */
|
||||
|
||||
#define pi_ zz_pi_
|
||||
#define vnorm_ zz_vnorm_
|
||||
#define vdist_ zz_vdist_
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,199 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File SpiceZst.h ( Fortran/C string conversion utilities )
|
||||
|
||||
-Abstract
|
||||
|
||||
Define prototypes for CSPICE Fortran/C string conversion utilities.
|
||||
|
||||
Caution: these prototypes are subject to revision without notice.
|
||||
|
||||
These are private routines and are not part of the official CSPICE
|
||||
user interface.
|
||||
|
||||
-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
|
||||
|
||||
None.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
K.R. Gehringer (JPL)
|
||||
E.D. Wright (JPL)
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 6.0.0, 10-JUL-2002 (NJB)
|
||||
|
||||
Added prototype for new functions C2F_MapStrArr and
|
||||
C2F_MapFixStrArr.
|
||||
|
||||
-CSPICE Version 5.0.0, 18-MAY-2001 (WLT)
|
||||
|
||||
Added #ifdef's to add namespace specification for C++ compilation.
|
||||
|
||||
-CSPICE Version 4.0.0, 14-FEB-2000 (NJB)
|
||||
|
||||
Added prototype for new function C2F_CreateStrArr_Sig.
|
||||
|
||||
-CSPICE Version 3.0.0, 12-JUL-1999 (NJB)
|
||||
|
||||
Added prototype for function C2F_CreateFixStrArr.
|
||||
Added prototype for function F2C_ConvertTrStrArr.
|
||||
Removed reference in comments to C2F_CreateStrArr_Sig, which
|
||||
does not exist.
|
||||
|
||||
-CSPICE Version 2.0.1, 06-MAR-1998 (NJB)
|
||||
|
||||
Type SpiceVoid was changed to void.
|
||||
|
||||
-CSPICE Version 2.0.1, 09-FEB-1998 (EDW)
|
||||
|
||||
Added prototype for F2C_ConvertStrArr.
|
||||
|
||||
-CSPICE Version 2.0.0, 04-JAN-1998 (NJB)
|
||||
|
||||
Added prototype for F2C_ConvertStr.
|
||||
|
||||
-CSPICE Version 1.0.0, 25-OCT-1997 (NJB) (KRG) (EDW)
|
||||
|
||||
-Index_Entries
|
||||
|
||||
protoypes of CSPICE Fortran/C string conversion utilities
|
||||
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "SpiceZdf.h"
|
||||
|
||||
#ifndef HAVE_FCSTRINGS_H
|
||||
#define HAVE_FCSTRINGS_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace Jpl_NAIF_CSpice {
|
||||
#endif
|
||||
|
||||
SpiceStatus C2F_CreateStr ( ConstSpiceChar *,
|
||||
SpiceInt *,
|
||||
SpiceChar ** );
|
||||
|
||||
void C2F_CreateStr_Sig ( ConstSpiceChar *,
|
||||
SpiceInt *,
|
||||
SpiceChar ** );
|
||||
|
||||
void C2F_CreateFixStrArr ( SpiceInt nStr,
|
||||
SpiceInt cStrDim,
|
||||
ConstSpiceChar ** cStrArr,
|
||||
SpiceInt * fStrLen,
|
||||
SpiceChar ** fStrArr );
|
||||
|
||||
SpiceStatus C2F_CreateStrArr ( SpiceInt,
|
||||
ConstSpiceChar **,
|
||||
SpiceInt *,
|
||||
SpiceChar ** );
|
||||
|
||||
void C2F_CreateStrArr_Sig ( SpiceInt nStr,
|
||||
ConstSpiceChar ** cStrArr,
|
||||
SpiceInt * fStrLen,
|
||||
SpiceChar ** fStrArr );
|
||||
|
||||
void C2F_MapFixStrArr ( ConstSpiceChar * caller,
|
||||
SpiceInt nStr,
|
||||
SpiceInt cStrLen,
|
||||
const void * cStrArr,
|
||||
SpiceInt * fStrLen,
|
||||
SpiceChar ** fStrArr );
|
||||
|
||||
void C2F_MapStrArr ( ConstSpiceChar * caller,
|
||||
SpiceInt nStr,
|
||||
SpiceInt cStrLen,
|
||||
const void * cStrArr,
|
||||
SpiceInt * fStrLen,
|
||||
SpiceChar ** fStrArr );
|
||||
|
||||
SpiceStatus C2F_StrCpy ( ConstSpiceChar *,
|
||||
SpiceInt,
|
||||
SpiceChar * );
|
||||
|
||||
void F_Alloc ( SpiceInt,
|
||||
SpiceChar** );
|
||||
|
||||
void F2C_ConvertStr ( SpiceInt,
|
||||
SpiceChar * );
|
||||
|
||||
void F2C_ConvertStrArr ( SpiceInt n,
|
||||
SpiceInt lenout,
|
||||
SpiceChar * cvals );
|
||||
|
||||
void F2C_ConvertTrStrArr ( SpiceInt n,
|
||||
SpiceInt lenout,
|
||||
SpiceChar * cvals );
|
||||
|
||||
SpiceStatus F2C_CreateStr ( SpiceInt,
|
||||
ConstSpiceChar *,
|
||||
SpiceChar ** );
|
||||
|
||||
void F2C_CreateStr_Sig ( SpiceInt,
|
||||
ConstSpiceChar *,
|
||||
SpiceChar ** );
|
||||
|
||||
SpiceStatus F2C_CreateStrArr ( SpiceInt,
|
||||
SpiceInt,
|
||||
ConstSpiceChar *,
|
||||
SpiceChar *** );
|
||||
|
||||
void F2C_CreateStrArr_Sig ( SpiceInt,
|
||||
SpiceInt,
|
||||
ConstSpiceChar *,
|
||||
SpiceChar *** );
|
||||
|
||||
void F2C_FreeStrArr ( SpiceChar **cStrArr );
|
||||
|
||||
|
||||
SpiceStatus F2C_StrCpy ( SpiceInt,
|
||||
ConstSpiceChar *,
|
||||
SpiceInt,
|
||||
SpiceChar * );
|
||||
|
||||
SpiceInt F_StrLen ( SpiceInt,
|
||||
ConstSpiceChar * );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,683 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File f2c.h ( CSPICE version of the f2c standard header file )
|
||||
|
||||
-Abstract
|
||||
|
||||
Perform standard f2c declarations, customized for the host
|
||||
environment.
|
||||
|
||||
-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
|
||||
|
||||
The standard f2c header file f2c.h must be included by every function
|
||||
generated by running f2c on Fortran source code. The header f2c.h
|
||||
includes typedefs used to provide a level of indirection in mapping
|
||||
Fortran data types to native C data types. For example, Fortran
|
||||
INTEGER variables are mapped to variables of type integer, where
|
||||
integer is a C typedef. In the standard f2c.h header, the typedef
|
||||
integer translates to the C type long.
|
||||
|
||||
Because the standard version of f2c.h does not work on all platforms,
|
||||
this header file contains two platform-dependent versions of it,
|
||||
meant to be selected at build time via precompiler switches. The
|
||||
precompiler switches reference macros defined in SpiceZpl.h to
|
||||
determine for which host platform the code is targeted. The first
|
||||
version of f2c.h, which works on most platforms, is copied directly
|
||||
from the standard version of f2c.h. The second version is intended
|
||||
for use on the DEC Alpha running Digital Unix and the Sun/Solaris
|
||||
platform using 64 bit mode and running gcc. On those systems, longs
|
||||
occupy 8 bytes, as do doubles. Because the Fortran standard requires
|
||||
that INTEGERS occupy half the storage of DOUBLE PRECISION numbers,
|
||||
INTEGERS should be mapped to 4-byte ints rather than 8-byte longs
|
||||
on the platforms having 8-byte longs. In order to achieve this, the
|
||||
header f2c.h was transformed using the sed command
|
||||
|
||||
sed 's/long //' f2c.h
|
||||
|
||||
The high-level structure of this file is then:
|
||||
|
||||
# if ( defined(CSPICE_ALPHA_DIGITAL_UNIX ) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) )
|
||||
|
||||
|
||||
[ Alpha/Digital Unix and Sun Solaris 64 bit mode/gcc
|
||||
version of f2c.h source code ]
|
||||
|
||||
# else
|
||||
|
||||
[ Standard version of f2c.h source code ]
|
||||
|
||||
# endif
|
||||
|
||||
|
||||
-Restrictions
|
||||
|
||||
1) This header file must be updated whenever the f2c processor
|
||||
or the f2c libraries libI77 and libF77 are updated.
|
||||
|
||||
2) This header may need to be updated to support new platforms.
|
||||
The supported platforms at the time of the 31-JAN-1999 release
|
||||
are:
|
||||
|
||||
ALPHA-DIGITAL-UNIX
|
||||
HP
|
||||
NEXT
|
||||
PC-LINUX
|
||||
PC-MS
|
||||
SGI-IRIX-N32
|
||||
SGI-IRIX-NO2
|
||||
SUN-SOLARIS
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
B.V. Semenov (JPL)
|
||||
E.D. Wright (JPL)
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 4.2.0, 09-APR-2014 (EDW) (BVS)
|
||||
|
||||
Added include for SpiceZrnm.h to eliminate symbol conflict
|
||||
encountered from Icy and JNISpice under OS X 10.7.
|
||||
|
||||
Minor text format correction to eliminate error signal from
|
||||
OS X cpp. The edit removes leading whitespace from the
|
||||
final "#endif".
|
||||
|
||||
Updated for:
|
||||
|
||||
PC-CYGWIN-64BIT-GCC_C
|
||||
|
||||
environment. Added the corresponding tag:
|
||||
|
||||
CSPICE_PC_CYGWIN_64BIT_GCC
|
||||
|
||||
tag to the #ifdefs set.
|
||||
|
||||
-CSPICE Version 4.1.0, 14-MAY-2010 (EDW)(BVS)
|
||||
|
||||
Updated for:
|
||||
|
||||
MAC-OSX-64BIT-INTEL_C
|
||||
SUN-SOLARIS-64BIT-NATIVE_C
|
||||
SUN-SOLARIS-INTEL-64BIT-CC_C
|
||||
|
||||
environments. Added the corresponding tags:
|
||||
|
||||
CSPICE_MAC_OSX_INTEL_64BIT_GCC
|
||||
CSPICE_SUN_SOLARIS_64BIT_NATIVE
|
||||
CSPICE_SUN_SOLARIS_INTEL_64BIT_CC
|
||||
|
||||
tag to the #ifdefs set.
|
||||
|
||||
-CSPICE Version 4.0.0, 21-FEB-2006 (NJB)
|
||||
|
||||
Updated to support the PC Linux 64 bit mode/gcc platform.
|
||||
|
||||
-CSPICE Version 3.0.0, 27-JAN-2003 (NJB)
|
||||
|
||||
Updated to support the Sun Solaris 64 bit mode/gcc platform.
|
||||
|
||||
-CSPICE Version 2.0.0, 19-DEC-2001 (NJB)
|
||||
|
||||
Updated to support linking CSPICE into executables that
|
||||
also link in objects compiled from Fortran, in particular
|
||||
ones that perform Fortran I/O. To enable this odd mix,
|
||||
one defines the preprocessor flag
|
||||
|
||||
MIX_C_AND_FORTRAN
|
||||
|
||||
This macro is undefined by default, since the action it invokes
|
||||
is usually not desirable. See the header
|
||||
|
||||
f2cMang.h
|
||||
|
||||
for further information.
|
||||
|
||||
-CSPICE Version 1.0.0, 07-FEB-1999 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
Include those rename assignments for routines whose symbols will
|
||||
collide with other libraries.
|
||||
*/
|
||||
#ifndef HAVE_SPICERENAME_H
|
||||
#include "SpiceZrnm.h"
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
Optionally include name-mangling macros for f2c external symbols.
|
||||
*/
|
||||
#ifdef MIX_C_AND_FORTRAN
|
||||
#include "f2cMang.h"
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
Include CSPICE platform macro definitions.
|
||||
*/
|
||||
#include "SpiceZpl.h"
|
||||
|
||||
|
||||
#if ( defined(CSPICE_ALPHA_DIGITAL_UNIX ) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_64BIT_NATIVE ) \
|
||||
|| defined(CSPICE_MAC_OSX_INTEL_64BIT_GCC ) \
|
||||
|| defined(CSPICE_SUN_SOLARIS_INTEL_64BIT_CC ) \
|
||||
|| defined(CSPICE_PC_CYGWIN_64BIT_GCC ) \
|
||||
|| defined(CSPICE_PC_LINUX_64BIT_GCC ) )
|
||||
|
||||
|
||||
/*
|
||||
MODIFICATION
|
||||
|
||||
The following code is intended to be used on the platforms where
|
||||
a long is the size of a double and an int is half the
|
||||
size of a double.
|
||||
|
||||
Note that the comment line below indicating that the header is
|
||||
"Standard" has been retained from the original, but is no longer
|
||||
true.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* f2c.h -- Standard Fortran to C header file */
|
||||
|
||||
#ifndef F2C_INCLUDE
|
||||
#define F2C_INCLUDE
|
||||
|
||||
typedef int integer;
|
||||
typedef unsigned uinteger;
|
||||
typedef char *address;
|
||||
typedef short int shortint;
|
||||
typedef float real;
|
||||
typedef double doublereal;
|
||||
typedef struct { real r, i; } complex;
|
||||
typedef struct { doublereal r, i; } doublecomplex;
|
||||
typedef int logical;
|
||||
typedef short int shortlogical;
|
||||
typedef char logical1;
|
||||
typedef char integer1;
|
||||
#if 0 /* Adjust for integer*8. */
|
||||
typedef long longint; /* system-dependent */
|
||||
typedef unsigned long ulongint; /* system-dependent */
|
||||
#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
|
||||
#define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
|
||||
#endif
|
||||
|
||||
#define TRUE_ (1)
|
||||
#define FALSE_ (0)
|
||||
|
||||
/* Extern is for use with -E */
|
||||
#ifndef Extern
|
||||
#define Extern extern
|
||||
#endif
|
||||
|
||||
/* I/O stuff */
|
||||
|
||||
#ifdef f2c_i2
|
||||
/* for -i2 */
|
||||
typedef short flag;
|
||||
typedef short ftnlen;
|
||||
typedef short ftnint;
|
||||
#else
|
||||
typedef int flag;
|
||||
typedef int ftnlen;
|
||||
typedef int ftnint;
|
||||
#endif
|
||||
|
||||
/*external read, write*/
|
||||
typedef struct
|
||||
{ flag cierr;
|
||||
ftnint ciunit;
|
||||
flag ciend;
|
||||
char *cifmt;
|
||||
ftnint cirec;
|
||||
} cilist;
|
||||
|
||||
/*internal read, write*/
|
||||
typedef struct
|
||||
{ flag icierr;
|
||||
char *iciunit;
|
||||
flag iciend;
|
||||
char *icifmt;
|
||||
ftnint icirlen;
|
||||
ftnint icirnum;
|
||||
} icilist;
|
||||
|
||||
/*open*/
|
||||
typedef struct
|
||||
{ flag oerr;
|
||||
ftnint ounit;
|
||||
char *ofnm;
|
||||
ftnlen ofnmlen;
|
||||
char *osta;
|
||||
char *oacc;
|
||||
char *ofm;
|
||||
ftnint orl;
|
||||
char *oblnk;
|
||||
} olist;
|
||||
|
||||
/*close*/
|
||||
typedef struct
|
||||
{ flag cerr;
|
||||
ftnint cunit;
|
||||
char *csta;
|
||||
} cllist;
|
||||
|
||||
/*rewind, backspace, endfile*/
|
||||
typedef struct
|
||||
{ flag aerr;
|
||||
ftnint aunit;
|
||||
} alist;
|
||||
|
||||
/* inquire */
|
||||
typedef struct
|
||||
{ flag inerr;
|
||||
ftnint inunit;
|
||||
char *infile;
|
||||
ftnlen infilen;
|
||||
ftnint *inex; /*parameters in standard's order*/
|
||||
ftnint *inopen;
|
||||
ftnint *innum;
|
||||
ftnint *innamed;
|
||||
char *inname;
|
||||
ftnlen innamlen;
|
||||
char *inacc;
|
||||
ftnlen inacclen;
|
||||
char *inseq;
|
||||
ftnlen inseqlen;
|
||||
char *indir;
|
||||
ftnlen indirlen;
|
||||
char *infmt;
|
||||
ftnlen infmtlen;
|
||||
char *inform;
|
||||
ftnint informlen;
|
||||
char *inunf;
|
||||
ftnlen inunflen;
|
||||
ftnint *inrecl;
|
||||
ftnint *innrec;
|
||||
char *inblank;
|
||||
ftnlen inblanklen;
|
||||
} inlist;
|
||||
|
||||
#define VOID void
|
||||
|
||||
union Multitype { /* for multiple entry points */
|
||||
integer1 g;
|
||||
shortint h;
|
||||
integer i;
|
||||
/* longint j; */
|
||||
real r;
|
||||
doublereal d;
|
||||
complex c;
|
||||
doublecomplex z;
|
||||
};
|
||||
|
||||
typedef union Multitype Multitype;
|
||||
|
||||
/*typedef int Long;*/ /* No longer used; formerly in Namelist */
|
||||
|
||||
struct Vardesc { /* for Namelist */
|
||||
char *name;
|
||||
char *addr;
|
||||
ftnlen *dims;
|
||||
int type;
|
||||
};
|
||||
typedef struct Vardesc Vardesc;
|
||||
|
||||
struct Namelist {
|
||||
char *name;
|
||||
Vardesc **vars;
|
||||
int nvars;
|
||||
};
|
||||
typedef struct Namelist Namelist;
|
||||
|
||||
#define abs(x) ((x) >= 0 ? (x) : -(x))
|
||||
#define dabs(x) (doublereal)abs(x)
|
||||
#define min(a,b) ((a) <= (b) ? (a) : (b))
|
||||
#define max(a,b) ((a) >= (b) ? (a) : (b))
|
||||
#define dmin(a,b) (doublereal)min(a,b)
|
||||
#define dmax(a,b) (doublereal)max(a,b)
|
||||
#define bit_test(a,b) ((a) >> (b) & 1)
|
||||
#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
|
||||
#define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
|
||||
|
||||
/* procedure parameter types for -A and -C++ */
|
||||
|
||||
#define F2C_proc_par_types 1
|
||||
#ifdef __cplusplus
|
||||
typedef int /* Unknown procedure type */ (*U_fp)(...);
|
||||
typedef shortint (*J_fp)(...);
|
||||
typedef integer (*I_fp)(...);
|
||||
typedef real (*R_fp)(...);
|
||||
typedef doublereal (*D_fp)(...), (*E_fp)(...);
|
||||
typedef /* Complex */ VOID (*C_fp)(...);
|
||||
typedef /* Double Complex */ VOID (*Z_fp)(...);
|
||||
typedef logical (*L_fp)(...);
|
||||
typedef shortlogical (*K_fp)(...);
|
||||
typedef /* Character */ VOID (*H_fp)(...);
|
||||
typedef /* Subroutine */ int (*S_fp)(...);
|
||||
#else
|
||||
typedef int /* Unknown procedure type */ (*U_fp)();
|
||||
typedef shortint (*J_fp)();
|
||||
typedef integer (*I_fp)();
|
||||
typedef real (*R_fp)();
|
||||
typedef doublereal (*D_fp)(), (*E_fp)();
|
||||
typedef /* Complex */ VOID (*C_fp)();
|
||||
typedef /* Double Complex */ VOID (*Z_fp)();
|
||||
typedef logical (*L_fp)();
|
||||
typedef shortlogical (*K_fp)();
|
||||
typedef /* Character */ VOID (*H_fp)();
|
||||
typedef /* Subroutine */ int (*S_fp)();
|
||||
#endif
|
||||
/* E_fp is for real functions when -R is not specified */
|
||||
typedef VOID C_f; /* complex function */
|
||||
typedef VOID H_f; /* character function */
|
||||
typedef VOID Z_f; /* double complex function */
|
||||
typedef doublereal E_f; /* real function with -R not specified */
|
||||
|
||||
/* undef any lower-case symbols that your C compiler predefines, e.g.: */
|
||||
|
||||
#ifndef Skip_f2c_Undefs
|
||||
#undef cray
|
||||
#undef gcos
|
||||
#undef mc68010
|
||||
#undef mc68020
|
||||
#undef mips
|
||||
#undef pdp11
|
||||
#undef sgi
|
||||
#undef sparc
|
||||
#undef sun
|
||||
#undef sun2
|
||||
#undef sun3
|
||||
#undef sun4
|
||||
#undef u370
|
||||
#undef u3b
|
||||
#undef u3b2
|
||||
#undef u3b5
|
||||
#undef unix
|
||||
#undef vax
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
This marks the end of the MODIFICATION section version of f2c.h.
|
||||
*/
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
The following code is the standard f2c.h header. In this
|
||||
header, an "integer" is defined to be of type long.
|
||||
|
||||
Because the code is copied verbatim, it does not follow the usual
|
||||
CSPICE indentation pattern.
|
||||
*/
|
||||
|
||||
|
||||
/* f2c.h -- Standard Fortran to C header file */
|
||||
|
||||
|
||||
#ifndef F2C_INCLUDE
|
||||
#define F2C_INCLUDE
|
||||
|
||||
typedef long int integer;
|
||||
typedef unsigned long uinteger;
|
||||
typedef char *address;
|
||||
typedef short int shortint;
|
||||
typedef float real;
|
||||
typedef double doublereal;
|
||||
typedef struct { real r, i; } complex;
|
||||
typedef struct { doublereal r, i; } doublecomplex;
|
||||
typedef long int logical;
|
||||
typedef short int shortlogical;
|
||||
typedef char logical1;
|
||||
typedef char integer1;
|
||||
#if 0 /* Adjust for integer*8. */
|
||||
typedef long long longint; /* system-dependent */
|
||||
typedef unsigned long long ulongint; /* system-dependent */
|
||||
#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
|
||||
#define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
|
||||
#endif
|
||||
|
||||
#define TRUE_ (1)
|
||||
#define FALSE_ (0)
|
||||
|
||||
/* Extern is for use with -E */
|
||||
#ifndef Extern
|
||||
#define Extern extern
|
||||
#endif
|
||||
|
||||
/* I/O stuff */
|
||||
|
||||
#ifdef f2c_i2
|
||||
/* for -i2 */
|
||||
typedef short flag;
|
||||
typedef short ftnlen;
|
||||
typedef short ftnint;
|
||||
#else
|
||||
typedef long int flag;
|
||||
typedef long int ftnlen;
|
||||
typedef long int ftnint;
|
||||
#endif
|
||||
|
||||
/*external read, write*/
|
||||
typedef struct
|
||||
{ flag cierr;
|
||||
ftnint ciunit;
|
||||
flag ciend;
|
||||
char *cifmt;
|
||||
ftnint cirec;
|
||||
} cilist;
|
||||
|
||||
/*internal read, write*/
|
||||
typedef struct
|
||||
{ flag icierr;
|
||||
char *iciunit;
|
||||
flag iciend;
|
||||
char *icifmt;
|
||||
ftnint icirlen;
|
||||
ftnint icirnum;
|
||||
} icilist;
|
||||
|
||||
/*open*/
|
||||
typedef struct
|
||||
{ flag oerr;
|
||||
ftnint ounit;
|
||||
char *ofnm;
|
||||
ftnlen ofnmlen;
|
||||
char *osta;
|
||||
char *oacc;
|
||||
char *ofm;
|
||||
ftnint orl;
|
||||
char *oblnk;
|
||||
} olist;
|
||||
|
||||
/*close*/
|
||||
typedef struct
|
||||
{ flag cerr;
|
||||
ftnint cunit;
|
||||
char *csta;
|
||||
} cllist;
|
||||
|
||||
/*rewind, backspace, endfile*/
|
||||
typedef struct
|
||||
{ flag aerr;
|
||||
ftnint aunit;
|
||||
} alist;
|
||||
|
||||
/* inquire */
|
||||
typedef struct
|
||||
{ flag inerr;
|
||||
ftnint inunit;
|
||||
char *infile;
|
||||
ftnlen infilen;
|
||||
ftnint *inex; /*parameters in standard's order*/
|
||||
ftnint *inopen;
|
||||
ftnint *innum;
|
||||
ftnint *innamed;
|
||||
char *inname;
|
||||
ftnlen innamlen;
|
||||
char *inacc;
|
||||
ftnlen inacclen;
|
||||
char *inseq;
|
||||
ftnlen inseqlen;
|
||||
char *indir;
|
||||
ftnlen indirlen;
|
||||
char *infmt;
|
||||
ftnlen infmtlen;
|
||||
char *inform;
|
||||
ftnint informlen;
|
||||
char *inunf;
|
||||
ftnlen inunflen;
|
||||
ftnint *inrecl;
|
||||
ftnint *innrec;
|
||||
char *inblank;
|
||||
ftnlen inblanklen;
|
||||
} inlist;
|
||||
|
||||
#define VOID void
|
||||
|
||||
union Multitype { /* for multiple entry points */
|
||||
integer1 g;
|
||||
shortint h;
|
||||
integer i;
|
||||
/* longint j; */
|
||||
real r;
|
||||
doublereal d;
|
||||
complex c;
|
||||
doublecomplex z;
|
||||
};
|
||||
|
||||
typedef union Multitype Multitype;
|
||||
|
||||
/*typedef long int Long;*/ /* No longer used; formerly in Namelist */
|
||||
|
||||
struct Vardesc { /* for Namelist */
|
||||
char *name;
|
||||
char *addr;
|
||||
ftnlen *dims;
|
||||
int type;
|
||||
};
|
||||
typedef struct Vardesc Vardesc;
|
||||
|
||||
struct Namelist {
|
||||
char *name;
|
||||
Vardesc **vars;
|
||||
int nvars;
|
||||
};
|
||||
typedef struct Namelist Namelist;
|
||||
|
||||
#define abs(x) ((x) >= 0 ? (x) : -(x))
|
||||
#define dabs(x) (doublereal)abs(x)
|
||||
#define min(a,b) ((a) <= (b) ? (a) : (b))
|
||||
#define max(a,b) ((a) >= (b) ? (a) : (b))
|
||||
#define dmin(a,b) (doublereal)min(a,b)
|
||||
#define dmax(a,b) (doublereal)max(a,b)
|
||||
#define bit_test(a,b) ((a) >> (b) & 1)
|
||||
#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
|
||||
#define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
|
||||
|
||||
/* procedure parameter types for -A and -C++ */
|
||||
|
||||
#define F2C_proc_par_types 1
|
||||
#ifdef __cplusplus
|
||||
typedef int /* Unknown procedure type */ (*U_fp)(...);
|
||||
typedef shortint (*J_fp)(...);
|
||||
typedef integer (*I_fp)(...);
|
||||
typedef real (*R_fp)(...);
|
||||
typedef doublereal (*D_fp)(...), (*E_fp)(...);
|
||||
typedef /* Complex */ VOID (*C_fp)(...);
|
||||
typedef /* Double Complex */ VOID (*Z_fp)(...);
|
||||
typedef logical (*L_fp)(...);
|
||||
typedef shortlogical (*K_fp)(...);
|
||||
typedef /* Character */ VOID (*H_fp)(...);
|
||||
typedef /* Subroutine */ int (*S_fp)(...);
|
||||
#else
|
||||
typedef int /* Unknown procedure type */ (*U_fp)();
|
||||
typedef shortint (*J_fp)();
|
||||
typedef integer (*I_fp)();
|
||||
typedef real (*R_fp)();
|
||||
typedef doublereal (*D_fp)(), (*E_fp)();
|
||||
typedef /* Complex */ VOID (*C_fp)();
|
||||
typedef /* Double Complex */ VOID (*Z_fp)();
|
||||
typedef logical (*L_fp)();
|
||||
typedef shortlogical (*K_fp)();
|
||||
typedef /* Character */ VOID (*H_fp)();
|
||||
typedef /* Subroutine */ int (*S_fp)();
|
||||
#endif
|
||||
/* E_fp is for real functions when -R is not specified */
|
||||
typedef VOID C_f; /* complex function */
|
||||
typedef VOID H_f; /* character function */
|
||||
typedef VOID Z_f; /* double complex function */
|
||||
typedef doublereal E_f; /* real function with -R not specified */
|
||||
|
||||
/* undef any lower-case symbols that your C compiler predefines, e.g.: */
|
||||
|
||||
#ifndef Skip_f2c_Undefs
|
||||
#undef cray
|
||||
#undef gcos
|
||||
#undef mc68010
|
||||
#undef mc68020
|
||||
#undef mips
|
||||
#undef pdp11
|
||||
#undef sgi
|
||||
#undef sparc
|
||||
#undef sun
|
||||
#undef sun2
|
||||
#undef sun3
|
||||
#undef sun4
|
||||
#undef u370
|
||||
#undef u3b
|
||||
#undef u3b2
|
||||
#undef u3b5
|
||||
#undef unix
|
||||
#undef vax
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,390 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File f2cMang.h ( f2c external symbol mangling )
|
||||
|
||||
-Abstract
|
||||
|
||||
Define macros that mangle the external symbols in the f2c F77 and I77
|
||||
libraries.
|
||||
|
||||
-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 header supports linking CSPICE into executables that
|
||||
also link in objects compiled from Fortran, in particular
|
||||
ones that perform Fortran I/O. To enable this odd mix,
|
||||
one defines the preprocessor flag
|
||||
|
||||
MIX_C_AND_FORTRAN
|
||||
|
||||
This macro is undefined by default, since the action it invokes
|
||||
is usually not desirable. When the flag is defined, this header
|
||||
defines macros that mangle the f2c library external symbols:
|
||||
the symbol
|
||||
|
||||
xxx
|
||||
|
||||
gets mapped to
|
||||
|
||||
xxx_f2c
|
||||
|
||||
This mangling prevents name collisions between the f2c
|
||||
implementations of the F77 and I77 library routines and those
|
||||
in the corresponding Fortran libraries on a host system.
|
||||
|
||||
The set of external symbols defined in the f2c libraries can
|
||||
be determined by combining objects from both F77 and I77 into
|
||||
a single Unix archive libarary, then running the Unix utility
|
||||
nm on the that archive. If available, an nm option that selects
|
||||
only external symbols should be invoked.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
1) It is recommended that use of the features implemented by this
|
||||
header be avoided if at all possible. There are robustness and
|
||||
portability problems associated with linking Fortran and C objects
|
||||
together in one executable.
|
||||
|
||||
2) When f2c external symbol name mangling is invoked, objects
|
||||
derived from C code translated from Fortran by f2c won't
|
||||
link against CSPICE any longer, if these objects reference
|
||||
the standard f2c external symbols.
|
||||
|
||||
3) The features implemented by this header have been tested only
|
||||
under the Sun Solaris GCC, Sun Solaris native ANSI C, and
|
||||
PC/Linux/gcc environments.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 2.0.1, 07-MAR-2009 (NJB)
|
||||
|
||||
Restrictions header section was updated to note successful
|
||||
testing on the PC/Linux/gcc platform.
|
||||
|
||||
-CSPICE Version 2.0.0, 19-DEC-2001 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
Define masking macros for f2c external symbols.
|
||||
*/
|
||||
#ifdef MIX_C_AND_FORTRAN
|
||||
|
||||
/*
|
||||
Define the macros only once, if they need to be defined.
|
||||
*/
|
||||
#ifndef F2C_MANGLING_DONE
|
||||
|
||||
#define F77_aloc F77_aloc_f2c
|
||||
#define F_err F_err_f2c
|
||||
#define L_len L_len_f2c
|
||||
#define abort_ abort__f2c
|
||||
#define b_char b_char_f2c
|
||||
#define c_abs c_abs_f2c
|
||||
#define c_cos c_cos_f2c
|
||||
#define c_dfe c_dfe_f2c
|
||||
#define c_div c_div_f2c
|
||||
#define c_due c_due_f2c
|
||||
#define c_exp c_exp_f2c
|
||||
#define c_le c_le_f2c
|
||||
#define c_log c_log_f2c
|
||||
#define c_sfe c_sfe_f2c
|
||||
#define c_si c_si_f2c
|
||||
#define c_sin c_sin_f2c
|
||||
#define c_sqrt c_sqrt_f2c
|
||||
#define c_sue c_sue_f2c
|
||||
#define d_abs d_abs_f2c
|
||||
#define d_acos d_acos_f2c
|
||||
#define d_asin d_asin_f2c
|
||||
#define d_atan d_atan_f2c
|
||||
#define d_atn2 d_atn2_f2c
|
||||
#define d_cnjg d_cnjg_f2c
|
||||
#define d_cos d_cos_f2c
|
||||
#define d_cosh d_cosh_f2c
|
||||
#define d_dim d_dim_f2c
|
||||
#define d_exp d_exp_f2c
|
||||
#define d_imag d_imag_f2c
|
||||
#define d_int d_int_f2c
|
||||
#define d_lg10 d_lg10_f2c
|
||||
#define d_log d_log_f2c
|
||||
#define d_mod d_mod_f2c
|
||||
#define d_nint d_nint_f2c
|
||||
#define d_prod d_prod_f2c
|
||||
#define d_sign d_sign_f2c
|
||||
#define d_sin d_sin_f2c
|
||||
#define d_sinh d_sinh_f2c
|
||||
#define d_sqrt d_sqrt_f2c
|
||||
#define d_tan d_tan_f2c
|
||||
#define d_tanh d_tanh_f2c
|
||||
#define derf_ derf__f2c
|
||||
#define derfc_ derfc__f2c
|
||||
#define do_fio do_fio_f2c
|
||||
#define do_lio do_lio_f2c
|
||||
#define do_ud do_ud_f2c
|
||||
#define do_uio do_uio_f2c
|
||||
#define do_us do_us_f2c
|
||||
#define dtime_ dtime__f2c
|
||||
#define e_rdfe e_rdfe_f2c
|
||||
#define e_rdue e_rdue_f2c
|
||||
#define e_rsfe e_rsfe_f2c
|
||||
#define e_rsfi e_rsfi_f2c
|
||||
#define e_rsle e_rsle_f2c
|
||||
#define e_rsli e_rsli_f2c
|
||||
#define e_rsue e_rsue_f2c
|
||||
#define e_wdfe e_wdfe_f2c
|
||||
#define e_wdue e_wdue_f2c
|
||||
#define e_wsfe e_wsfe_f2c
|
||||
#define e_wsfi e_wsfi_f2c
|
||||
#define e_wsle e_wsle_f2c
|
||||
#define e_wsli e_wsli_f2c
|
||||
#define e_wsue e_wsue_f2c
|
||||
#define ef1asc_ ef1asc__f2c
|
||||
#define ef1cmc_ ef1cmc__f2c
|
||||
#define en_fio en_fio_f2c
|
||||
#define erf_ erf__f2c
|
||||
#define erfc_ erfc__f2c
|
||||
#define err__fl err__fl_f2c
|
||||
#define etime_ etime__f2c
|
||||
#define exit_ exit__f2c
|
||||
#define f__Aquote f__Aquote_f2c
|
||||
#define f__buflen f__buflen_f2c
|
||||
#define f__cabs f__cabs_f2c
|
||||
#define f__canseek f__canseek_f2c
|
||||
#define f__cblank f__cblank_f2c
|
||||
#define f__cf f__cf_f2c
|
||||
#define f__cnt f__cnt_f2c
|
||||
#define f__cp f__cp_f2c
|
||||
#define f__cplus f__cplus_f2c
|
||||
#define f__cursor f__cursor_f2c
|
||||
#define f__curunit f__curunit_f2c
|
||||
#define f__doed f__doed_f2c
|
||||
#define f__doend f__doend_f2c
|
||||
#define f__doned f__doned_f2c
|
||||
#define f__donewrec f__donewrec_f2c
|
||||
#define f__dorevert f__dorevert_f2c
|
||||
#define f__elist f__elist_f2c
|
||||
#define f__external f__external_f2c
|
||||
#define f__fatal f__fatal_f2c
|
||||
#define f__fmtbuf f__fmtbuf_f2c
|
||||
#define f__formatted f__formatted_f2c
|
||||
#define f__getn f__getn_f2c
|
||||
#define f__hiwater f__hiwater_f2c
|
||||
#define f__icend f__icend_f2c
|
||||
#define f__icnum f__icnum_f2c
|
||||
#define f__icptr f__icptr_f2c
|
||||
#define f__icvt f__icvt_f2c
|
||||
#define f__init f__init_f2c
|
||||
#define f__inode f__inode_f2c
|
||||
#define f__lchar f__lchar_f2c
|
||||
#define f__lcount f__lcount_f2c
|
||||
#define f__lioproc f__lioproc_f2c
|
||||
#define f__lquit f__lquit_f2c
|
||||
#define f__ltab f__ltab_f2c
|
||||
#define f__ltype f__ltype_f2c
|
||||
#define f__lx f__lx_f2c
|
||||
#define f__ly f__ly_f2c
|
||||
#define f__nonl f__nonl_f2c
|
||||
#define f__nowreading f__nowreading_f2c
|
||||
#define f__nowwriting f__nowwriting_f2c
|
||||
#define f__parenlvl f__parenlvl_f2c
|
||||
#define f__pc f__pc_f2c
|
||||
#define f__putbuf f__putbuf_f2c
|
||||
#define f__putn f__putn_f2c
|
||||
#define f__r_mode f__r_mode_f2c
|
||||
#define f__reading f__reading_f2c
|
||||
#define f__reclen f__reclen_f2c
|
||||
#define f__recloc f__recloc_f2c
|
||||
#define f__recpos f__recpos_f2c
|
||||
#define f__ret f__ret_f2c
|
||||
#define f__revloc f__revloc_f2c
|
||||
#define f__rp f__rp_f2c
|
||||
#define f__scale f__scale_f2c
|
||||
#define f__sequential f__sequential_f2c
|
||||
#define f__svic f__svic_f2c
|
||||
#define f__typesize f__typesize_f2c
|
||||
#define f__units f__units_f2c
|
||||
#define f__w_mode f__w_mode_f2c
|
||||
#define f__workdone f__workdone_f2c
|
||||
#define f_back f_back_f2c
|
||||
#define f_clos f_clos_f2c
|
||||
#define f_end f_end_f2c
|
||||
#define f_exit f_exit_f2c
|
||||
#define f_init f_init_f2c
|
||||
#define f_inqu f_inqu_f2c
|
||||
#define f_open f_open_f2c
|
||||
#define f_rew f_rew_f2c
|
||||
#define fk_open fk_open_f2c
|
||||
#define flush_ flush__f2c
|
||||
#define fmt_bg fmt_bg_f2c
|
||||
#define fseek_ fseek__f2c
|
||||
#define ftell_ ftell__f2c
|
||||
#define g_char g_char_f2c
|
||||
#define getenv_ getenv__f2c
|
||||
#define h_abs h_abs_f2c
|
||||
#define h_dim h_dim_f2c
|
||||
#define h_dnnt h_dnnt_f2c
|
||||
#define h_indx h_indx_f2c
|
||||
#define h_len h_len_f2c
|
||||
#define h_mod h_mod_f2c
|
||||
#define h_nint h_nint_f2c
|
||||
#define h_sign h_sign_f2c
|
||||
#define hl_ge hl_ge_f2c
|
||||
#define hl_gt hl_gt_f2c
|
||||
#define hl_le hl_le_f2c
|
||||
#define hl_lt hl_lt_f2c
|
||||
#define i_abs i_abs_f2c
|
||||
#define i_dim i_dim_f2c
|
||||
#define i_dnnt i_dnnt_f2c
|
||||
#define i_indx i_indx_f2c
|
||||
#define i_len i_len_f2c
|
||||
#define i_mod i_mod_f2c
|
||||
#define i_nint i_nint_f2c
|
||||
#define i_sign i_sign_f2c
|
||||
#define iw_rev iw_rev_f2c
|
||||
#define l_eof l_eof_f2c
|
||||
#define l_ge l_ge_f2c
|
||||
#define l_getc l_getc_f2c
|
||||
#define l_gt l_gt_f2c
|
||||
#define l_le l_le_f2c
|
||||
#define l_lt l_lt_f2c
|
||||
#define l_read l_read_f2c
|
||||
#define l_ungetc l_ungetc_f2c
|
||||
#define l_write l_write_f2c
|
||||
#define lbit_bits lbit_bits_f2c
|
||||
#define lbit_cshift lbit_cshift_f2c
|
||||
#define lbit_shift lbit_shift_f2c
|
||||
#define mk_hashtab mk_hashtab_f2c
|
||||
#define nml_read nml_read_f2c
|
||||
#define pars_f pars_f_f2c
|
||||
#define pow_ci pow_ci_f2c
|
||||
#define pow_dd pow_dd_f2c
|
||||
#define pow_di pow_di_f2c
|
||||
#define pow_hh pow_hh_f2c
|
||||
#define pow_ii pow_ii_f2c
|
||||
#define pow_ri pow_ri_f2c
|
||||
#define pow_zi pow_zi_f2c
|
||||
#define pow_zz pow_zz_f2c
|
||||
#define r_abs r_abs_f2c
|
||||
#define r_acos r_acos_f2c
|
||||
#define r_asin r_asin_f2c
|
||||
#define r_atan r_atan_f2c
|
||||
#define r_atn2 r_atn2_f2c
|
||||
#define r_cnjg r_cnjg_f2c
|
||||
#define r_cos r_cos_f2c
|
||||
#define r_cosh r_cosh_f2c
|
||||
#define r_dim r_dim_f2c
|
||||
#define r_exp r_exp_f2c
|
||||
#define r_imag r_imag_f2c
|
||||
#define r_int r_int_f2c
|
||||
#define r_lg10 r_lg10_f2c
|
||||
#define r_log r_log_f2c
|
||||
#define r_mod r_mod_f2c
|
||||
#define r_nint r_nint_f2c
|
||||
#define r_sign r_sign_f2c
|
||||
#define r_sin r_sin_f2c
|
||||
#define r_sinh r_sinh_f2c
|
||||
#define r_sqrt r_sqrt_f2c
|
||||
#define r_tan r_tan_f2c
|
||||
#define r_tanh r_tanh_f2c
|
||||
#define rd_ed rd_ed_f2c
|
||||
#define rd_ned rd_ned_f2c
|
||||
#define s_cat s_cat_f2c
|
||||
#define s_cmp s_cmp_f2c
|
||||
#define s_copy s_copy_f2c
|
||||
#define s_paus s_paus_f2c
|
||||
#define s_rdfe s_rdfe_f2c
|
||||
#define s_rdue s_rdue_f2c
|
||||
#define s_rnge s_rnge_f2c
|
||||
#define s_rsfe s_rsfe_f2c
|
||||
#define s_rsfi s_rsfi_f2c
|
||||
#define s_rsle s_rsle_f2c
|
||||
#define s_rsli s_rsli_f2c
|
||||
#define s_rsne s_rsne_f2c
|
||||
#define s_rsni s_rsni_f2c
|
||||
#define s_rsue s_rsue_f2c
|
||||
#define s_stop s_stop_f2c
|
||||
#define s_wdfe s_wdfe_f2c
|
||||
#define s_wdue s_wdue_f2c
|
||||
#define s_wsfe s_wsfe_f2c
|
||||
#define s_wsfi s_wsfi_f2c
|
||||
#define s_wsle s_wsle_f2c
|
||||
#define s_wsli s_wsli_f2c
|
||||
#define s_wsne s_wsne_f2c
|
||||
#define s_wsni s_wsni_f2c
|
||||
#define s_wsue s_wsue_f2c
|
||||
#define sig_die sig_die_f2c
|
||||
#define signal_ signal__f2c
|
||||
#define system_ system__f2c
|
||||
#define t_getc t_getc_f2c
|
||||
#define t_runc t_runc_f2c
|
||||
#define w_ed w_ed_f2c
|
||||
#define w_ned w_ned_f2c
|
||||
#define wrt_E wrt_E_f2c
|
||||
#define wrt_F wrt_F_f2c
|
||||
#define wrt_L wrt_L_f2c
|
||||
#define x_endp x_endp_f2c
|
||||
#define x_getc x_getc_f2c
|
||||
#define x_putc x_putc_f2c
|
||||
#define x_rev x_rev_f2c
|
||||
#define x_rsne x_rsne_f2c
|
||||
#define x_wSL x_wSL_f2c
|
||||
#define x_wsne x_wsne_f2c
|
||||
#define xrd_SL xrd_SL_f2c
|
||||
#define y_getc y_getc_f2c
|
||||
#define y_rsk y_rsk_f2c
|
||||
#define z_abs z_abs_f2c
|
||||
#define z_cos z_cos_f2c
|
||||
#define z_div z_div_f2c
|
||||
#define z_exp z_exp_f2c
|
||||
#define z_getc z_getc_f2c
|
||||
#define z_log z_log_f2c
|
||||
#define z_putc z_putc_f2c
|
||||
#define z_rnew z_rnew_f2c
|
||||
#define z_sin z_sin_f2c
|
||||
#define z_sqrt z_sqrt_f2c
|
||||
#define z_wnew z_wnew_f2c
|
||||
|
||||
#define F2C_MANGLING_DONE
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
#include "stdio.h"
|
||||
#include "errno.h"
|
||||
#ifndef NULL
|
||||
/* ANSI C */
|
||||
#include "stddef.h"
|
||||
#endif
|
||||
|
||||
#ifndef SEEK_SET
|
||||
#define SEEK_SET 0
|
||||
#define SEEK_CUR 1
|
||||
#define SEEK_END 2
|
||||
#endif
|
||||
|
||||
#ifdef MSDOS
|
||||
#ifndef NON_UNIX_STDIO
|
||||
#define NON_UNIX_STDIO
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef UIOLEN_int
|
||||
typedef int uiolen;
|
||||
#else
|
||||
typedef long uiolen;
|
||||
#endif
|
||||
|
||||
/*units*/
|
||||
typedef struct
|
||||
{ FILE *ufd; /*0=unconnected*/
|
||||
char *ufnm;
|
||||
#ifndef MSDOS
|
||||
long uinode;
|
||||
int udev;
|
||||
#endif
|
||||
int url; /*0=sequential*/
|
||||
flag useek; /*true=can backspace, use dir, ...*/
|
||||
flag ufmt;
|
||||
flag urw; /* (1 for can read) | (2 for can write) */
|
||||
flag ublnk;
|
||||
flag uend;
|
||||
flag uwrt; /*last io was write*/
|
||||
flag uscrtch;
|
||||
} unit;
|
||||
|
||||
extern flag f__init;
|
||||
extern cilist *f__elist; /*active external io list*/
|
||||
extern flag f__reading,f__external,f__sequential,f__formatted;
|
||||
#undef Void
|
||||
#ifdef KR_headers
|
||||
#define Void /*void*/
|
||||
extern int (*f__getn)(); /* for formatted input */
|
||||
extern void (*f__putn)(); /* for formatted output */
|
||||
extern void x_putc();
|
||||
extern long f__inode();
|
||||
extern VOID sig_die();
|
||||
extern int (*f__donewrec)(), t_putc(), x_wSL();
|
||||
extern int c_sfe(), err__fl(), xrd_SL(), f__putbuf();
|
||||
#else
|
||||
#define Void void
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int (*f__getn)(void); /* for formatted input */
|
||||
extern void (*f__putn)(int); /* for formatted output */
|
||||
extern void x_putc(int);
|
||||
extern long f__inode(char*,int*);
|
||||
extern void sig_die(char*,int);
|
||||
extern void f__fatal(int,char*);
|
||||
extern int t_runc(alist*);
|
||||
extern int f__nowreading(unit*), f__nowwriting(unit*);
|
||||
extern int fk_open(int,int,ftnint);
|
||||
extern int en_fio(void);
|
||||
extern void f_init(void);
|
||||
extern int (*f__donewrec)(void), t_putc(int), x_wSL(void);
|
||||
extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*);
|
||||
extern int c_sfe(cilist*), z_rnew(void);
|
||||
extern int isatty(int);
|
||||
extern int err__fl(int,int,char*);
|
||||
extern int xrd_SL(void);
|
||||
extern int f__putbuf(int);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
extern int (*f__doend)(Void);
|
||||
extern FILE *f__cf; /*current file*/
|
||||
extern unit *f__curunit; /*current unit*/
|
||||
extern unit f__units[];
|
||||
#define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);}
|
||||
#define errfl(f,m,s) return err__fl((int)f,m,s)
|
||||
|
||||
/*Table sizes*/
|
||||
#define MXUNIT 100
|
||||
|
||||
extern int f__recpos; /*position in current record*/
|
||||
extern int f__cursor; /* offset to move to */
|
||||
extern int f__hiwater; /* so TL doesn't confuse us */
|
||||
|
||||
#define WRITE 1
|
||||
#define READ 2
|
||||
#define SEQ 3
|
||||
#define DIR 4
|
||||
#define FMT 5
|
||||
#define UNF 6
|
||||
#define EXT 7
|
||||
#define INT 8
|
||||
|
||||
#define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
|
||||
@@ -1,100 +0,0 @@
|
||||
struct syl
|
||||
{ int op;
|
||||
int p1;
|
||||
union { int i[2]; char *s;} p2;
|
||||
};
|
||||
#define RET1 1
|
||||
#define REVERT 2
|
||||
#define GOTO 3
|
||||
#define X 4
|
||||
#define SLASH 5
|
||||
#define STACK 6
|
||||
#define I 7
|
||||
#define ED 8
|
||||
#define NED 9
|
||||
#define IM 10
|
||||
#define APOS 11
|
||||
#define H 12
|
||||
#define TL 13
|
||||
#define TR 14
|
||||
#define T 15
|
||||
#define COLON 16
|
||||
#define S 17
|
||||
#define SP 18
|
||||
#define SS 19
|
||||
#define P 20
|
||||
#define BN 21
|
||||
#define BZ 22
|
||||
#define F 23
|
||||
#define E 24
|
||||
#define EE 25
|
||||
#define D 26
|
||||
#define G 27
|
||||
#define GE 28
|
||||
#define L 29
|
||||
#define A 30
|
||||
#define AW 31
|
||||
#define O 32
|
||||
#define NONL 33
|
||||
#define OM 34
|
||||
#define Z 35
|
||||
#define ZM 36
|
||||
extern int f__pc,f__parenlvl,f__revloc;
|
||||
typedef union
|
||||
{ real pf;
|
||||
doublereal pd;
|
||||
} ufloat;
|
||||
typedef union
|
||||
{ short is;
|
||||
#ifndef KR_headers
|
||||
signed
|
||||
#endif
|
||||
char ic;
|
||||
integer il;
|
||||
#ifdef Allow_TYQUAD
|
||||
longint ili;
|
||||
#endif
|
||||
} Uint;
|
||||
#ifdef KR_headers
|
||||
extern int (*f__doed)(),(*f__doned)();
|
||||
extern int (*f__dorevert)();
|
||||
extern int rd_ed(),rd_ned();
|
||||
extern int w_ed(),w_ned();
|
||||
#else
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int (*f__doed)(struct syl*, char*, ftnlen),(*f__doned)(struct syl*);
|
||||
extern int (*f__dorevert)(void);
|
||||
extern void fmt_bg(void);
|
||||
extern int pars_f(char*);
|
||||
extern int rd_ed(struct syl*, char*, ftnlen),rd_ned(struct syl*);
|
||||
extern int w_ed(struct syl*, char*, ftnlen),w_ned(struct syl*);
|
||||
extern int wrt_E(ufloat*, int, int, int, ftnlen);
|
||||
extern int wrt_F(ufloat*, int, int, ftnlen);
|
||||
extern int wrt_L(Uint*, int, ftnlen);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
extern flag f__cblank,f__cplus,f__workdone, f__nonl;
|
||||
extern char *f__fmtbuf;
|
||||
extern int f__scale;
|
||||
#define GET(x) if((x=(*f__getn)())<0) return(x)
|
||||
#define VAL(x) (x!='\n'?x:' ')
|
||||
#define PUT(x) (*f__putn)(x)
|
||||
extern int f__cursor;
|
||||
|
||||
#undef TYQUAD
|
||||
#ifndef Allow_TYQUAD
|
||||
#undef longint
|
||||
#define longint long
|
||||
#else
|
||||
#define TYQUAD 14
|
||||
#endif
|
||||
|
||||
#ifdef KR_headers
|
||||
extern char *f__icvt();
|
||||
#else
|
||||
extern char *f__icvt(longint, int*, int*, int);
|
||||
#endif
|
||||
@@ -1,28 +0,0 @@
|
||||
#define FMAX 40
|
||||
#define EXPMAXDIGS 8
|
||||
#define EXPMAX 99999999
|
||||
/* FMAX = max number of nonzero digits passed to atof() */
|
||||
/* EXPMAX = 10^EXPMAXDIGS - 1 = largest allowed exponent absolute value */
|
||||
|
||||
#ifdef V10 /* Research Tenth-Edition Unix */
|
||||
#include "local.h"
|
||||
#endif
|
||||
|
||||
/* MAXFRACDIGS and MAXINTDIGS are for wrt_F -- bounds (not necessarily
|
||||
tight) on the maximum number of digits to the right and left of
|
||||
* the decimal point.
|
||||
*/
|
||||
|
||||
#ifdef VAX
|
||||
#define MAXFRACDIGS 56
|
||||
#define MAXINTDIGS 38
|
||||
#else
|
||||
#ifdef CRAY
|
||||
#define MAXFRACDIGS 9880
|
||||
#define MAXINTDIGS 9864
|
||||
#else
|
||||
/* values that suffice for IEEE double */
|
||||
#define MAXFRACDIGS 344
|
||||
#define MAXINTDIGS 308
|
||||
#endif
|
||||
#endif
|
||||
@@ -1,74 +0,0 @@
|
||||
/* copy of ftypes from the compiler */
|
||||
/* variable types
|
||||
* numeric assumptions:
|
||||
* int < reals < complexes
|
||||
* TYDREAL-TYREAL = TYDCOMPLEX-TYCOMPLEX
|
||||
*/
|
||||
|
||||
/* 0-10 retain their old (pre LOGICAL*1, etc.) */
|
||||
/* values to allow mixing old and new objects. */
|
||||
|
||||
#define TYUNKNOWN 0
|
||||
#define TYADDR 1
|
||||
#define TYSHORT 2
|
||||
#define TYLONG 3
|
||||
#define TYREAL 4
|
||||
#define TYDREAL 5
|
||||
#define TYCOMPLEX 6
|
||||
#define TYDCOMPLEX 7
|
||||
#define TYLOGICAL 8
|
||||
#define TYCHAR 9
|
||||
#define TYSUBR 10
|
||||
#define TYINT1 11
|
||||
#define TYLOGICAL1 12
|
||||
#define TYLOGICAL2 13
|
||||
#ifdef Allow_TYQUAD
|
||||
#undef TYQUAD
|
||||
#define TYQUAD 14
|
||||
#endif
|
||||
|
||||
#define LINTW 24
|
||||
#define LINE 80
|
||||
#define LLOGW 2
|
||||
#ifdef Old_list_output
|
||||
#define LLOW 1.0
|
||||
#define LHIGH 1.e9
|
||||
#define LEFMT " %# .8E"
|
||||
#define LFFMT " %# .9g"
|
||||
#else
|
||||
#define LGFMT "%.9G"
|
||||
#endif
|
||||
/* LEFBL 20 should suffice; 24 overcomes a NeXT bug. */
|
||||
#define LEFBL 24
|
||||
|
||||
typedef union
|
||||
{
|
||||
char flchar;
|
||||
short flshort;
|
||||
ftnint flint;
|
||||
#ifdef Allow_TYQUAD
|
||||
longint fllongint;
|
||||
#endif
|
||||
real flreal;
|
||||
doublereal fldouble;
|
||||
} flex;
|
||||
extern int f__scale;
|
||||
#ifdef KR_headers
|
||||
extern int (*f__lioproc)(), (*l_getc)(), (*l_ungetc)();
|
||||
extern int l_read(), l_write();
|
||||
#else
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
extern int (*f__lioproc)(ftnint*, char*, ftnlen, ftnint);
|
||||
extern int l_write(ftnint*, char*, ftnlen, ftnint);
|
||||
extern void x_wsne(cilist*);
|
||||
extern int c_le(cilist*), (*l_getc)(void), (*l_ungetc)(int,FILE*);
|
||||
extern int l_read(ftnint*,char*,ftnlen,ftnint);
|
||||
extern integer e_rsle(void), e_wsle(void), s_wsne(cilist*);
|
||||
extern int z_rnew(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
extern ftnint L_len;
|
||||
@@ -1,41 +0,0 @@
|
||||
#ifndef KR_headers
|
||||
#ifdef MSDOS
|
||||
#include "io.h"
|
||||
#ifndef WATCOM
|
||||
#define close _close
|
||||
#define creat _creat
|
||||
#define open _open
|
||||
#define read _read
|
||||
#define write _write
|
||||
#endif /*WATCOM*/
|
||||
#endif /*MSDOS*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#ifndef MSDOS
|
||||
#ifdef OPEN_DECL
|
||||
extern int creat(const char*,int), open(const char*,int);
|
||||
#endif
|
||||
extern int close(int);
|
||||
extern int read(int,void*,size_t), write(int,void*,size_t);
|
||||
extern int unlink(const char*);
|
||||
#ifndef _POSIX_SOURCE
|
||||
#ifndef NON_UNIX_STDIO
|
||||
extern FILE *fdopen(int, const char*);
|
||||
#endif
|
||||
#endif
|
||||
#endif /*KR_HEADERS*/
|
||||
|
||||
extern char *mktemp(char*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include "fcntl.h"
|
||||
|
||||
#ifndef O_WRONLY
|
||||
#define O_RDONLY 0
|
||||
#define O_WRONLY 1
|
||||
#endif
|
||||
@@ -1,118 +0,0 @@
|
||||
/*
|
||||
|
||||
-Header_File signal1.h (CSPICE version of the f2c signal1.h header file)
|
||||
|
||||
-Abstract
|
||||
|
||||
Define macros associated with signal handling, customized for the
|
||||
host environment.
|
||||
|
||||
-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 header defines the macro signal1 referenced in main.c,
|
||||
which is a generic main routine used in CSPICE executables that
|
||||
link to code generated by f2c.
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
N.J. Bachman (JPL)
|
||||
|
||||
-Restrictions
|
||||
|
||||
1) This header file must be updated whenever the f2c processor
|
||||
or the f2c libraries libI77 and libF77 are updated.
|
||||
|
||||
2) This header may need to be updated to support new platforms.
|
||||
The supported platforms at the time of the 03-FEB-2000 release
|
||||
are:
|
||||
|
||||
ALPHA-DIGITAL-UNIX_C
|
||||
HP_C
|
||||
NEXT_C
|
||||
PC-LINUX_C
|
||||
PC-MS_C
|
||||
SGI-IRIX-N32_C
|
||||
SGI-IRIX-NO2_C
|
||||
SUN-SOLARIS-GCC_C
|
||||
SUN-SOLARIS-NATIVE_C
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE Version 1.0.0, 03-FEB-2000 (NJB)
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/* You may need to adjust the definition of signal1 to supply a */
|
||||
/* cast to the correct argument type. This detail is system- and */
|
||||
/* compiler-dependent. The #define below assumes signal.h declares */
|
||||
/* type SIG_PF for the signal function's second argument. */
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
#ifndef Sigret_t
|
||||
#define Sigret_t void
|
||||
#endif
|
||||
#ifndef Sigarg_t
|
||||
#ifdef KR_headers
|
||||
#define Sigarg_t
|
||||
#else
|
||||
#ifdef __cplusplus
|
||||
#define Sigarg_t ...
|
||||
#else
|
||||
#define Sigarg_t int
|
||||
#endif
|
||||
#endif
|
||||
#endif /*Sigarg_t*/
|
||||
|
||||
#ifdef USE_SIG_PF /* compile with -DUSE_SIG_PF under IRIX */
|
||||
#define sig_pf SIG_PF
|
||||
#else
|
||||
typedef Sigret_t (*sig_pf)(Sigarg_t);
|
||||
#endif
|
||||
|
||||
#define signal1(a,b) signal(a,(sig_pf)b)
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define Sigarg ...
|
||||
#define Use_Sigarg
|
||||
#else
|
||||
#define Sigarg Int n
|
||||
#define Use_Sigarg n = n /* shut up compiler warning */
|
||||
#endif
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
/*
|
||||
|
||||
-Abstract
|
||||
|
||||
The memory allocation prototypes and macros for use in CSPICE.
|
||||
|
||||
-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.
|
||||
|
||||
-Particulars
|
||||
|
||||
The routines maintain a count of the number of mallocs vs. free,
|
||||
signalling an error if any unreleased memory exists at the end
|
||||
of an Icy interface call.
|
||||
|
||||
The macro ALLOC_CHECK performs malloc/free test. If used, the macro
|
||||
should exists at the end of any routine using these memory management
|
||||
routines.
|
||||
|
||||
Prototypes in this file:
|
||||
|
||||
alloc_count
|
||||
zzalloc_count
|
||||
alloc_SpiceMemory
|
||||
alloc_SpiceString_C_array
|
||||
alloc_SpiceString_C_Copy_array
|
||||
alloc_SpiceDouble_C_array
|
||||
alloc_SpiceInt_C_array
|
||||
alloc_SpiceString
|
||||
alloc_SpiceString_Pointer_array
|
||||
free_SpiceString_C_array
|
||||
free_SpiceMemory
|
||||
|
||||
-Version
|
||||
|
||||
CSPICE 1.0.3 02-MAY-2008 (EDW)
|
||||
|
||||
Added alloc_count prototype.
|
||||
|
||||
CSPICE 1.0.2 10-MAY-2007 (EDW)
|
||||
|
||||
Minor edits to clarify 'size' in alloc_SpiceMemory as
|
||||
size_t.
|
||||
|
||||
CSPICE 1.0.1 23-JUN-2005 (EDW)
|
||||
|
||||
Add prototype for alloc_SpiceString_Pointer_array, allocate
|
||||
an array of pointers to SpiceChar.
|
||||
|
||||
Icy 1.0.0 December 19, 2003 (EDW)
|
||||
|
||||
Initial release.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ZZALLOC_H
|
||||
#define ZZALLOC_H
|
||||
|
||||
/*
|
||||
Allocation call prototypes:
|
||||
*/
|
||||
int alloc_count ();
|
||||
|
||||
SpiceChar ** alloc_SpiceString_C_array ( int string_length,
|
||||
int string_count );
|
||||
|
||||
SpiceChar ** alloc_SpiceString_C_Copy_array ( int array_len ,
|
||||
int string_len,
|
||||
SpiceChar ** array );
|
||||
|
||||
SpiceDouble * alloc_SpiceDouble_C_array ( int rows,
|
||||
int cols );
|
||||
|
||||
SpiceInt * alloc_SpiceInt_C_array ( int rows,
|
||||
int cols );
|
||||
|
||||
SpiceChar * alloc_SpiceString ( int length );
|
||||
|
||||
SpiceChar ** alloc_SpiceString_Pointer_array( int array_len );
|
||||
|
||||
void free_SpiceString_C_array ( int dim,
|
||||
SpiceChar ** array );
|
||||
|
||||
void * alloc_SpiceMemory ( size_t size );
|
||||
|
||||
void free_SpiceMemory ( void * ptr );
|
||||
|
||||
|
||||
/*
|
||||
Simple macro to ensure a zero value alloc count at end of routine.
|
||||
Note, the need to use this macro exists only in those routines
|
||||
allocating/deallocating memory.
|
||||
*/
|
||||
#define ALLOC_CHECK if ( alloc_count() != 0 ) \
|
||||
{ \
|
||||
setmsg_c ( "Malloc/Free count not zero at end of routine." \
|
||||
" Malloc count = #."); \
|
||||
errint_c ( "#", alloc_count() ); \
|
||||
sigerr_c ( "SPICE(MALLOCCOUNT)" ); \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
/*
|
||||
|
||||
-Abstract
|
||||
|
||||
The error control routine prototypes for use in CSPICE.
|
||||
|
||||
-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.
|
||||
|
||||
-Particulars
|
||||
|
||||
Routines prototyped in this file:
|
||||
|
||||
zzerrorinit
|
||||
zzerror
|
||||
|
||||
-Examples
|
||||
|
||||
See the examples section in zzerror() and zzerrorinit().
|
||||
|
||||
-Restrictions
|
||||
|
||||
None.
|
||||
|
||||
-Exceptions
|
||||
|
||||
None.
|
||||
|
||||
-Files
|
||||
|
||||
None.
|
||||
|
||||
-Author_and_Institution
|
||||
|
||||
E. D. Wright (JPL)
|
||||
|
||||
-Literature_References
|
||||
|
||||
None.
|
||||
|
||||
-Version
|
||||
|
||||
-CSPICE 1.1.0 14-JAN-2013 (EDW)
|
||||
|
||||
Added parameter:
|
||||
|
||||
SCALAR_OP
|
||||
|
||||
-CSPICE 1.0.0 17-OCT-2005 (EDW)
|
||||
|
||||
Initial release.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef ZZERROR_H
|
||||
#define ZZERROR_H
|
||||
|
||||
const char * zzerror( long cnt );
|
||||
void zzerrorinit();
|
||||
|
||||
#define SCALAR_OP -1
|
||||
|
||||
#endif
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -124,10 +124,11 @@ function (add_external_dependencies)
|
||||
endif ()
|
||||
|
||||
# Spice
|
||||
set(SPICE_ROOT_DIR "${OPENSPACE_EXT_DIR}/spice")
|
||||
find_package(Spice REQUIRED)
|
||||
target_include_directories(libOpenSpace SYSTEM PUBLIC ${SPICE_INCLUDE_DIRS})
|
||||
target_link_libraries(libOpenSpace ${SPICE_LIBRARIES})
|
||||
add_subdirectory(${OPENSPACE_EXT_DIR}/spice)
|
||||
target_link_libraries(libOpenSpace Spice)
|
||||
get_property(SPICE_INCLUDE_DIR TARGET Spice PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
||||
target_include_directories(libOpenSpace PUBLIC ${SPICE_INCLUDE_DIR})
|
||||
set_property(TARGET Spice PROPERTY FOLDER "External")
|
||||
|
||||
# Curl
|
||||
if (WIN32)
|
||||
|
||||
Reference in New Issue
Block a user