#ifndef POINTINGINTERPOLATIONTVI_H_
#define POINTINGINTERPOLATIONTVI_H_
#include <casacore/casa/aips.h>
#include <casa/Containers/Record.h>
#include <msvis/MSVis/VisibilityIterator2.h>
#include <msvis/MSVis/ViImplementation2.h>
#include <msvis/MSVis/TransformingVi2.h>
#include <measures/Measures/MDirection.h>
class PointingInterpolationTVI: public TransformingVi2 {
PointingInterpolationTVI(ViImplementation2 * inputVi);
~PointingInterpolationTVI();
virtual casacore::String ViiType() const ;
virtual std::pair<bool, casacore::MDirection> getPointingAngle (int antenna, double time) const;
casacore::MDirection::Ref dirRef_;
casacore::MDirection::Ref toRef_;
void setupInterpolator();
casacore::String taQLSet(const std::set<int> &);
using PointingTimes = Vector<Double>;
using PointingDir = Vector<Double>;
using PointingDirs = Vector<PointingDir>;
void setData(const Vector<PointingTimes> &antsTimes,
const Vector<PointingDirs> &antsDirs,
const Vector<bool> &antSelected);
Vector<Double> pointingDir(int ant,double time) const;