![]() |
das2C
das core C utilities (v3)
|
A body-centered position. More...

Go to the source code of this file.
Macros | |
| #define | DAS_FORM_POS (&das_form_pos_vtbl) |
| A position measured from the center of some body. | |
A body-centered position.
An affine point in 3-D.
Spacecraft ephemeris, a ground station, a sub-satellite track. What makes it a position rather than a vector is an ORIGIN – the center body – and that single fact changes the algebra completely:
position - position = vector a displacement from one to the other
position + vector = position
vector + position = position stated explicitly, never inferred
position - vector = position
position + position = REFUSED adding two positions means nothing
position * anything = REFUSED scaling a position without moving its
origin is meaningless
That is the SAME rule set as form_pt.h, which governs calendar time. A datetime is a 1-D affine space whose origin rides in units (TT2000, US2000); a position is the 3-D case whose origin is named by body=.
Parameters:
body= the origin body's name, where zero is. This is a defining feature of a position, without it values are free vectors and belong in form_vec.h. frame= the frame's name, which way the axes point. Required in practice: a position has to be expressed in SOME frame. The frame need not be attached to body=: Cassini relative to Titan in IAU_SATURN is body=TITAN frame=IAU_SATURN. surface= the ellipsoid the detic and graphic systems measure against. fixed= true when the frame is fixed to body= and rotates with it, in the SPICE sense of a body-fixed frame. So IAU_SATURN is fixed for body=SATURN and not for body=TITAN. In a frame that is not fixed, the reference surface rotates beneath the point, and h is the height above whatever surface point lies below it at that instant. system= all six, including detic and graphic. sysorder= which canonical direction each stored component holds.
Detic and graphic do not share a component order. Detic is (lon, lat, height) and graphic is (lat, lon, height). Graphic longitude runs west, and since every component order in das2C is right handed, latitude has to come first to keep it that way.
Graphic means west-positive here. Where a body's planetographic longitude runs east the system is the same as detic and should be spelled that way; there is no east-positive spelling of graphic.
THE ORIGIN AND THE FRAME ARE INDEPENDENT. Cassini relative to Saturn expressed in IAU_JUPITER is body=SATURN frame=IAU_JUPITER fixed=false: zero is at Saturn, the axes point the way Jupiter's do. das3_spice keeps the two apart in the same way – nOutCenter goes to spkezp_c separately from aOutFrame. The body a frame is attached to (SPICE's frame center) is part of the frame's definition and is not carried here.
All of these are plain strings resolved by applications, das2C has no frame or body registry, but SPICE does if you need to check.
| #define DAS_FORM_POS (&das_form_pos_vtbl) |
A position measured from the center of some body.
Two of these subtract to give a vector, but they do not add.