/*========================================================================= Program: Visualization Toolkit Module: vtkXMLGenericDataObjectReader.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 vtkXMLGenericDataObjectReader * @brief Read any type of vtk data object * * vtkXMLGenericDataObjectReader reads any type of vtk data object encoded * in XML format. * * @sa * vtkGenericDataObjectReader */ #ifndef vtkXMLGenericDataObjectReader_h #define vtkXMLGenericDataObjectReader_h #include "vtkIOXMLModule.h" // For export macro #include "vtkXMLDataReader.h" class vtkHierarchicalBoxDataSet; class vtkHyperOctree; class vtkMultiBlockDataSet; class vtkImageData; class vtkPolyData; class vtkRectilinearGrid; class vtkStructuredGrid; class vtkUnstructuredGrid; class VTKIOXML_EXPORT vtkXMLGenericDataObjectReader : public vtkXMLDataReader { public: vtkTypeMacro(vtkXMLGenericDataObjectReader,vtkXMLDataReader); void PrintSelf(ostream& os, vtkIndent indent) override; static vtkXMLGenericDataObjectReader *New(); //@{ /** * Get the reader's output. */ vtkDataObject *GetOutput(); vtkDataObject *GetOutput(int idx); //@} //@{ /** * Get the output as various concrete types. This method is typically used * when you know exactly what type of data is being read. Otherwise, use * the general GetOutput() method. If the wrong type is used nullptr is * returned. (You must also set the filename of the object prior to * getting the output.) */ vtkHierarchicalBoxDataSet *GetHierarchicalBoxDataSetOutput(); #if !defined(VTK_LEGACY_REMOVE) vtkHyperOctree *GetHyperOctreeOutput(); #endif // LEGACY remove vtkImageData *GetImageDataOutput(); vtkMultiBlockDataSet *GetMultiBlockDataSetOutput(); vtkPolyData *GetPolyDataOutput(); vtkRectilinearGrid *GetRectilinearGridOutput(); vtkStructuredGrid *GetStructuredGridOutput(); vtkUnstructuredGrid *GetUnstructuredGridOutput(); //@} /** * Overridden method. */ vtkIdType GetNumberOfPoints() override; /** * Overridden method. */ vtkIdType GetNumberOfCells() override; /** * Overridden method. Not Used. Delegated. */ void SetupEmptyOutput() override; /** * This method can be used to find out the type of output expected without * needing to read the whole file. */ virtual int ReadOutputType(const char *name, bool ¶llel); protected: vtkXMLGenericDataObjectReader(); ~vtkXMLGenericDataObjectReader() override; /** * Overridden method. Not used. Return "vtkDataObject". */ const char* GetDataSetName() override; int RequestDataObject(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override; int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override; virtual int RequestUpdateExtent(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector); int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override; int FillOutputPortInformation(int, vtkInformation *) override; vtkXMLReader *Reader; // actual reader private: vtkXMLGenericDataObjectReader(const vtkXMLGenericDataObjectReader&) = delete; void operator=(const vtkXMLGenericDataObjectReader&) = delete; }; #endif