tsc_StationCalculationBase

This class provides base methods for calculating a station's position and/or orientation.  It may be subclassed so that custom calculations can be implemented, or one of the built-in Survey Core subclasses may be used.  For a basic description of SC stations, see How Stations Work.

Unless there are special circumstances, we suggest using standard Survey Core implementations which are available in the following subclasses:

The output of a station calculation as performed by one of these subclasses is placed into a tsc_StationResults object.

Public members

tsc_StationSetup StationSetup();
Obtains the station setup object that this station calculation will apply to.

tsc_BacksightList  BacksightDetails();
Creates a list of all backsights that have been measured within this station setup.  If residuals have been stored in the database for the station setup then this information will also be available; otherwise the residuals will contain null values.  This method is provided here as a convenience; it is the same as the list returned by the BacksightDetails() method of the tsc_Station class.

virtual tsc_StationResults  CalculateStation () = 0;
Subclasses override this method to compute station results for the given the station and all backsight observations. 

For free (and most known) station calculations, the subclass must override and implement this method, and should also provide an overload which accepts a tsc_BacksightList, to allow the calculation to be controlled.  Residuals and MTAs will also be generated by the calculation and these must be returned in the tsc_StationResults object, which may also be used to write the residuals and MTAs to the database.

void ComputeBackbearing ( class tsc_StationResults&  calcResults,
                          const class tsc_Backsight& backsightToUseForBackbearing,
                          tsc_String&                bbName,
                          double&                    f1HorizAngle,
                          double&                    f2HorizAngle,
                          double&                    horizAngleStdErr);

Computes the fields for a backbearing record from the results of a station calculation.
Uses the orientation correction values and station position.

virtual tsc_StationResults  CalculateStationWithFreeScale () = 0;
virtual tsc_StationResults  CalculateStationWithFreeScale (const tsc_BacksightList& useBacksights) = 0;
These CalculateStation functions calculate the station and will also calculate the scale factor to use.
You can pass in a list of backsights to be considered or allow the station to use the observations it has seen so far.

virtual tsc_StationResults  CalculateStationWithFixedScale (double scaleFactor = 1.0) = 0;
virtual tsc_StationResults  CalculateStationWithFixedScale (
const tsc_BacksightList& useBacksights,
const double& fixedScaleFactor = 1.0) = 0;
These overloads of CalculateStation perform the same actions as the above, but holds the scale factor fixed to the value supplied.  Giving a value of double_Null must have the same effect as supplying no scale factor, which indicates it must be calculated by the subclass.
You can pass in a list of backsights to be considered, or allow the station to use the observations it has seen so far.

virtual void UpdateStation (const tsc_StationResults& results) = 0;
This method is implemented by the subclass to update the station records in the database according to the results of the calculation.

Protected constructor

tsc_StationCalculationBase (class tsc_StationSetup& station);
Constructs an instance that can be used to perform calculations on the given station.  Because this method is protected, only a subclass may be constructed.