1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
/**
* @class vtkRTXMLPolyDataReader
* @brief Read RealTime VTK XML PolyData files.
*
* vtkRTXMLPolyDataReader reads the VTK XML PolyData file format in real time.
*
*/
#ifndef vtkRTXMLPolyDataReader_h
#define vtkRTXMLPolyDataReader_h
#include "vtkIOXMLModule.h" // For export macro
#include "vtkXMLPolyDataReader.h"
VTK_ABI_NAMESPACE_BEGIN
class vtkRTXMLPolyDataReaderInternals;
class VTKIOXML_EXPORT vtkRTXMLPolyDataReader : public vtkXMLPolyDataReader
{
public:
vtkTypeMacro(vtkRTXMLPolyDataReader, vtkXMLPolyDataReader);
void PrintSelf(ostream& os, vtkIndent indent) override;
static vtkRTXMLPolyDataReader* New();
// This sets the DataLocation and also
// Reset the reader by calling ResetReader()
void SetLocation(VTK_FILEPATH const char* dataLocation);
vtkGetFilePathMacro(DataLocation);
/**
* Reader will read in the next available data file
* The filename is this->NextFileName maintained internally
*/
virtual void UpdateToNextFile();
/**
* check if there is new data file available in the
* given DataLocation
*/
virtual int NewDataAvailable();
/**
* ResetReader check the data directory specified in
* this->DataLocation, and reset the Internal data structure
* specifically: this->Internal->ProcessedFileList
* for monitoring the arriving new data files
* if SetDataLocation(char*) is set by the user,
* this ResetReader() should also be invoked.
*/
virtual void ResetReader();
/**
* Return the name of the next available data file
* assume NewDataAvailable() return VTK_OK
*/
VTK_FILEPATH const char* GetNextFileName();
protected:
vtkRTXMLPolyDataReader();
~vtkRTXMLPolyDataReader() override;
///@{
/**
* Get/Set the location of the input data files.
*/
vtkSetStringMacro(DataLocation);
///@}
void InitializeToCurrentDir();
int IsProcessed(const char*);
char* GetDataFileFullPathName(const char*);
///@{
/**
* the DataLocation should be set and ResetReader()
* should be called after SetDataLocation
*/
char* DataLocation;
vtkRTXMLPolyDataReaderInternals* Internal;
///@}
private:
vtkRTXMLPolyDataReader(const vtkRTXMLPolyDataReader&) = delete;
void operator=(const vtkRTXMLPolyDataReader&) = delete;
};
VTK_ABI_NAMESPACE_END
#endif
|