00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00021 #ifndef __vtkPOPReader_h
00022 #define __vtkPOPReader_h
00023
00024 #include "vtkStructuredGridAlgorithm.h"
00025
00026 class vtkFloatArray;
00027 class vtkImageData;
00028 class vtkPoints;
00029
00030 class VTK_PARALLEL_EXPORT vtkPOPReader : public vtkStructuredGridAlgorithm
00031 {
00032 public:
00033 static vtkPOPReader *New();
00034 vtkTypeRevisionMacro(vtkPOPReader,vtkStructuredGridAlgorithm);
00035 void PrintSelf(ostream& os, vtkIndent indent);
00036
00038
00039 vtkGetVector2Macro(Dimensions, int);
00041
00043
00045 vtkGetStringMacro(GridFileName);
00047
00049
00050 vtkGetStringMacro(UFlowFileName);
00051 vtkGetStringMacro(VFlowFileName);
00053
00055
00056 vtkSetStringMacro(FileName);
00057 vtkGetStringMacro(FileName);
00059
00061
00062 vtkSetMacro(Radius, double);
00063 vtkGetMacro(Radius, double);
00065
00067
00069 vtkSetVector6Macro(ClipExtent, int);
00070 vtkGetVector6Macro(ClipExtent, int);
00072
00074
00075 vtkSetMacro(NumberOfGhostLevels, int);
00076 vtkGetMacro(NumberOfGhostLevels, int);
00078
00079 protected:
00080 vtkPOPReader();
00081 ~vtkPOPReader();
00082
00083 virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00084 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00085
00086 void ReadInformationFile();
00087 vtkPoints *ReadPoints(vtkImageData *image, vtkInformation *outInfo);
00088 void ReadFlow(vtkStructuredGrid *output, vtkInformation *outInfo);
00089
00090 vtkPoints *GeneratePoints();
00091
00092 char *FileName;
00093
00094 int Dimensions[2];
00095 vtkSetStringMacro(GridFileName);
00096 void SetGridName(char *name);
00097 char *GridFileName;
00098
00099 double Radius;
00100 vtkFloatArray *DepthValues;
00101 int NumberOfGhostLevels;
00102
00103 void DeleteArrays();
00104 void AddArray(char *arrayName, char *fileName, unsigned long offset);
00105 void AddArrayName(char *arrayName, char *fileName, unsigned long offset);
00106 int NumberOfArrays;
00107 int MaximumNumberOfArrays;
00108 char **ArrayNames;
00109 char **ArrayFileNames;
00110 unsigned long *ArrayOffsets;
00111 int ArrayFileDimensionality;
00112
00113 char *UFlowFileName;
00114 vtkSetStringMacro(UFlowFileName);
00115 unsigned long UFlowFileOffset;
00116 char *VFlowFileName;
00117 vtkSetStringMacro(VFlowFileName);
00118 unsigned long VFlowFileOffset;
00119
00120 int IsFileName(char *name);
00121 char *MakeFileName(char *name);
00122
00123 int ClipExtent[6];
00124
00125 vtkPOPReader(const vtkPOPReader&);
00126 void operator=(const vtkPOPReader&);
00127 };
00128
00129 #endif