VTK
vtkAVSucdReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAVSucdReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
41 #ifndef vtkAVSucdReader_h
42 #define vtkAVSucdReader_h
43 
44 #include "vtkIOGeometryModule.h" // For export macro
46 
47 class vtkIntArray;
48 class vtkFloatArray;
49 class vtkIdTypeArray;
51 
53 {
54 public:
55  static vtkAVSucdReader *New();
57  void PrintSelf(ostream& os, vtkIndent indent);
58 
60 
61  vtkSetStringMacro(FileName);
62  vtkGetStringMacro(FileName);
64 
66 
68  vtkSetMacro(BinaryFile, int);
69  vtkGetMacro(BinaryFile, int);
70  vtkBooleanMacro(BinaryFile, int);
72 
74 
75  vtkGetMacro(NumberOfCells,int);
77 
79 
80  vtkGetMacro(NumberOfNodes,int);
82 
84 
85  vtkGetMacro(NumberOfNodeFields,int);
87 
89 
90  vtkGetMacro(NumberOfCellFields,int);
92 
94 
96  vtkGetMacro(NumberOfFields,int);
98 
100 
101  vtkGetMacro(NumberOfNodeComponents,int);
102  vtkGetMacro(NumberOfCellComponents,int);
104 
106 
109  const char *GetByteOrderAsString();
111 
112  vtkSetMacro(ByteOrder, int);
113  vtkGetMacro(ByteOrder, int);
114 
116 
121  const char* GetPointArrayName(int index);
122  const char* GetCellArrayName(int index);
123  int GetPointArrayStatus(const char* name);
124  int GetCellArrayStatus(const char* name);
125  void SetPointArrayStatus(const char* name, int status);
126  void SetCellArrayStatus(const char* name, int status);
128 
133 
134  // get min and max value for the index-th value of a cell component
135  // index varies from 0 to (veclen - 1)
136  void GetCellDataRange(int cellComp, int index, float *min, float *max);
137 
138  // get min and max value for the index-th value of a node component
139  // index varies from 0 to (veclen - 1)
140  void GetNodeDataRange(int nodeComp, int index, float *min, float *max);
141 
142 protected:
147 
148  char *FileName;
150 
159 
160  ifstream *FileStream;
161 
164 
167  int GetLabel(char *string, int number, char *label);
168  //BTX
169  enum
170  {
171  FILE_BIG_ENDIAN=0,
172  FILE_LITTLE_ENDIAN=1
173  };
175  {
176  PT = 0,
177  LINE = 1,
178  TRI = 2,
179  QUAD = 3,
180  TET = 4,
181  PYR = 5,
182  PRISM = 6,
183  HEX = 7
184  };
185 
186  struct DataInfo {
187  long foffset; // offset in binary file
188  int veclen; // number of components in the node or cell variable
189  float min[3]; // pre-calculated data minima (max size 3 for vectors)
190  float max[3]; // pre-calculated data maxima (max size 3 for vectors)
191  };
192  //ETX
193 
196 
197 private:
198  void ReadFile(vtkUnstructuredGrid *output);
199  void ReadGeometry(vtkUnstructuredGrid *output);
200  void ReadNodeData(vtkUnstructuredGrid *output);
201  void ReadCellData(vtkUnstructuredGrid *output);
202 
203  int ReadFloatBlock(int n, float *block);
204  int ReadIntBlock(int n, int *block);
205  void ReadXYZCoords(vtkFloatArray *coords);
206  void ReadBinaryCellTopology(vtkIntArray *material, int *types,
207  vtkIdTypeArray *listcells);
208  void ReadASCIICellTopology(vtkIntArray *material, vtkUnstructuredGrid *output);
209 
210  vtkAVSucdReader(const vtkAVSucdReader&); // Not implemented.
211  void operator=(const vtkAVSucdReader&); // Not implemented.
212 };
213 
214 #endif
vtkAVSucdReader::SetByteOrderToBigEndian
void SetByteOrderToBigEndian()
vtkIOGeometryModule.h
vtkAVSucdReader::NumberOfCells
int NumberOfCells
Definition: vtkAVSucdReader.h:152
vtkAVSucdReader::SetPointArrayStatus
void SetPointArrayStatus(const char *name, int status)
vtkAVSucdReader::GetNodeDataRange
void GetNodeDataRange(int nodeComp, int index, float *min, float *max)
vtkAVSucdReader::SetByteOrderToLittleEndian
void SetByteOrderToLittleEndian()
vtkAVSucdReader::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkFloatArray
dynamic, self-adjusting array of float
Definition: vtkFloatArray.h:49
vtkAVSucdReader::SetCellArrayStatus
void SetCellArrayStatus(const char *name, int status)
vtkAVSucdReader::EnableAllCellArrays
void EnableAllCellArrays()
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkAVSucdReader::DisableAllCellArrays
void DisableAllCellArrays()
vtkgl::types
GLsizei GLenum GLenum * types
Definition: vtkgl.h:14417
vtkAVSucdReader::GetLabel
int GetLabel(char *string, int number, char *label)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkgl::n
GLclampd n
Definition: vtkgl.h:14370
vtkAVSucdReader::DataInfo::foffset
long foffset
Definition: vtkAVSucdReader.h:187
vtkAVSucdReader::FileName
char * FileName
Definition: vtkAVSucdReader.h:148
vtkAVSucdReader::GetNumberOfCellArrays
int GetNumberOfCellArrays()
vtkAVSucdReader::GetCellDataRange
void GetCellDataRange(int cellComp, int index, float *min, float *max)
vtkAVSucdReader::RequestData
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkAVSucdReader::RequestInformation
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
VTKIOGEOMETRY_EXPORT
#define VTKIOGEOMETRY_EXPORT
Definition: vtkIOGeometryModule.h:15
vtkgl::coords
GLuint coords
Definition: vtkgl.h:13928
max
#define max(a, b)
Definition: vtkX3DExporterFIWriterHelper.h:30
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:34
vtkAVSucdReader::NumberOfCellComponents
int NumberOfCellComponents
Definition: vtkAVSucdReader.h:155
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkAVSucdReader::NumberOfFields
int NumberOfFields
Definition: vtkAVSucdReader.h:157
vtkAVSucdReader::GetCellArrayName
const char * GetCellArrayName(int index)
vtkAVSucdReader::GetCellArrayStatus
int GetCellArrayStatus(const char *name)
vtkAVSucdReader::GetPointArrayStatus
int GetPointArrayStatus(const char *name)
vtkAVSucdReader::PointDataArraySelection
vtkDataArraySelection * PointDataArraySelection
Definition: vtkAVSucdReader.h:162
vtkAVSucdReader::NumberOfNodeFields
int NumberOfNodeFields
Definition: vtkAVSucdReader.h:153
vtkAVSucdReader::GetNumberOfPointArrays
int GetNumberOfPointArrays()
vtkAVSucdReader::DataInfo
Definition: vtkAVSucdReader.h:186
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:53
vtkAVSucdReader::EnableAllPointArrays
void EnableAllPointArrays()
vtkAVSucdReader::~vtkAVSucdReader
~vtkAVSucdReader()
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkAVSucdReader::ByteOrder
int ByteOrder
Definition: vtkAVSucdReader.h:166
vtkAVSucdReader::DecrementNodeIds
int DecrementNodeIds
Definition: vtkAVSucdReader.h:165
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkAVSucdReader::NumberOfNodes
int NumberOfNodes
Definition: vtkAVSucdReader.h:151
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkAVSucdReader::CellDataInfo
DataInfo * CellDataInfo
Definition: vtkAVSucdReader.h:195
vtkIdTypeArray
dynamic, self-adjusting array of vtkIdType
Definition: vtkIdTypeArray.h:49
vtkAVSucdReader::DisableAllPointArrays
void DisableAllPointArrays()
vtkAVSucdReader::NumberOfCellFields
int NumberOfCellFields
Definition: vtkAVSucdReader.h:156
vtkAVSucdReader::GetPointArrayName
const char * GetPointArrayName(int index)
vtkUnstructuredGridAlgorithm.h
vtkAVSucdReader::NlistNodes
int NlistNodes
Definition: vtkAVSucdReader.h:158
vtkAVSucdReader::NodeDataInfo
DataInfo * NodeDataInfo
Definition: vtkAVSucdReader.h:194
vtkUnstructuredGridAlgorithm
Superclass for algorithms that produce only unstructured grid as output.
Definition: vtkUnstructuredGridAlgorithm.h:40
vtkAVSucdReader::NumberOfNodeComponents
int NumberOfNodeComponents
Definition: vtkAVSucdReader.h:154
vtkAVSucdReader::GetByteOrderAsString
const char * GetByteOrderAsString()
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:82
vtkAVSucdReader::FileStream
ifstream * FileStream
Definition: vtkAVSucdReader.h:160
vtkAVSucdReader::UCDCell_type
UCDCell_type
Definition: vtkAVSucdReader.h:175
vtkAVSucdReader::New
static vtkAVSucdReader * New()
vtkAVSucdReader::CellDataArraySelection
vtkDataArraySelection * CellDataArraySelection
Definition: vtkAVSucdReader.h:163
vtkAVSucdReader
reads a dataset in AVS "UCD" format
Definition: vtkAVSucdReader.h:53
vtkAVSucdReader::vtkAVSucdReader
vtkAVSucdReader()
vtkAVSucdReader::BinaryFile
int BinaryFile
Definition: vtkAVSucdReader.h:149
vtkAVSucdReader::DataInfo::veclen
int veclen
Definition: vtkAVSucdReader.h:188