8 #ifndef INTERPOLATOR3D_H_
9 #define INTERPOLATOR3D_H_
13 #include "Math/Interpolator.h"
14 #include "utl/UTMPoint.h"
15 #include "utl/Vector.h"
16 #include "utl/CoordinateSystemPtr.h"
17 #include "utl/TimeStamp.h"
19 #include "Math/Interpolator.h"
24 namespace RdAirplane {
31 const std::vector<const utl::TimeStamp*>& pTimes,
32 const std::vector<const utl::UTMPoint*>& pCoordinates,
49 static std::vector<double>
_timesFromTimeStamps(
const std::vector<const utl::TimeStamp*>& pTimes);
50 static boost::tuple<double,double>
_verySimpleLinearFit(
const std::vector<double>& pX,
const std::vector<double>& pY);
53 const std::vector<const utl::UTMPoint*>& pCoordinates,
54 std::vector<double>* p_OUT_xs,
55 std::vector<double>* p_OUT_ys,
56 std::vector<double>* p_OUT_zs);
58 const std::vector<const utl::UTMPoint*>& pCoordinates,
59 std::vector<double>* p_OUT_latitudes,
60 std::vector<double>* p_OUT_longitudes,
61 std::vector<double>* p_OUT_altitudes);
static utl::CoordinateSystemPtr _coordinateSystem()
static double _timeFromTimeStamp(const utl::TimeStamp &pTime)
utl::Vector getDerivative(const utl::TimeStamp &pTime) const
A TimeStamp holds GPS second and nanosecond for some event.
utl::TimeStamp _earliestTime_
static boost::tuple< double, double > _verySimpleLinearFit(const std::vector< double > &pX, const std::vector< double > &pY)
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
virtual ~Interpolator3D()
utl::Point getCoordinates(const utl::TimeStamp &pTime) const
bool isTimeInInterpolatedRange(const utl::TimeStamp &pTime) const
static void _getCoordinates(const std::vector< const utl::UTMPoint * > &pCoordinates, std::vector< double > *p_OUT_xs, std::vector< double > *p_OUT_ys, std::vector< double > *p_OUT_zs)
utl::TimeStamp _latesTime_
DISALLOW_COPY_AND_ASSIGN(Interpolator3D)
static void _getGeodeticCoordinates(const std::vector< const utl::UTMPoint * > &pCoordinates, std::vector< double > *p_OUT_latitudes, std::vector< double > *p_OUT_longitudes, std::vector< double > *p_OUT_altitudes)
std::string getInformation() const
ROOT::Math::Interpolator * _interpolatorZ_
ROOT::Math::Interpolator * _interpolatorX_
static std::vector< double > _timesFromTimeStamps(const std::vector< const utl::TimeStamp * > &pTimes)
Interpolator3D(const std::vector< const utl::TimeStamp * > &pTimes, const std::vector< const utl::UTMPoint * > &pCoordinates, Flight *pFlight)
ROOT::Math::Interpolator * _interpolatorY_