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;
bool HasVertical();
bool HasHorizontal();
bool IsEmpty();
These 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.
void SetEmpty ();
Resets the coordinate.
static tsc_EcefDeltas CalcDeltas(tsc_Ecef& position, tsc_Ecef& origin);
Calculates a tsc_EcefDeltas object from the difference between two tsc_Ecef objects.
static tsc_EcefDeltas FromWgs84 (
const struct tsc_Wgs84& position,
const class tsc_GnssEnvironment& environment);
Converts from tsc_ECEFDeltas coordinate to a WGS84 position, given a GNSS environement. Note that adjustments for the current antenna will be applied during this process.
static tsc_EcefDeltas FromEcef (
const struct tsc_Ecef& observation,
const class tsc_GnssEnvironment& environment);
Converts ECEF to ECEFDeltas using the supplied environment (in particular, the GNSS base coordinte).
static tsc_EcefDeltas EquivalentVerticalEcefDeltas (
const tsc_EcefDeltas& observation,
const tsc_GnssTilt& tilt,
const 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.