VTK
vtkGenericEnSightReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkGenericEnSightReader.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 =========================================================================*/
25 #ifndef vtkGenericEnSightReader_h
26 #define vtkGenericEnSightReader_h
27 
28 #include "vtkIOEnSightModule.h" // For export macro
30 
31 class vtkCallbackCommand;
35 
36 //BTX
37 class TranslationTableType;
38 //ETX
39 
40 //BTX
41 // Cell/Point Ids store mode:
42 // Sparse Mode is supposed to be for a large number of distributed processes (Unstructured)
43 // Non Sparse Mode is supposed to be for a small number of distributed processes (Unstructured)
44 // Implicit Mode is for Structured Data
46  {
51  };
52 //ETX
53 
55 {
56 public:
59  void PrintSelf(ostream& os, vtkIndent indent);
60 
62 
63  void SetCaseFileName(const char* fileName);
64  vtkGetStringMacro(CaseFileName);
66 
68 
69  vtkSetStringMacro(FilePath);
70  vtkGetStringMacro(FilePath);
72 
74 
75  vtkGetMacro(EnSightVersion, int);
77 
79 
80  vtkGetMacro(NumberOfVariables, int);
81  vtkGetMacro(NumberOfComplexVariables, int);
83 
85 
86  int GetNumberOfVariables(int type); // returns -1 if unknown type specified
87  vtkGetMacro(NumberOfScalarsPerNode, int);
88  vtkGetMacro(NumberOfVectorsPerNode, int);
89  vtkGetMacro(NumberOfTensorsSymmPerNode, int);
90  vtkGetMacro(NumberOfScalarsPerElement, int);
91  vtkGetMacro(NumberOfVectorsPerElement, int);
92  vtkGetMacro(NumberOfTensorsSymmPerElement, int);
93  vtkGetMacro(NumberOfScalarsPerMeasuredNode, int);
94  vtkGetMacro(NumberOfVectorsPerMeasuredNode, int);
95  vtkGetMacro(NumberOfComplexScalarsPerNode, int);
96  vtkGetMacro(NumberOfComplexVectorsPerNode, int);
97  vtkGetMacro(NumberOfComplexScalarsPerElement, int);
98  vtkGetMacro(NumberOfComplexVectorsPerElement, int);
100 
102  const char* GetDescription(int n);
103 
105  const char* GetComplexDescription(int n);
106 
115  const char* GetDescription(int n, int type);
116 
118 
119  int GetVariableType(int n);
122 
124 
125  virtual void SetTimeValue(float value);
126  vtkGetMacro(TimeValue, float);
128 
130 
131  vtkGetMacro(MinimumTimeValue, float);
132  vtkGetMacro(MaximumTimeValue, float);
134 
136 
139 
144  int DetermineEnSightVersion(int quiet=0);
145 
147 
148  vtkBooleanMacro(ReadAllVariables, int);
149  vtkSetMacro(ReadAllVariables, int);
150  vtkGetMacro(ReadAllVariables, int);
152 
154 
156  vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection);
157  vtkGetObjectMacro(CellDataArraySelection, vtkDataArraySelection);
159 
161 
165 
167 
169  const char* GetPointArrayName(int index);
170  const char* GetCellArrayName(int index);
172 
174 
176  int GetPointArrayStatus(const char* name);
177  int GetCellArrayStatus(const char* name);
178  void SetPointArrayStatus(const char* name, int status);
179  void SetCellArrayStatus(const char* name, int status);
181 
182  //BTX
184  {
185  ENSIGHT_6 = 0,
186  ENSIGHT_6_BINARY = 1,
187  ENSIGHT_GOLD = 2,
188  ENSIGHT_GOLD_BINARY = 3,
189  ENSIGHT_MASTER_SERVER = 4
190  };
191  //ETX
192 
194 
199  vtkSetMacro(ByteOrder, int);
200  vtkGetMacro(ByteOrder, int);
201  const char *GetByteOrderAsString();
203 
204 //BTX
205  enum
206  {
207  FILE_BIG_ENDIAN=0,
208  FILE_LITTLE_ENDIAN=1,
209  FILE_UNKNOWN_ENDIAN=2
210  };
211 //ETX
212 
214 
216  vtkGetStringMacro(GeometryFileName);
218 
220 
228  vtkSetMacro(ParticleCoordinatesByIndex, int);
229  vtkGetMacro(ParticleCoordinatesByIndex, int);
230  vtkBooleanMacro(ParticleCoordinatesByIndex, int);
232 
235  static int CanReadFile(const char *casefilename);
236 
237 //THIB
238 vtkGenericEnSightReader* GetReader() { return this->Reader; }
239 
240 
241 protected:
244 
252 
256  virtual void ClearForNewCaseFileName();
257 
260  int ReadLine(char result[256]);
261 
264  int ReadBinaryLine(char result[80]);
265 
266  // Internal function that skips blank lines and reads the 1st
267  // non-blank line it finds (up to 256 characters).
268  // Returns 0 is there was an error.
269  int ReadNextDataLine(char result[256]);
270 
272 
273  vtkSetStringMacro(GeometryFileName);
275 
277 
281 
283 
284  void AddVariableType(int variableType);
285  void AddComplexVariableType(int variableType);
287 
289 
291  int ReplaceWildcards(char* fileName, int timeSet, int fileSet);
292  void ReplaceWildcardsHelper(char* fileName, int num);
294 
295  // Callback registered with the SelectionObserver.
296  static void SelectionModifiedCallback(vtkObject* caller, unsigned long eid,
297  void* clientdata, void* calldata);
299 
300  // Utility to create argument for vtkDataArraySelection::SetArrays.
301  char** CreateStringArray(int numStrings);
302  void DestroyStringArray(int numStrings, char** strings);
303 
304  // Fill the vtkDataArraySelection objects with the current set of
305  // EnSight variables.
307 
308  // Fill the vtkDataArraySelection objects with the current set of
309  // arrays in the internal EnSight reader.
311 
312  // Fill the internal EnSight reader's vtkDataArraySelection objects
313  // from those in this object.
315 
316  istream* IS;
317  FILE *IFile;
319 
322  char* FilePath;
323 
324  // array of types (one entry per instance of variable type in case file)
327 
328  // pointers to lists of descriptions
331 
334 
335  // number of file names / descriptions per type
348 
349  float TimeValue;
352 
353  // Flag for whether TimeValue has been set.
355 
358 
360 
363 
364  // The EnSight file version being read. Valid after
365  // UpdateInformation. Value is -1 for unknown version.
367 
368  // The array selections. These map over the variables and complex
369  // variables to hide the details of EnSight behind VTK terminology.
372 
373  // The observer to modify this object when the array selections are
374  // modified.
376 
377  // Whether the SelectionModified callback should invoke Modified.
378  // This is used when we are copying to/from the internal reader.
380 
381  // Insert a partId and return the 'realId' that should be used.
382  int InsertNewPartId(int partId);
383 
384  // Wrapper around an stl map
385  TranslationTableType *TranslationTable;
386 
387 private:
388  vtkGenericEnSightReader(const vtkGenericEnSightReader&); // Not implemented.
389  void operator=(const vtkGenericEnSightReader&); // Not implemented.
390 };
391 
392 #endif
SINGLE_PROCESS_MODE
@ SINGLE_PROCESS_MODE
Definition: vtkGenericEnSightReader.h:47
vtkGenericEnSightReader::MaximumTimeValue
float MaximumTimeValue
Definition: vtkGenericEnSightReader.h:351
vtkGenericEnSightReader::TimeValue
float TimeValue
Definition: vtkGenericEnSightReader.h:349
vtkGenericEnSightReader::ReadLine
int ReadLine(char result[256])
vtkGenericEnSightReader::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkGenericEnSightReader::CanReadFile
static int CanReadFile(const char *casefilename)
vtkGenericEnSightReader::GetNumberOfPointArrays
int GetNumberOfPointArrays()
vtkGenericEnSightReader::NumberOfVectorsPerNode
int NumberOfVectorsPerNode
Definition: vtkGenericEnSightReader.h:337
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkGenericEnSightReader::~vtkGenericEnSightReader
~vtkGenericEnSightReader()
vtkGenericEnSightReader::AddVariableType
void AddVariableType(int variableType)
vtkGenericEnSightReader::GetNumberOfVariables
int GetNumberOfVariables(int type)
VTKIOENSIGHT_EXPORT
#define VTKIOENSIGHT_EXPORT
Definition: vtkIOEnSightModule.h:15
vtkGenericEnSightReader::GetVariableType
int GetVariableType(int n)
vtkGenericEnSightReader::GetPointArrayName
const char * GetPointArrayName(int index)
vtkGenericEnSightReader::SetTimeValue
virtual void SetTimeValue(float value)
vtkGenericEnSightReader::AddComplexVariableDescription
void AddComplexVariableDescription(const char *description)
vtkGenericEnSightReader::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkGenericEnSightReader::NumberOfScalarsPerElement
int NumberOfScalarsPerElement
Definition: vtkGenericEnSightReader.h:339
vtkGenericEnSightReader::TimeSets
vtkDataArrayCollection * TimeSets
Definition: vtkGenericEnSightReader.h:356
vtkGenericEnSightReader::GeometryFileName
char * GeometryFileName
Definition: vtkGenericEnSightReader.h:321
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkGenericEnSightReader::MinimumTimeValue
float MinimumTimeValue
Definition: vtkGenericEnSightReader.h:350
vtkGenericEnSightReader::NumberOfTensorsSymmPerNode
int NumberOfTensorsSymmPerNode
Definition: vtkGenericEnSightReader.h:338
vtkDataArrayCollection
maintain an unordered list of dataarray objects
Definition: vtkDataArrayCollection.h:31
vtkGenericEnSightReader::TimeValueInitialized
int TimeValueInitialized
Definition: vtkGenericEnSightReader.h:354
vtkGenericEnSightReader::DestroyStringArray
void DestroyStringArray(int numStrings, char **strings)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
IMPLICIT_STRUCTURED_MODE
@ IMPLICIT_STRUCTURED_MODE
Definition: vtkGenericEnSightReader.h:50
vtkgl::n
GLclampd n
Definition: vtkgl.h:14370
vtkGenericEnSightReader::SelectionObserver
vtkCallbackCommand * SelectionObserver
Definition: vtkGenericEnSightReader.h:375
vtkGenericEnSightReader::GetDescription
const char * GetDescription(int n)
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkGenericEnSightReader::DetermineEnSightVersion
int DetermineEnSightVersion(int quiet=0)
vtkGenericEnSightReader::NumberOfVectorsPerMeasuredNode
int NumberOfVectorsPerMeasuredNode
Definition: vtkGenericEnSightReader.h:343
vtkGenericEnSightReader::GetNumberOfCellArrays
int GetNumberOfCellArrays()
vtkGenericEnSightReader::GetPointArrayStatus
int GetPointArrayStatus(const char *name)
vtkGenericEnSightReader::NumberOfScalarsPerMeasuredNode
int NumberOfScalarsPerMeasuredNode
Definition: vtkGenericEnSightReader.h:342
vtkGenericEnSightReader::CreateStringArray
char ** CreateStringArray(int numStrings)
vtkGenericEnSightReader::VariableTypes
int * VariableTypes
Definition: vtkGenericEnSightReader.h:325
vtkGenericEnSightReader::NumberOfTensorsSymmPerElement
int NumberOfTensorsSymmPerElement
Definition: vtkGenericEnSightReader.h:341
vtkGenericEnSightReader::SelectionModified
void SelectionModified()
vtkGenericEnSightReader::InsertNewPartId
int InsertNewPartId(int partId)
vtkGenericEnSightReader::ReadAllVariables
int ReadAllVariables
Definition: vtkGenericEnSightReader.h:359
vtkGenericEnSightReader::IS
istream * IS
Definition: vtkGenericEnSightReader.h:316
vtkDataArraySelection
Store on/off settings for data arrays for a vtkSource.
Definition: vtkDataArraySelection.h:34
vtkGenericEnSightReader::ComplexVariableTypes
int * ComplexVariableTypes
Definition: vtkGenericEnSightReader.h:326
vtkGenericEnSightReader::NumberOfComplexVariables
int NumberOfComplexVariables
Definition: vtkGenericEnSightReader.h:333
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkIOEnSightModule.h
vtkGenericEnSightReader::NumberOfComplexScalarsPerElement
int NumberOfComplexScalarsPerElement
Definition: vtkGenericEnSightReader.h:346
vtkGenericEnSightReader::SetByteOrderToLittleEndian
void SetByteOrderToLittleEndian()
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkGenericEnSightReader::NumberOfScalarsPerNode
int NumberOfScalarsPerNode
Definition: vtkGenericEnSightReader.h:336
vtkgl::strings
GLsizei const GLchar ** strings
Definition: vtkgl.h:14213
vtkGenericEnSightReader::FileTypes
FileTypes
Definition: vtkGenericEnSightReader.h:184
vtkGenericEnSightReader::NumberOfVectorsPerElement
int NumberOfVectorsPerElement
Definition: vtkGenericEnSightReader.h:340
vtkGenericEnSightReader::SetReaderDataArraySelectionSetsFromSelf
void SetReaderDataArraySelectionSetsFromSelf()
vtkGenericEnSightReader::TranslationTable
TranslationTableType * TranslationTable
Definition: vtkGenericEnSightReader.h:385
vtkGenericEnSightReader::SelectionModifiedCallback
static void SelectionModifiedCallback(vtkObject *caller, unsigned long eid, void *clientdata, void *calldata)
vtkGenericEnSightReader::SetPointArrayStatus
void SetPointArrayStatus(const char *name, int status)
vtkGenericEnSightReader::GetDescription
const char * GetDescription(int n, int type)
vtkgl::num
GLuint GLuint num
Definition: vtkgl.h:16907
vtkGenericEnSightReader::ReplaceWildcardsHelper
void ReplaceWildcardsHelper(char *fileName, int num)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkGenericEnSightReader
class to read any type of EnSight files
Definition: vtkGenericEnSightReader.h:55
vtkGenericEnSightReader::PointDataArraySelection
vtkDataArraySelection * PointDataArraySelection
Definition: vtkGenericEnSightReader.h:370
vtkGenericEnSightReader::ByteOrder
int ByteOrder
Definition: vtkGenericEnSightReader.h:361
vtkGenericEnSightReader::ComplexVariableDescriptions
char ** ComplexVariableDescriptions
Definition: vtkGenericEnSightReader.h:330
vtkMultiBlockDataSetAlgorithm.h
SPARSE_MODE
@ SPARSE_MODE
Definition: vtkGenericEnSightReader.h:48
vtkIdListCollection
maintain an unordered list of dataarray objects
Definition: vtkIdListCollection.h:31
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
NON_SPARSE_MODE
@ NON_SPARSE_MODE
Definition: vtkGenericEnSightReader.h:49
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkGenericEnSightReader::ClearForNewCaseFileName
virtual void ClearForNewCaseFileName()
vtkGenericEnSightReader::NumberOfComplexScalarsPerNode
int NumberOfComplexScalarsPerNode
Definition: vtkGenericEnSightReader.h:344
vtkGenericEnSightReader::Reader
vtkGenericEnSightReader * Reader
Definition: vtkGenericEnSightReader.h:318
vtkGenericEnSightReader::FilePath
char * FilePath
Definition: vtkGenericEnSightReader.h:322
vtkGenericEnSightReader::SetCellArrayStatus
void SetCellArrayStatus(const char *name, int status)
vtkGenericEnSightReader::ReplaceWildcards
int ReplaceWildcards(char *fileName, int timeSet, int fileSet)
vtkGenericEnSightReader::NumberOfVariables
int NumberOfVariables
Definition: vtkGenericEnSightReader.h:332
vtkGenericEnSightReader::SelectionModifiedDoNotCallModified
int SelectionModifiedDoNotCallModified
Definition: vtkGenericEnSightReader.h:379
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkGenericEnSightReader::FillOutputPortInformation
virtual int FillOutputPortInformation(int port, vtkInformation *info)
vtkGenericEnSightReader::CellDataArraySelection
vtkDataArraySelection * CellDataArraySelection
Definition: vtkGenericEnSightReader.h:371
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkGenericEnSightReader::VariableDescriptions
char ** VariableDescriptions
Definition: vtkGenericEnSightReader.h:329
vtkGenericEnSightReader::SetCaseFileName
void SetCaseFileName(const char *fileName)
vtkgl::index
GLuint index
Definition: vtkgl.h:11983
vtkGenericEnSightReader::GetCellArrayStatus
int GetCellArrayStatus(const char *name)
vtkGenericEnSightReader::GetByteOrderAsString
const char * GetByteOrderAsString()
vtkgl::result
GLuint64EXT * result
Definition: vtkgl.h:18868
vtkGenericEnSightReader::SetDataArraySelectionSetsFromVariables
void SetDataArraySelectionSetsFromVariables()
vtkX3D::description
@ description
Definition: vtkX3D.h:322
vtkGenericEnSightReader::SetByteOrderToBigEndian
void SetByteOrderToBigEndian()
vtkGenericEnSightReader::GetReader
vtkGenericEnSightReader * GetReader()
Definition: vtkGenericEnSightReader.h:238
vtkGenericEnSightReader::RequestInformation
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:50
vtkGenericEnSightReader::SetDataArraySelectionSetsFromReader
void SetDataArraySelectionSetsFromReader()
vtkGenericEnSightReader::ReadNextDataLine
int ReadNextDataLine(char result[256])
vtkGenericEnSightReader::New
static vtkGenericEnSightReader * New()
vtkGenericEnSightReader::CaseFileName
char * CaseFileName
Definition: vtkGenericEnSightReader.h:320
vtkGenericEnSightReader::GetCellArrayName
const char * GetCellArrayName(int index)
vtkGenericEnSightReader::EnSightVersion
int EnSightVersion
Definition: vtkGenericEnSightReader.h:366
vtkGenericEnSightReader::GetComplexDescription
const char * GetComplexDescription(int n)
vtkGenericEnSightReader::NumberOfComplexVectorsPerNode
int NumberOfComplexVectorsPerNode
Definition: vtkGenericEnSightReader.h:345
EnsightReaderCellIdMode
EnsightReaderCellIdMode
Definition: vtkGenericEnSightReader.h:46
vtkgl::type
GLuint GLuint GLsizei GLenum type
Definition: vtkgl.h:11315
vtkGenericEnSightReader::GetComplexVariableType
int GetComplexVariableType(int n)
vtkGenericEnSightReader::vtkGenericEnSightReader
vtkGenericEnSightReader()
vtkGenericEnSightReader::SetTimeSets
virtual void SetTimeSets(vtkDataArrayCollection *)
vtkGenericEnSightReader::IFile
FILE * IFile
Definition: vtkGenericEnSightReader.h:317
vtkGenericEnSightReader::AddComplexVariableType
void AddComplexVariableType(int variableType)
vtkGenericEnSightReader::ReadBinaryLine
int ReadBinaryLine(char result[80])
vtkGenericEnSightReader::AddVariableDescription
void AddVariableDescription(const char *description)
vtkGenericEnSightReader::NumberOfComplexVectorsPerElement
int NumberOfComplexVectorsPerElement
Definition: vtkGenericEnSightReader.h:347
vtkGenericEnSightReader::ParticleCoordinatesByIndex
int ParticleCoordinatesByIndex
Definition: vtkGenericEnSightReader.h:362
vtkMultiBlockDataSetAlgorithm
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Definition: vtkMultiBlockDataSetAlgorithm.h:32