VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkTecplotReader Class Reference

A concrete class to read an ASCII Tecplot file. More...

#include <vtkTecplotReader.h>

Inheritance diagram for vtkTecplotReader:
Inheritance graph
[legend]
Collaboration diagram for vtkTecplotReader:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
vtkMultiBlockDataSetAlgorithm 
Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkTecplotReaderNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
void SetFileName (const char *fileName)
const char * GetDataTitle ()
int GetNumberOfBlocks ()
const char * GetBlockName (int blockIdx)
int GetNumberOfDataAttributes ()
const char * GetDataAttributeName (int attrIndx)
int IsDataAttributeCellBased (const char *attrName)
int IsDataAttributeCellBased (int attrIndx)
int GetNumberOfDataArrays ()
const char * GetDataArrayName (int arrayIdx)
int GetDataArrayStatus (const char *arayName)
void SetDataArrayStatus (const char *arayName, int bChecked)
virtual int GetNumberOfVariables ()

Static Public Member Functions

static vtkTecplotReaderNew ()
static int IsTypeOf (const char *type)
static vtkTecplotReaderSafeDownCast (vtkObjectBase *o)

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkTecplotReader ()
 ~vtkTecplotReader ()
virtual int FillOutputPortInformation (int port, vtkInformation *info)
virtual int RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
void Init ()
void GetDataArraysList ()
void ReadFile (vtkMultiBlockDataSet *multZone)
void GetArraysFromBlockPackingZone (int numNodes, int numCells, vtkPoints *theNodes, vtkPointData *nodeData, vtkCellData *cellData)
void GetArraysFromPointPackingZone (int numNodes, vtkPoints *theNodes, vtkPointData *nodeData)
void GetStructuredGridFromBlockPackingZone (int iDimSize, int jDimSize, int kDimSize, int zoneIndx, const char *zoneName, vtkMultiBlockDataSet *multZone)
void GetStructuredGridFromPointPackingZone (int iDimSize, int jDimSize, int kDimSize, int zoneIndx, const char *zoneName, vtkMultiBlockDataSet *multZone)
void GetUnstructuredGridFromBlockPackingZone (int numNodes, int numCells, const char *cellType, int zoneIndx, const char *zoneName, vtkMultiBlockDataSet *multZone)
void GetUnstructuredGridFromPointPackingZone (int numNodes, int numCells, const char *cellType, int zoneIndx, const char *zoneName, vtkMultiBlockDataSet *multZone)
void GetUnstructuredGridCells (int numberCells, const char *cellTypeStr, vtkUnstructuredGrid *unstrctGrid)

Static Protected Member Functions

static void SelectionModifiedCallback (vtkObject *, unsigned long, void *tpReader, void *)

Protected Attributes

int NumberOfVariables
char * FileName
vtkCallbackCommandSelectionObserver
vtkDataArraySelectionDataArraySelection
vtkTecplotReaderInternal * Internal
std::string DataTitle
std::vector< intCellBased
std::vector< std::string > ZoneNames
std::vector< std::string > Variables

Detailed Description

A concrete class to read an ASCII Tecplot file.

vtkTecplotReader parses an ASCII Tecplot file to get a vtkMultiBlockDataSet object made up of several vtkDataSet objects, of which each is of type either vtkStructuredGrid or vtkUnstructuredGrid. Each vtkDataSet object maintains the geometry, topology, and some associated attributes describing physical properties.

Tecplot treats 3D coordinates (only one or two coordinates might be explicitly specified in a file) as varaibles too, whose names (e.g., 'X' / 'x' / 'I', 'Y' / 'y' / 'J', 'Z' / 'z' / 'K') are provided in the variables list (the 'VARIABLES' section). These names are then followed in the list by those of other traditional variables or attributes (node- based and / or cell-based data with the mode specified via token 'VAR LOCATION', to be extracted to create vtkPointData and / or vtkCellData). Each zone described afterwards (in the 'ZONE's section) provides the specific values of the aforementioned variables (including 3D coordinates), in the same order as indicated by the variable-names list, through either POINT-packing (i.e., tuple-based storage) or BLOCK-packing (component-based storage). In particular, the first / description line of each zone tells the type of all the constituent cells as the connectivity / topology information. In other words, the entire dataset is made up of multiple zones (blocks), of which each maintains a set of cells of the same type ('BRICK', 'TRIANGLE', 'QUADRILATERAL', 'TETRAHEDRON', and 'POINT' in Tecplot terms). In addition, the description line of each zone specifies the zone name, dimensionality information (size of each dimension for a structured zone), number of nodes, and number of cells. Information about the file format is available at http://download.tecplot.com/360/dataformat.pdf.

