refs #863 Interpolator inheritance based on CRTP rather than virtual methods.

This commit is contained in:
Mathew Sutcliffe
2017-01-18 01:22:12 +00:00
parent 1c2533f5d2
commit 9c918b8799
8 changed files with 87 additions and 58 deletions

View File

@@ -26,22 +26,24 @@ namespace BlackMisc
namespace Simulation
{
//! Linear interpolator, calculation inbetween positions
class BLACKMISC_EXPORT CInterpolatorLinear : public IInterpolator
class BLACKMISC_EXPORT CInterpolatorLinear : public CInterpolator<CInterpolatorLinear>
{
Q_OBJECT
public:
//! Constructor
CInterpolatorLinear(QObject *parent = nullptr) :
IInterpolator("CInterpolatorLinear", parent)
CInterpolator("CInterpolatorLinear", parent)
{}
// public base class signature
using IInterpolator::getInterpolatedSituation;
using CInterpolator::getInterpolatedSituation;
//! \copydoc IInterpolator::getInterpolatedSituation
virtual BlackMisc::Aviation::CAircraftSituation getInterpolatedSituation(
BlackMisc::Aviation::CAircraftSituation getInterpolatedSituation(
const BlackMisc::Aviation::CCallsign &callsign,
const BlackMisc::Aviation::CAircraftSituationList &situations, qint64 currentTimeSinceEpoc, const CInterpolationAndRenderingSetup &setup,
const BlackMisc::Simulation::CInterpolationHints &hints, CInterpolationStatus &status) const override;
const BlackMisc::Simulation::CInterpolationHints &hints, CInterpolationStatus &status) const;
//! Log category
static QString getLogCategory() { return "swift.interpolatorlinear"; }