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 "vtkStructuredGridSource.h"
00025
00026
class vtkFloatArray;
00027
class vtkImageData;
00028
class vtkPoints;
00029
00030 class VTK_PARALLEL_EXPORT vtkPOPReader :
public vtkStructuredGridSource
00031 {
00032
public:
00033
static vtkPOPReader *
New();
00034 vtkTypeRevisionMacro(vtkPOPReader,
vtkStructuredGridSource);
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
void ExecuteInformation();
00084
void Execute();
00085
00086
void ReadInformationFile();
00087
vtkPoints *ReadPoints(
vtkImageData *image);
00088
void ReadFlow();
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
00114 char *UFlowFileName;
00115 vtkSetStringMacro(UFlowFileName);
00116 unsigned long UFlowFileOffset;
00117 char *VFlowFileName;
00118 vtkSetStringMacro(VFlowFileName);
00119 unsigned long VFlowFileOffset;
00120
00121
00122
int IsFileName(
char *name);
00123
char *MakeFileName(
char *name);
00124
00125 int ClipExtent[6];
00126
00127 vtkPOPReader(
const vtkPOPReader&);
00128
void operator=(
const vtkPOPReader&);
00129 };
00130
00131
#endif
00132
00133