7 #ifndef __vtkPlusTimestampedCircularBuffer_h 8 #define __vtkPlusTimestampedCircularBuffer_h 10 #include "PlusConfigure.h" 12 #include "vtkObject.h" 15 #include "vnl/vnl_matrix.h" 16 #include "vnl/vnl_vector.h" 20 class vtkIGSIORecursiveCriticalSection;
41 void PrintSelf( ostream& os, vtkIndent indent );
139 virtual double GetFrameRate(
bool ideal =
false,
double* framePeriodStdevSecPtr = NULL );
142 virtual void Clear();
184 void AddToTimeStampReport(
unsigned long itemIndex,
double unfilteredTimestamp,
double filteredTimestamp );
214 vtkIGSIORecursiveCriticalSection*
Mutex;
virtual BufferItemUidType GetOldestItemUidInBuffer()
virtual ItemStatus GetBufferItemPointerFromUid(const BufferItemUidType uid, StreamBufferItem *&itemPtr)
unsigned int FilterContainersOldestIndex
virtual ItemStatus GetLatestTimeStamp(double ×tamp)
double MaxAllowedFilteringTimeDifference
vtkIGSIORecursiveCriticalSection * Mutex
virtual void DeepCopy(vtkPlusTimestampedCircularBuffer *buffer)
virtual double GetFrameRate(bool ideal=false, double *framePeriodStdevSecPtr=NULL)
static vtkPlusTimestampedCircularBuffer * New()
virtual PlusStatus PrepareForNewItem(const double timestamp, BufferItemUidType &newFrameUid, int &bufferIndex)
This class stores an fixed number of timestamped items. It provides element retrieval based on timest...
vnl_vector< double > FilterContainerIndexVector
virtual PlusStatus SetBufferSize(int n)
virtual int GetBufferSize()
unsigned int AveragedItemsForFiltering
virtual ItemStatus GetItemUidFromTime(const double time, BufferItemUidType &uid)
virtual PlusStatus CreateFilteredTimeStampForItem(unsigned long itemIndex, double inUnfilteredTimestamp, double &outFilteredTimestamp, bool &filteredTimestampProbablyValid)
virtual BufferItemUidType GetLatestItemUidInBuffer()
void PrintSelf(ostream &os, vtkIndent indent)
PlusStatus GetTimeStampReportTable(vtkTable *timeStampReportTable)
virtual bool GetLatestItemHasValidFieldData()
void AddToTimeStampReport(unsigned long itemIndex, double unfilteredTimestamp, double filteredTimestamp)
vtkPlusTimestampedCircularBuffer()
vnl_vector< double > FilterContainerTimestampVector
virtual ItemStatus GetFilteredTimeStamp(const BufferItemUidType uid, double &filteredTimestamp)
unsigned int FilterContainersNumberOfValidElements
virtual ItemStatus GetOldestTimeStamp(double ×tamp)
vtkTable * TimeStampReportTable
double NegligibleTimeDifferenceSec
std::deque< StreamBufferItem > BufferItemContainer
virtual bool GetLatestItemHasValidTransformData()
virtual ItemStatus GetBufferIndexFromTime(const double time, int &bufferIndex)
virtual StreamBufferItem * GetBufferItemPointerFromBufferIndex(const int bufferIndex)
virtual ItemStatus GetIndex(const BufferItemUidType uid, unsigned long &index)
virtual ItemStatus GetTimeStamp(const BufferItemUidType uid, double ×tamp)
BufferItemUidType LatestItemUid
virtual ItemStatus GetUnfilteredTimeStamp(const BufferItemUidType uid, double &unfilteredTimestamp)
unsigned long long BufferItemUidType
double LocalTimeOffsetSec
~vtkPlusTimestampedCircularBuffer()
virtual bool GetLatestItemHasValidVideoData()