8 #ifndef MSVIS_MSVIS_POINTINGDIRECTIONCACHE_H_
9 #define MSVIS_MSVIS_POINTINGDIRECTIONCACHE_H_
19 class ROMSPointingColumns;
26 class PointingDirectionCache;
41 class AntennaLevelCache;
44 bool timeMatch (
double time,
double rowsTime,
double rowsInterval);
90 typedef std::vector<TimeLevelEntry>
Cache;
140 mutable std::unique_ptr<casacore::MDirection>
direction;
159 virtual int nRows ()
const = 0;
177 virtual int nRows ()
const override;
193 std::pair<bool, casacore::MDirection>
200 void fillCache (
int antenna,
double time,
bool flushAndRewind)
const;
A Measure: astronomical direction.
virtual ~PointingSource()
Generic interface to allow passing different pointing information sources into the PointingDirectionC...
std::pair< CacheAccessStatus, const casacore::MDirection * > getPointingDirection(double time)
bool timeMatch(double time, double rowsTime, double rowsInterval)
static const int MaxTimeEntries
These constants control the cache sizing.
const PointingSource * getPointingSource() const
const PointingSource * getPointingSource() const
TimeLevelCache(int minTimes, int maxTimes, const AntennaLevelCache *)
void addEntry(Pointing &pointing)
void fillCache(int antenna, double time, bool flushAndRewind) const
double getInterval() const
virtual void move(double dx, double dy, casacore::String system="")
Implements RegionShape::move.
ABSTRACT TOOL CLASSES A PlotTool is a higher level event handler for a PlotCanvas The idea is to take common tasks which may require multiple events and put them in one place PlotTools also provide additional functionality in that they can be active and blocking non blocking The PlotCanvas will only send events to active and will not send events to later tools or event handlers if the latest tool was blocking In this way a single tool can be used to handle ALL user interaction via the GUI at one time
const PointingSource * getPointingSource() const
~PointingDirectionCache()
bool operator<(double t, const TimeLevelEntry &)
const casacore::ROMSPointingColumns & pointingColumns_p
void addEntry(Pointing &pointing)
bool pointingEofReached_p
PointingColumns(const casacore::ROMSPointingColumns &)
Wrapper class to provide pointing subtable information into the cache.
std::vector< TimeLevelCache > timeLevelCache_p
A class to provide easy read-only access to MSPointing columns.
std::unique_ptr< casacore::MDirection > direction
std::vector< double > antennaEarliestTime_p
std::vector< TimeLevelEntry > Cache
std::unique_ptr< casacore::MDirection > direction_p
Pointing()
The direction and interval components are only usable if "valid" is set to true.
AntennaLevelCache & operator=(const AntennaLevelCache &other)=delete
virtual Pointing getPointingRow(int row, double targetTime, bool asMeasure) const override
bool operator==(double t, const TimeLevelEntry &)
AntennaLevelCache(int minTimes, int maxTimes, int nAntennas, const PointingDirectionCache *)
const PointingSource * getPointingSource() const
pd_cache::AntennaLevelCache antennaLevelCache_p
const casacore::MDirection * getDirection() const
std::pair< CacheAccessStatus, const casacore::MDirection * > getPointingDirection(int antenna, double time)
virtual int nRows() const override
std::pair< bool, casacore::MDirection > getPointingDirection(int antennaId, double time, const casacore::MDirection &phaseCenter) const
CacheAccessStatus
The namespace pd_cache contains the internal classes to the features provided by PointingDirectionCac...
const PointingSource * source
Pointing(const Pointing &other)
virtual Pointing getPointingRow(int row, double targetTime, bool asMeasure) const =0
TimeLevelEntry & operator=(const TimeLevelEntry &other)
const PointingSource & pointingSource_p
const TimeLevelCache * timeLevelCache_p
virtual int nRows() const =0
static const int MinTimeEntries
bool noDataForAntenna(int antenna, double time) const
const AntennaLevelCache * antennaLevelCache_p
PointingDirectionCache(int nAntennas, const PointingSource &pointingSource)
const PointingDirectionCache * pointingDirectionCache_p
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.