VTK  9.3.0
vtkGenericDataObjectReader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
35 #ifndef vtkGenericDataObjectReader_h
36 #define vtkGenericDataObjectReader_h
37 
38 #include "vtkDataReader.h"
39 #include "vtkIOLegacyModule.h" // For export macro
40 
41 VTK_ABI_NAMESPACE_BEGIN
42 class vtkDataObject;
43 class vtkGraph;
44 class vtkMolecule;
45 class vtkPolyData;
46 class vtkRectilinearGrid;
47 class vtkStructuredGrid;
49 class vtkTable;
50 class vtkTree;
52 
53 class VTKIOLEGACY_EXPORT vtkGenericDataObjectReader : public vtkDataReader
54 {
55 public:
58  void PrintSelf(ostream& os, vtkIndent indent) override;
59 
61 
67 
69 
86 
91  virtual int ReadOutputType();
92 
96  int ReadMetaDataSimple(VTK_FILEPATH const std::string& fname, vtkInformation* metadata) override;
97 
101  int ReadMeshSimple(VTK_FILEPATH const std::string& fname, vtkDataObject* output) override;
102 
103 protected:
106 
107  vtkDataObject* CreateOutput(vtkDataObject* currentOutput) override;
108 
110 
111 private:
113  void operator=(const vtkGenericDataObjectReader&) = delete;
114 
115  template <typename ReaderT, typename DataT>
116  void ReadData(const char* fname, const char* dataClass, vtkDataObject* output);
117 
118  vtkSetStringMacro(Header);
119 };
120 
121 VTK_ABI_NAMESPACE_END
122 #endif
general representation of visualization data
Definition: vtkDataObject.h:64
helper superclass for objects that read vtk data files
Definition: vtkDataReader.h:44
class to read any type of vtk data object
vtkMolecule * GetMoleculeOutput()
Get the output as various concrete types.
virtual int ReadOutputType()
This method can be used to find out the type of output expected without needing to read the whole fil...
vtkRectilinearGrid * GetRectilinearGridOutput()
Get the output as various concrete types.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int ReadMeshSimple(VTK_FILEPATH const std::string &fname, vtkDataObject *output) override
Actual reading happens here.
int ReadMetaDataSimple(VTK_FILEPATH const std::string &fname, vtkInformation *metadata) override
Read metadata from file.
vtkTree * GetTreeOutput()
Get the output as various concrete types.
vtkStructuredGrid * GetStructuredGridOutput()
Get the output as various concrete types.
vtkDataObject * GetOutput()
Get the output of this filter.
vtkPolyData * GetPolyDataOutput()
Get the output as various concrete types.
vtkDataObject * CreateOutput(vtkDataObject *currentOutput) override
This can be overridden by a subclass to create an output that is determined by the file being read.
vtkStructuredPoints * GetStructuredPointsOutput()
Get the output as various concrete types.
int FillOutputPortInformation(int, vtkInformation *) override
Fill the output port information objects for this algorithm.
~vtkGenericDataObjectReader() override
vtkUnstructuredGrid * GetUnstructuredGridOutput()
Get the output as various concrete types.
static vtkGenericDataObjectReader * New()
vtkTable * GetTableOutput()
Get the output as various concrete types.
vtkGraph * GetGraphOutput()
Get the output as various concrete types.
vtkDataObject * GetOutput(int idx)
Get the output of this filter.
Base class for graph data types.
Definition: vtkGraph.h:290
a simple class to control print indentation
Definition: vtkIndent.h:38
Store vtkAlgorithm input/output information.
class describing a molecule
Definition: vtkMolecule.h:84
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:89
a dataset that is topologically regular with variable spacing in the three coordinate directions
topologically regular array of data
A subclass of ImageData.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
A rooted tree data structure.
Definition: vtkTree.h:55
dataset represents arbitrary combinations of all possible cell types
@ string
Definition: vtkX3D.h:490
#define VTK_FILEPATH