Warning:
vtkTecplotReader is currently a simplified ASCII Tecplot reader and some functionalities (e.g., extraction of sections 'GEOMETRY', 'TEXT', and 'DATA SETAUXDATA', access to multiple time steps, in addition to the construction of vtkRectilinearGrid and vtkImageData objects) are not supported.
Thanks:
This class is a VTK implementation of VisIt's ASCII Tecplot reader.
See also:
vtkPoints vtkStructuredGrid vtkUnstructuredGrid vtkPointData vtkCellData vtkDataSet vtkMultiBlockDataSet
Tests:
vtkTecplotReader (Tests)

Definition at line 98 of file vtkTecplotReader.h.


Member Typedef Documentation

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Definition at line 102 of file vtkTecplotReader.h.


Constructor & Destructor Documentation


Member Function Documentation

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

static int vtkTecplotReader::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

virtual int vtkTecplotReader::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

virtual vtkObjectBase* vtkTecplotReader::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

void vtkTecplotReader::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Get the number of all variables (including 3D coordinates).

void vtkTecplotReader::SetFileName ( const char *  fileName)

Specify a Tecplot ASCII file for data loading.

Get the Tecplot data title.

Get the number of blocks (i.e., zones in Tecplot terms).

const char* vtkTecplotReader::GetBlockName ( int  blockIdx)

Get the name of a block specified by a zero-based index. NULL is returned for an invalid block index.

Get the number of standard data attributes (node-based and cell-based), excluding 3D coordinates.

const char* vtkTecplotReader::GetDataAttributeName ( int  attrIndx)

Get the name of a zero-based data attribute (not 3D coordinates). NULL is returned for an invalid attribute index.

int vtkTecplotReader::IsDataAttributeCellBased ( const char *  attrName)

Get the type (0 for node-based and 1 for cell-based) of a specified data attribute (not 3D coordinates). -1 is returned for an invalid attribute name.

Get the type (0 for node-based and 1 for cell-based) of a specified data attribute (not 3D coordinates). -1 is returned for an invalid attribute index.

Get the number of all data attributes (point data and cell data).

const char* vtkTecplotReader::GetDataArrayName ( int  arrayIdx)

Get the name of a data array specified by the zero-based index (arrayIdx).

int vtkTecplotReader::GetDataArrayStatus ( const char *  arayName)

Get the status of a specific data array (0: un-selected; 1: selected).

void vtkTecplotReader::SetDataArrayStatus ( const char *  arayName,
int  bChecked 
)

Set the status of a specific data array (0: de-select; 1: select) specified by the name.

virtual int vtkTecplotReader::FillOutputPortInformation ( int  port,
vtkInformation info 
) [protected, virtual]

Fill the output port information objects for this algorithm. This is invoked by the first call to GetOutputPortInformation for each port so subclasses can specify what they can handle.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

This is called by the superclass. This is the method you should override.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

virtual int vtkTecplotReader::RequestData ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [protected, virtual]

This is called by the superclass. This is the method you should override.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

static void vtkTecplotReader::SelectionModifiedCallback ( vtkObject ,
unsigned  long,
void *  tpReader,
void *   
) [static, protected]

A callback function registered with the selection observer.

void vtkTecplotReader::Init ( ) [protected]

This function initializes the context. Note that the Tecplot file name must NOT be addressed (either specified or inited) in this function. It is addressed in constructor, destructor, and SetTecplotFile() only.

Get the data arrays list from the tecplot file header.

void vtkTecplotReader::ReadFile ( vtkMultiBlockDataSet multZone) [protected]

This function, the data loading engine, parses the Tecplot file to fill a vtkMultiBlockDataSet object.

