80 #ifndef vtkMPASReader_h
81 #define vtkMPASReader_h
83 #include "vtkIONetCDFModule.h"
108 vtkSetStringMacro(FileName);
116 vtkGetMacro(MaximumCells,
int);
123 vtkGetMacro(MaximumPoints,
int);
130 virtual int GetNumberOfCellVars();
131 virtual int GetNumberOfPointVars();
150 vtkGetMacro(UseDimensionedArrayNames,
bool)
160 int GetNumberOfPointArrays();
161 const char* GetPointArrayName(
int index);
162 int GetPointArrayStatus(
const char*
name);
163 void SetPointArrayStatus(
const char*
name,
int status);
164 void DisableAllPointArrays();
165 void EnableAllPointArrays();
168 int GetNumberOfCellArrays();
169 const char* GetCellArrayName(
int index);
170 int GetCellArrayStatus(
const char*
name);
171 void SetCellArrayStatus(
const char*
name,
int status);
172 void DisableAllCellArrays();
173 void EnableAllCellArrays();
184 int GetNumberOfDimensions();
187 int GetDimensionCurrentIndex(
const std::string &dim);
188 void SetDimensionCurrentIndex(
const std::string &dim,
int idx);
206 void SetVerticalLevel(
int level);
207 int GetVerticalLevel();
210 vtkGetVector2Macro(VerticalLevelRange,
int)
213 vtkGetMacro(LayerThickness,
int)
214 vtkGetVector2Macro(LayerThicknessRange,
int)
216 void SetCenterLon(
int val);
217 vtkGetVector2Macro(CenterLonRange,
int)
220 vtkGetMacro(ProjectLatLon,
bool)
223 vtkGetMacro(IsAtmosphere,
bool)
226 vtkGetMacro(IsZeroCentered,
bool)
229 vtkGetMacro(ShowMultilayerView,
bool)
234 static int CanReadFile(
const char *filename);
241 void ReleaseNcData();
258 static void SelectionCallback(
vtkObject* caller,
unsigned long eid,
259 void* clientdata,
void* calldata);
269 void UpdateDimensions(
bool force =
false);
272 int VerticalLevelRange[2];
275 int LayerThicknessRange[2];
278 int CenterLonRange[2];
327 int GetNcVars(
const char* cellDimName,
const char* pointDimName);
328 int ReadAndOutputGrid();
329 int BuildVarArrays();
330 int AllocSphericalGeometry();
331 int AllocProjectedGeometry();
332 int AllocPlanarGeometry();
334 int AddMirrorPoint(
int index,
double dividerX,
double offset);
336 int EliminateXWrap();
339 unsigned char GetCellType();
348 bool ValidateDimensions(NcVar *var,
bool silent,
int ndims, ...);
353 long GetCursorForDimension(
const NcDim *dim);
358 size_t GetCountForDimension(
const NcDim *dim);
365 long InitializeDimension(
const NcDim *dim);
389 static int NcTypeToVtkType(
int ncType);
392 vtkIdType ComputeNumberOfTuples(NcVar *ncVar);
394 template <
typename ValueType>
395 bool LoadDataArray(NcVar *ncVar,
vtkDataArray *array,
bool resize =
true);
397 template <
typename ValueType>
398 int LoadPointVarDataImpl(NcVar *ncVar,
vtkDataArray *array);
400 template <
typename ValueType>
401 int LoadCellVarDataImpl(NcVar *ncVar,
vtkDataArray *array);