tsc_RawCircle

class tsc_RawCircle : public tsc_Coordinate

This class represents a raw measurement from a Total station, before any corrections have been made (other than any that may have been applied within the instrument itself, such as collimation).  Together with the environment, it contains all the data needed to represent a total station measurement.  (also see tsc_TsEnvironment).  As usual, all distances are in metres, all angles in radians.

All fields are optional.  HorzCircle, VertCircle, and EDMDistance comprise the raw observation; all the other fields hold supplemental information about the measurement; these will be missing if the instrument did not supply them or if the coordinate was converted from some other form such as a grid.  If the measurement was angles-only, the EDMDistance will be empty (ie, HasDistance returns false).

While it is possible to construct a tsc_RawCircle object in a plugin, it is more common to obtain one either by performing a Total Station measurement, or from a job database tsc_Point object that was originally measured by a total station.

const double      HorzCircle;   // Horizontal angle

const double      VertCircle;   // Vertical angle

const double      EDMDistance;  // Distance measured by the EDM

const tsc_Face    Face;         // Which instrument face was used (VA also implies the face)

const bool        Face2Uncorrected;   // Face 2 VA requires extra correction for non-coaxial instrument.

const double      HorzCircleStdErr;   // The instrument's specified HA precision in radians.

const double      VertCircleStdErr;   // The instrument's specified VA precision in radians.

const double      EdmDistanceStdErr;  // The instrument's specified EDM precision in metres.

const tsc_EdmMode EdmMeasurementMode; // The instrument measurement mode used.

virtual tsc_CoordType  Type() const { return tsct_RawCircle; }

Returns the coordinate type.

The following methods can be used to test which parts of the coordinate are present.

bool IsEmpty      () const;

bool HasVertical  () const;

bool HasHorizontal() const;

bool HasDistance  () const;

Resets the coordinate.

void SetEmpty ();

The constructor initializes all fields:

tsc_RawCircle (const double& horizontalAngle,

               const double& verticalAngle,

               const double& edmDistance,

               const double& horizontalAngleStandardError,

               const double& verticalAngleStandardError,

               const double& edmStandardError,

               tsc_Face      face,

               bool          face2Uncorrected,

               tsc_EdmMode   edmMode);

Returns a new measurement adjusted to a new or desired face.

tsc_RawCircle ChangeFace() const;

tsc_RawCircle ToFace    (tsc_Face desiredFace) const;

This function returns a tsc_RawCircle given a tsc_Grid coordinate - note that a properly configured observation (known station and target in the current database) is needed to allow complete conversion.  Some assumptions will be made and information such as the face and the EDM mode are not able to be determined.  The result returned is one which, if converted back to a grid coordinate using the same environment, would return the original values to a reasonable precision.

static tsc_RawCircle FromGrid (const tsc_Grid& grid, class tsc_TsEnvironment& environment);

A tsc_RawCircle can be calculated from a source tsc_RawCircle and a set of offsets.  Please see tsc_DistanceOffsetObservation and tsc_AngleOffsetObservation for important details as to how these offsets are applied.

static tsc_RawCircle ApplyDistanceOffsets(const tsc_RawCircle&           circle,

                                          const double&                  leftRightOffset,

                                          const double&                  inOutOffset,

                                          const double&                  downUpOffset,

                                          class tsc_TsEnvironment&       environment,

                                          enum tsc_OffsetPerspectiveMode offsetPerspectiveMode = tsof_OffsetFromInstrument);

static tsc_RawCircle ApplyAngleOffsets(const tsc_RawCircle&     firstCircle,

                                       const tsc_RawCircle&     secondCircle,

                                       class tsc_TsEnvironment& environment,

                                       enum tsc_AngleOffsetType type = taot_AngleOffset);