void vtkTecplotReader::GetArraysFromBlockPackingZone ( int  numNodes,
int  numCells,
vtkPoints theNodes,
vtkPointData nodeData,
vtkCellData cellData 
) [protected]

This function extracts each variable array from a block-packing (component- based) zone and collects the 3D point coordinates in addition to data attributes (node-based and / or cell-based). Note that Tecplot treats 3D coordinates as variables too, though three special ones.

void vtkTecplotReader::GetArraysFromPointPackingZone ( int  numNodes,
vtkPoints theNodes,
vtkPointData nodeData 
) [protected]

This function extracts each variable array from a point-packing (tuple- based) zone and collects the 3D point coordbinates in addition to data attributes (node-based and / or cell-based). Note that Tecplot treats 3D coordinates as variables too, though three special ones. A point-packing zone does not contain any cell data at all, instead it is supposed to contain point data only, if any.

void vtkTecplotReader::GetStructuredGridFromBlockPackingZone ( int  iDimSize,
int  jDimSize,
int  kDimSize,
int  zoneIndx,
const char *  zoneName,
vtkMultiBlockDataSet multZone 
) [protected]

This function creates a vtkStructuredGrid object made up of a set of points and the associated attributes (node-based and / or cell-based) extracted from a block-packing (i.e., component-based) zone. This vtkStructuredGrid is then inserted, with a specified zone name, to a vtkMultiBlockDataSet object.

void vtkTecplotReader::GetStructuredGridFromPointPackingZone ( int  iDimSize,
int  jDimSize,
int  kDimSize,
int  zoneIndx,
const char *  zoneName,
vtkMultiBlockDataSet multZone 
) [protected]

This function creates a vtkStructuredGrid object made up of a set of points and the associated attributes (node-based and / or cell-based) extracted from a point-packing (i.e., tuple-based) zone. This vtkStructuredGrid is then inserted, with a specified zone name, to a vtkMultiBlockDataSet object.

void vtkTecplotReader::GetUnstructuredGridFromBlockPackingZone ( int  numNodes,
int  numCells,
const char *  cellType,
int  zoneIndx,
const char *  zoneName,
vtkMultiBlockDataSet multZone 
) [protected]

This function creates a vtkUnstructuredGrid object made up of a set of points and the associated attributes (node-based and / or cell-based) extracted from a block-packing (i.e., component-based) zone. This vtkUnstructuredGrid is then inserted, with a specified zone name, to a vtkMultiBlockDataSet object.

void vtkTecplotReader::GetUnstructuredGridFromPointPackingZone ( int  numNodes,
int  numCells,
const char *  cellType,
int  zoneIndx,
const char *  zoneName,
vtkMultiBlockDataSet multZone 
) [protected]

This function creates a vtkUnstructuredGrid object made up of a set of points and the associated attributes (node-based and / or cell-based) extracted from a point-packing (i.e., tuple-based) zone. This vtkUnstructuredGrid is then inserted, with a specified zone name, to a vtkMultiBlockDataSet object.

void vtkTecplotReader::GetUnstructuredGridCells ( int  numberCells,
const char *  cellTypeStr,
vtkUnstructuredGrid unstrctGrid 
) [protected]

This function fills an allocated vtkUnstructuredGrid object with numberCells cells of type cellTypeStr to define the grid topology.


Member Data Documentation

Definition at line 258 of file vtkTecplotReader.h.

char* vtkTecplotReader::FileName [protected]

Definition at line 259 of file vtkTecplotReader.h.

Definition at line 260 of file vtkTecplotReader.h.

Definition at line 261 of file vtkTecplotReader.h.

vtkTecplotReaderInternal* vtkTecplotReader::Internal [protected]

Definition at line 262 of file vtkTecplotReader.h.

std::string vtkTecplotReader::DataTitle [protected]

Definition at line 265 of file vtkTecplotReader.h.

std::vector< int > vtkTecplotReader::CellBased [protected]

Definition at line 266 of file vtkTecplotReader.h.

std::vector< std::string > vtkTecplotReader::ZoneNames [protected]

Definition at line 267 of file vtkTecplotReader.h.

std::vector< std::string > vtkTecplotReader::Variables [protected]

Definition at line 268 of file vtkTecplotReader.h.


The documentation for this class was generated from the following file: