tsc_EcefDeltas

This is a simple value type that contains an ECEF delta coordinate.  An ECEF delta coordinate contains the arithmetic difference between two ECEF coordinates.  In most case these deltas will represent an offset from the antenna phase center of the base GNSS receiver to the antenna phase center of the rover GNSS receiver.

There are three fields, all values are in SI units (metres):

double DeltaX;

double DeltaY;

double DeltaZ;

A set of functions may be used to determine which values, if any, are present.  Missing values are set to double_Null.  Note that horizontal and vertical refer to the cartesian components and are not necessarily related to the true vertical at the ECEF location/origin.

bool HasVertical();

bool HasHorizontal();

bool IsEmpty();

Resets the coordinate.

void SetEmpty ();

There is a function available for calculating a tsc_EcefDeltas object from two tsc_Ecef objects.

static tsc_EcefDeltas CalcDeltas(tsc_Ecef& position, tsc_Ecef& origin);

There are also functions to convert to and from tsc_ECEFDelta objects given a GNSS environemnt

static tsc_EcefDeltas FromWgs84(const struct tsc_Wgs84&           position,

                                const class  tsc_GnssEnvironment& environment);

static tsc_EcefDeltas FromEcef (const struct tsc_Ecef&            observation,

                                const class  tsc_GnssEnvironment& environment);

Computes an equivalent vertical tsc_EcefDeltas from a tilted ECEF Deltas observation.  The returned coordinate will be an APC coordinate as if the measurement had been vertical rather than tilted.

static tsc_EcefDeltas EquivalentVerticalEcefDeltas (const tsc_EcefDeltas&      observation,

                                                    const tsc_GnssTilt&        tilt,

                                                    const tsc_GnssEnvironment& environment);