Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
IO/vtkXMLReader.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00037 #ifndef __vtkXMLReader_h
00038 #define __vtkXMLReader_h
00039
00040 #include "vtkSource.h"
00041
00042 class vtkCallbackCommand;
00043 class vtkDataArray;
00044 class vtkDataArraySelection;
00045 class vtkDataSet;
00046 class vtkDataSetAttributes;
00047 class vtkXMLDataElement;
00048 class vtkXMLDataParser;
00049
00050 class VTK_IO_EXPORT vtkXMLReader : public vtkSource
00051 {
00052 public:
00053 vtkTypeRevisionMacro(vtkXMLReader,vtkSource);
00054 void PrintSelf(ostream& os, vtkIndent indent);
00055
00057
00058 vtkSetStringMacro(FileName);
00059 vtkGetStringMacro(FileName);
00061
00063 virtual int CanReadFile(const char* name);
00064
00066 vtkDataSet* GetOutputAsDataSet();
00067
00069
00071 vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection);
00072 vtkGetObjectMacro(CellDataArraySelection, vtkDataArraySelection);
00074
00076
00077 int GetNumberOfPointArrays();
00078 int GetNumberOfCellArrays();
00080
00082
00084 const char* GetPointArrayName(int index);
00085 const char* GetCellArrayName(int index);
00087
00089
00091 int GetPointArrayStatus(const char* name);
00092 int GetCellArrayStatus(const char* name);
00093 void SetPointArrayStatus(const char* name, int status);
00094 void SetCellArrayStatus(const char* name, int status);
00096
00097 protected:
00098 vtkXMLReader();
00099 ~vtkXMLReader();
00100
00101
00102 void ExecuteInformation();
00103 void ExecuteData(vtkDataObject* output);
00104
00105
00106
00107
00108 virtual void ReadXMLInformation();
00109 virtual void ReadXMLData();
00110
00111
00112 virtual const char* GetDataSetName()=0;
00113
00114
00115 virtual int CanReadFileVersion(int major, int minor);
00116
00117
00118 virtual void SetupEmptyOutput()=0;
00119
00120
00121 virtual void SetupOutputInformation();
00122
00123
00124 virtual void SetupOutputData();
00125
00126
00127
00128 virtual int ReadPrimaryElement(vtkXMLDataElement* ePrimary);
00129
00130
00131
00132 int ReadVTKFile(vtkXMLDataElement* eVTKFile);
00133
00134
00135
00136 vtkDataArray* CreateDataArray(vtkXMLDataElement* da);
00137
00138
00139 int OpenVTKFile();
00140 void CloseVTKFile();
00141 void CreateXMLParser();
00142 void DestroyXMLParser();
00143 void SetupCompressor(const char* type);
00144 int CanReadFileVersionString(const char* version);
00145
00146
00147 int IntersectExtents(int* extent1, int* extent2, int* result);
00148 int Min(int a, int b);
00149 int Max(int a, int b);
00150 void ComputeDimensions(int* extent, int* dimensions, int isPoint);
00151 void ComputeIncrements(int* extent, int* increments, int isPoint);
00152 unsigned int GetStartTuple(int* extent, int* increments,
00153 int i, int j, int k);
00154 void ReadAttributeIndices(vtkXMLDataElement* eDSA,
00155 vtkDataSetAttributes* dsa);
00156 char** CreateStringArray(int numStrings);
00157 void DestroyStringArray(int numStrings, char** strings);
00158
00159
00160 void SetDataArraySelections(vtkXMLDataElement* eDSA,
00161 vtkDataArraySelection* sel);
00162
00163
00164 int PointDataArrayIsEnabled(vtkXMLDataElement* ePDA);
00165 int CellDataArrayIsEnabled(vtkXMLDataElement* eCDA);
00166
00167
00168 static void SelectionModifiedCallback(vtkObject* caller, unsigned long eid,
00169 void* clientdata, void* calldata);
00170
00171
00172 vtkXMLDataParser* XMLParser;
00173
00174
00175 char* FileName;
00176
00177
00178 ifstream* FileStream;
00179
00180
00181 vtkDataArraySelection* PointDataArraySelection;
00182 vtkDataArraySelection* CellDataArraySelection;
00183
00184
00185
00186 vtkCallbackCommand* SelectionObserver;
00187
00188
00189 int InformationError;
00190
00191
00192 int DataError;
00193
00194 private:
00195 vtkXMLReader(const vtkXMLReader&);
00196 void operator=(const vtkXMLReader&);
00197 };
00198
00199 #endif