tsc_ArcDefinition

A tsc_ArcDefinition is a class that defines an arc for SurveyCore.  It contains the parameters required to store in the database as an observation and can be retrieved from existing database entities.

The definition contains enough information to query the arc for locations and properties. 

The definition represents all types of supported arcs and static construction methods are available to create arcs correctly.

Static Construction

These are methods create the known arc types of SurveyCore.  Please note that it is possible to define arcs that cannot exist (e.g. the radius is too small to span the supplied points) in which case the arc parameters will be empty, unknown or double_Null.

static tsc_ArcDefinition CreateTwoPointAndRadiusArc (
    const tsc_CogoEnvironment& environment,

    const tsc_String&          startPointName,

    const tsc_String&          endPointName,

    tsc_ArcDirection           direction,

    const double&              radius,

    const double&              startStation = 0.0,

    const double&              stationIncrement = double_Null);


static tsc_ArcDefinition CreateCurveLengthAndRadiusArc(

    const tsc_CogoEnvironment& environment,

    const tsc_String&          startPointName,

    const double&              startAzimuth,

    tsc_ArcDirection           direction,

    const double&              radius,

    const double&              length,

    const double&              grade,

    const double&              startStation = 0.0,

    const double&              stationIncrement = double_Null);

static tsc_ArcDefinition CreateDeltaAngleAndRadiusArc(
    const tsc_CogoEnvironment& environment,

    const tsc_String&          startPointName,

    const double&              startAzimuth,

    tsc_ArcDirection           direction,

    const double&              radius,

    const double&              scribedAngle,

    const double&              grade,

    const double&              startStation = 0.0,

    const double&              stationIncrement = double_Null);

static tsc_ArcDefinition CreateTangentIntersectionArc(
    const tsc_CogoEnvironment& environment,

    const tsc_String&          intersectionPointName,

    const double&              startAzimuth,

    const double&              endAzimuth,

    tsc_ArcDirection           direction,

    const double&              radius,

    const double&              startStation = 0.0,

    const double&              stationIncrement = double_Null);

static tsc_ArcDefinition CreateTwoPointAndCenterArc(
    const tsc_CogoEnvironment& environment,

    const tsc_String&          startPointName,

    const tsc_String&          endPointName,

    const tsc_String&          centerPointName,

    tsc_ArcDirection           direction,

    const double&              startStation = 0.0,

    const double&              stationIncrement = double_Null);

static tsc_ArcDefinition CreateThreePointArc(
    const tsc_CogoEnvironment& environment,

    const tsc_String&          startPointName,

    const tsc_String&          endPointName,

    const tsc_String&          concyclicPointName,

    const double&              startStation = 0.0,

    const double&              stationIncrement = double_Null);
Defines an arc by the 3 points it crosses.


Members

tsc_LineMethod GetMethod();
Returns the creation method of the arc.

tsc_Grid CalculateStart();
Calculate a grid coordinate for the start of the arc.

tsc_Grid CalculateEnd();
Calculate a grid coordinate for the end of the arc.

tsc_Grid CalculateCenter();
Calculate a grid coordinate for the center of the arc.

tsc_Grid CalculateTangentIntersectionPoint ();
Calculate a grid coordinate for the intersection of the arc end-point tangents (some arcs may not have an intersection point when tangents are near parallel).

Point names in general may be empty depending on the creation method.  Check the static constructor to see if the names point will be required and that they are valid with these named point methods.

tsc_String GetStartPointName();
Retrieve the start point name.

tsc_String GetEndPointName();
Retrieve the end point name.

tsc_String GetCenterPointName();
Retrieve the center point name.

tsc_String GetTangentIntersectionPointName ();
Retrieve the name of the point defining the intersection of the arc end-point tangents.

tsc_String GetConcyclicPointName();
Retrieve the concyclic point name.  The concylic point is the 3rd point that lies on the circle of the arc.

Similarly, these tsc_Points may not exist if the creation method did not supply them.

tsc_Point GetStartPoint();
Retrieve the start point.

tsc_Point GetEndPoint();
Retrieve the end point.

tsc_Point GetCenterPoint();
Retrieve the center point.

tsc_Point GetTangentIntersectionPoint();
Retrieve the point defining the intersection of the arc end-point tangents.

tsc_Point GetConcyclicPoint();
Retrieve the concyclic point.  The concylic point is the 3rd point that lies on the circle of the arc.

double GetStartAzimuth();
Calculate the azimuth of the start of the arc in radians.

double GetEndAzimuth();
Calculate the azimuth of the end of the arc in radians.

double GetScribedAngle();
Calculate the scribed angle of the arc in radians.

bool  GetIsClockwise();
Return whether the arc is drawn clockwise.

tsc_ArcDirection GetDirection();
Return the arc direction (tsad_Clockwise or tsad_AntiClockwise).

double GetRadius();
Return the arc radius in meters.

double GetLength();
Calculate the length of the arc in meters.

double GetGrade();
Calculate the grade of the arc in radians.

tsc_CogoEnvironment GetEnvironment();
Obtain the cogo settings used to calculate the arc, alternatively if the arc was loaded from a database then this represents the database Cogo environment at the time of retrieval.

double GetStartStation();
Retrieve the stationing value of the start point.

double GetStationIncrement();
Retrieve the stationing increment along the arc.