You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
2.7 KiB
C

/*=========================================================================
Program: Visualization Toolkit
Module: vtkRTXMLPolyDataReader.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @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"
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(const char* dataLocation);
vtkGetStringMacro(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
*/
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;
};
#endif