00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00024 #ifndef __vtkNetCDFPOPReader_h
00025 #define __vtkNetCDFPOPReader_h
00026
00027 #include "vtkRectilinearGridAlgorithm.h"
00028 #include "vtkSmartPointer.h"
00029
00030 class vtkDataArraySelection;
00031 class vtkCallbackCommand;
00032
00033 class VTK_IO_EXPORT vtkNetCDFPOPReader : public vtkRectilinearGridAlgorithm
00034 {
00035 public:
00036 vtkTypeRevisionMacro(vtkNetCDFPOPReader,vtkRectilinearGridAlgorithm);
00037 static vtkNetCDFPOPReader *New();
00038 void PrintSelf(ostream& os, vtkIndent indent);
00039
00040 vtkSetStringMacro(Filename);
00041 vtkGetStringMacro(Filename);
00042
00043 vtkSetVector6Macro(WholeExtent, int);
00044 vtkGetVector6Macro(WholeExtent, int);
00045
00046 vtkSetVector6Macro(SubExtent, int);
00047 vtkGetVector6Macro(SubExtent, int);
00048
00049 vtkSetVector3Macro(Origin, double);
00050 vtkGetVector3Macro(Origin, double);
00051
00052 vtkSetVector3Macro(Spacing, double);
00053 vtkGetVector3Macro(Spacing, double);
00054
00055 vtkSetVector3Macro(Stride, int);
00056 vtkGetVector3Macro(Stride, int);
00057
00058 vtkSetMacro(BlockReadSize, int);
00059 vtkGetMacro(BlockReadSize, int);
00060
00062
00063 virtual int GetNumberOfVariableArrays();
00064 virtual const char *GetVariableArrayName(int idx);
00065 virtual int GetVariableArrayStatus(const char *name);
00066 virtual void SetVariableArrayStatus(const char *name, int status);
00068
00069 protected:
00070 vtkNetCDFPOPReader();
00071 ~vtkNetCDFPOPReader();
00072
00073 vtkSmartPointer<vtkDataArraySelection> VariableArraySelection;
00074
00075
00076
00077 int RequestData(vtkInformation*,vtkInformationVector**,vtkInformationVector*);
00078 virtual int RequestInformation(vtkInformation* request,
00079 vtkInformationVector** inputVector,
00080 vtkInformationVector* outputVector);
00081
00082
00083
00084
00085 static void SelectionModifiedCallback(vtkObject *caller, unsigned long eid,
00086 void *clientdata, void *calldata);
00087
00088 static void EventCallback(vtkObject* caller, unsigned long eid,
00089 void* clientdata, void* calldata);
00090 int ncFD;
00091 char VariableArrayInfo[100][100];
00092 char VariableName[100][100];
00093 char *Filename;
00094 int WholeExtent[6];
00095 int SubExtent[6];
00096 double Origin[3];
00097 double Spacing[3];
00098 int Stride[3];
00099 int BlockReadSize;
00100 int nvarsp;
00101 int nvarspw;
00102 int draw[100];
00103 vtkCallbackCommand* SelectionObserver;
00104
00105 private:
00106 vtkNetCDFPOPReader(const vtkNetCDFPOPReader&);
00107 void operator=(const vtkNetCDFPOPReader&);
00108 };
00109 #endif
00110