Ref T275, elevation plane improvements

* setRadiusOrMinimum
* ASSERT if there is no radius
This commit is contained in:
Klaus Basan
2018-06-08 21:36:22 +02:00
parent 4393bdeb77
commit 88b2da94a3
4 changed files with 13 additions and 2 deletions

View File

@@ -31,13 +31,18 @@ namespace BlackMisc
CElevationPlane::CElevationPlane(const ICoordinateGeodetic &coordinate, const ICoordinateGeodetic &rangeCoordinate) :
CCoordinateGeodetic(coordinate)
{
m_radius = this->calculateGreatCircleDistance(rangeCoordinate);
this->setRadiusOrMinimum(this->calculateGreatCircleDistance(rangeCoordinate));
}
CElevationPlane::CElevationPlane(const ICoordinateGeodetic &coordinate, const CLength &radius) :
CCoordinateGeodetic(coordinate), m_radius(radius)
{ }
void CElevationPlane::setRadiusOrMinimum(const CLength &radius)
{
m_radius = ((radius.isNull() || radius < CElevationPlane::singlePointRadius())) ? CElevationPlane::singlePointRadius() : radius;
}
void CElevationPlane::addAltitudeOffset(const CLength &offset)
{
if (offset.isNull() || offset.isZeroEpsilonConsidered()) { return; }