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 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
/*=========================================================================
Program: Visualization Toolkit
Module: vtkPMultiResolutionGenericIOReader.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.
=========================================================================*/
// .NAME vtkPMultiResolutionGenericIOReader
// .SECTION Description
// This reader handles multiple GenericIO files that are different resolutions
// of the same dataset. This reader aggregates these and allows streaming
// different resolutions on different parts of the dataset. It has the
// concept of a resolution level with 0 being the lowest resolution and the
// resolution increases as the level number increases.
#ifndef vtkPMultiResolutionGenericIOReader_h
#define vtkPMultiResolutionGenericIOReader_h
#include "vtkPVVTKExtensionsCosmoToolsModule.h" // For export macro
#include "vtkMultiBlockDataSetAlgorithm.h"
class vtkCallbackCommand;
class vtkDataArraySelection;
class vtkStringArray;
class VTKPVVTKEXTENSIONSCOSMOTOOLS_EXPORT vtkPMultiResolutionGenericIOReader :
public vtkMultiBlockDataSetAlgorithm
{
public:
static vtkPMultiResolutionGenericIOReader* New();
vtkTypeMacro(vtkPMultiResolutionGenericIOReader, vtkMultiBlockDataSetAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
virtual bool CanReadFile(const char* fileName);
// Description:
// Sets/Gets the filename to be read by this reader
void SetFileName(const char* fname);
vtkGetStringMacro(FileName);
void SetXAxisVariableName(const char* arg);
vtkGetStringMacro(XAxisVariableName);
void SetYAxisVariableName(const char* arg);
vtkGetStringMacro(YAxisVariableName);
void SetZAxisVariableName(const char* arg);
vtkGetStringMacro(ZAxisVariableName);
vtkStringArray* GetArrayList();
// Description:
// This function inserts the given file as a resolution level on this reader.
// NOTE: 0 is lowest resolution and the resolution should increase from
// there.
bool InsertLevel(const char* fileName, int level);
// Description:
// Gets the number of resolution levels known by this reader
int GetNumberOfLevels() const;
// Description:
// Gets the filename for the given resolution level
const char* GetFileNameForLevel(int level) const;
// Description:
// Clears all resolution levels
void RemoveAllLevels();
// Description:
// Get the data array selection tables used to configure which data
// arrays are loaded by the reader
vtkGetObjectMacro(PointDataArraySelection,vtkDataArraySelection);
// Description:
// Returns the number of arrays in the file
int GetNumberOfPointArrays();
// Description:
// Returns the name of the ith array
const char* GetPointArrayName(int i);
// Description:
// Returns the status of the array corresponding to the given name.
int GetPointArrayStatus(const char* name);
// Description:
// Sets the status of the array corresponding to the given name.
void SetPointArrayStatus(const char* name, int status);
protected:
vtkPMultiResolutionGenericIOReader();
~vtkPMultiResolutionGenericIOReader();
int RequestInformation(vtkInformation*,
vtkInformationVector**, vtkInformationVector*);
int RequestUpdateExtent(vtkInformation*,
vtkInformationVector**, vtkInformationVector*);
int RequestData(vtkInformation*,
vtkInformationVector**, vtkInformationVector*);
char* FileName;
char* XAxisVariableName;
char* YAxisVariableName;
char* ZAxisVariableName;
vtkDataArraySelection* PointDataArraySelection;
vtkCallbackCommand* SelectionObserver;
private:
static void SelectionModifiedCallback(
vtkObject* caller,unsigned long eid,
void* clientdata,void* calldata);
class vtkInternal;
vtkInternal* Internal;
vtkPMultiResolutionGenericIOReader(const vtkPMultiResolutionGenericIOReader&); // Not implemented.
void operator=(const vtkPMultiResolutionGenericIOReader&); // Not implemented.
};
#endif
|