Ref T260, utility functions to set provider, plane ctor

This commit is contained in:
Klaus Basan
2018-04-09 22:53:16 +02:00
committed by Roland Winklmeier
parent 6e908db52e
commit 056c257182
7 changed files with 32 additions and 10 deletions

View File

@@ -34,6 +34,10 @@ namespace BlackMisc
m_radius = this->calculateGreatCircleDistance(rangeCoordinate);
}
CElevationPlane::CElevationPlane(const ICoordinateGeodetic &coordinate, const CLength &radius) :
CCoordinateGeodetic(coordinate), m_radius(radius)
{ }
const CAltitude &CElevationPlane::getAltitudeIfWithinRadius(const ICoordinateGeodetic &coordinate) const
{
return (isWithinRange(coordinate)) ? geodeticHeight() : CAltitude::null();

View File

@@ -36,6 +36,9 @@ namespace BlackMisc
//! Plane at given coordinates with range to 2nd coordinate
CElevationPlane(const ICoordinateGeodetic &coordinate, const ICoordinateGeodetic &rangeCoordinate);
//! Plane at given coordinates with radius
CElevationPlane(const ICoordinateGeodetic &coordinate, const PhysicalQuantities::CLength &radius);
//! Constructors from CCoordinateGeodetic
using CCoordinateGeodetic::CCoordinateGeodetic;

View File

@@ -44,6 +44,7 @@ namespace BlackMisc
//! \remark use individual names to disambiguate
void setProvider(PROVIDER *provider)
{
if (m_provider == provider) { return; }
if (m_provider) { m_lastProviderConnections.disconnectAll(); }
m_provider = provider; // new provider
IProvider *iProvider = dynamic_cast<IProvider *>(provider);