tsc_Polar

This is a simple value type that contains a polar coordinate.  There are three fields, all values are in SI units (radians & metres):

Members

double Azimuth;
double DeltaHorizontal;
double DeltaVertical;

A set of functions may be used to determine which values, if any, are present.  Missing values are set to double_Null.

bool IsEmpty();

bool HasVertical();

bool HasHorizontal();

double Length() const;

double VerticalAngle() const;

Operators

Vector operations with another tsc_Polar coordinate:

+=   -=   +   -

Operations with a double scalar:

*=   /=   *   /

Static methods

static tsc_Polar FromSdAndVa(const double& azimuth, const double& slopeDistance, const double& verticalAngle);

static tsc_Polar CalcPolar(tsc_Grid& position, tsc_Grid& origin);

static tsc_Polar CalcPolar(tsc_GridDeltas& deltas);

static tsc_Grid FollowPolar(tsc_Polar& polar, tsc_Grid& origin);