Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkGenericDataSet Class Reference

#include <vtkGenericDataSet.h>

Inheritance diagram for vtkGenericDataSet:

Inheritance graph
[legend]
Collaboration diagram for vtkGenericDataSet:

Collaboration graph
[legend]
List of all members.

Detailed Description

defines dataset interface

In VTK, spatial-temporal data is defined in terms of a dataset. The dataset consists of geometry (e.g., points), topology (e.g., cells), and attributes (e.g., scalars, vectors, etc.) vtkGenericDataSet is an abstract class defining this abstraction.

Since vtkGenericDataSet provides a general interface to manipulate data, algorithms that process it tend to be slower than those specialized for a particular data type. For this reason, there are concrete, non-abstract subclasses that represent and provide access to data more efficiently. Note that filters to process this dataset type are currently found in the VTK/GenericFiltering/ subdirectory.

Unlike the vtkDataSet class, vtkGenericDataSet provides a more flexible interface including support for iterators. vtkGenericDataSet is also designed to interface VTK to external simulation packages without the penalty of copying memory (see VTK/GenericFiltering/README.html) for more information. Thus vtkGenericDataSet plays a central role in the adaptor framework.

Please note that this class introduces the concepts of "boundary cells". This refers to the boundaries of a cell (e.g., face of a tetrahedron) which may in turn be represented as a cell. Boundary cells are derivative topological features of cells, and are therefore never explicitly represented in the dataset. Often in visualization algorithms, looping over boundaries (edges or faces) is employed, while the actual dataset cells may not traversed. Thus there are methods to loop over these boundary cells.

Finally, as a point of clarification, points are not the same as vertices. Vertices refer to points, and points specify a position is space. Vertices are a type of 0-D cell. Also, the concept of a DOFNode, which is where coefficients for higher-order cells are kept, is a new concept introduced by the adaptor framework (see vtkGenericAdaptorCell for more information).

See also:
vtkGenericAdaptorCell vtkDataSet
Created by:
  • Bertel, Francois
CVS contributions (if > 5%):
  • Bertel, Francois (97%)
CVS logs (CVSweb):
  • .cxx (/Filtering/vtkGenericDataSet.cxx)
  • .h (/Filtering/vtkGenericDataSet.h)
Tests:
vtkGenericDataSet (Tests)

Definition at line 81 of file vtkGenericDataSet.h.

[NOHEADER]

typedef vtkDataObject Superclass
virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
int IsTypeOf (const char *type)
vtkGenericDataSetSafeDownCast (vtkObject *o)

Public Member Functions

virtual vtkIdType GetNumberOfPoints ()=0
virtual vtkIdType GetNumberOfCells (int dim=-1)=0
virtual int GetCellDimension ()=0
virtual void GetCellTypes (vtkCellTypes *types)
virtual vtkGenericCellIteratorNewCellIterator (int dim=-1)=0
virtual vtkGenericPointIteratorNewPointIterator ()=0
virtual unsigned long int GetMTime ()
virtual void ComputeBounds ()=0
virtual double * GetBounds ()
virtual void GetBounds (double bounds[6])
virtual double * GetCenter ()
virtual void GetCenter (double center[3])
virtual double GetLength ()
virtual unsigned long GetActualMemorySize ()
int GetDataObjectType ()
virtual vtkIdType GetEstimatedSize ()=0
virtual vtkGenericCellIteratorNewBoundaryIterator (int dim=-1, int exteriorOnly=0)=0
virtual vtkIdType FindCell (double x[3], vtkGenericCellIterator *&cell, double tol2, int &subId, double pcoords[3])=0
virtual void FindPoint (double x[3], vtkGenericPointIterator *p)=0
virtual vtkGenericAttributeCollectionGetAttributes ()
virtual void SetTessellator (vtkGenericCellTessellator *tessellator)
virtual vtkGenericCellTessellatorGetTessellator ()
void SetUpdateExtent (int piece, int numPieces, int ghostLevel)
virtual void SetUpdateExtent (int ext[6])
void SetUpdateExtent (int x1, int x2, int y1, int y2, int z1, int z2)

Protected Member Functions

 vtkGenericDataSet ()
virtual ~vtkGenericDataSet ()

Protected Attributes

vtkGenericAttributeCollectionAttributes
vtkGenericCellTessellatorTessellator
double Bounds [6]
double Center [3]
vtkTimeStamp ComputeTime


Member Typedef Documentation

typedef vtkDataObject vtkGenericDataSet::Superclass
 

Standard VTK type and print macros.

Reimplemented from vtkDataObject.

Definition at line 86 of file vtkGenericDataSet.h.


Constructor & Destructor Documentation

vtkGenericDataSet::vtkGenericDataSet  )  [protected]
 

Constructor with uninitialized bounds (1,-1, 1,-1, 1,-1), empty attribute collection and default tessellator.

virtual vtkGenericDataSet::~vtkGenericDataSet  )  [protected, virtual]
 


Member Function Documentation

virtual const char* vtkGenericDataSet::GetClassName  )  [virtual]
 

Standard VTK type and print macros.

Reimplemented from vtkDataObject.

int vtkGenericDataSet::IsTypeOf const char *  type  )  [static]
 

Standard VTK type and print macros.

Reimplemented from vtkDataObject.

virtual int vtkGenericDataSet::IsA const char *  type  )  [virtual]
 

Standard VTK type and print macros.

Reimplemented from vtkDataObject.

vtkGenericDataSet* vtkGenericDataSet::SafeDownCast vtkObject o  )  [static]
 

Standard VTK type and print macros.

Reimplemented from vtkDataObject.

void vtkGenericDataSet::PrintSelf ostream &  os,
vtkIndent  indent
[virtual]
 

Standard VTK type and print macros.

Reimplemented from vtkDataObject.

virtual vtkIdType vtkGenericDataSet::GetNumberOfPoints  )  [pure virtual]
 

Return the number of points composing the dataset. See NewPointIterator() for more details.

Postcondition:
positive_result: result>=0

virtual vtkIdType vtkGenericDataSet::GetNumberOfCells int  dim = -1  )  [pure virtual]
 

Return the number of cells that explicitly define the dataset. See NewCellIterator() for more details.

Precondition:
valid_dim_range: (dim>=-1) && (dim<=3)
Postcondition:
positive_result: result>=0

virtual int vtkGenericDataSet::GetCellDimension  )  [pure virtual]
 

Return -1 if the dataset is explicitly defined by cells of varying dimensions or if there are no cells. If the dataset is explicitly defined by cells of a unique dimension, return this dimension.

Postcondition:
valid_range: (result>=-1) && (result<=3)

virtual void vtkGenericDataSet::GetCellTypes vtkCellTypes types  )  [virtual]
 

Get a list of types of cells in a dataset. The list consists of an array of types (not necessarily in any order), with a single entry per type. For example a dataset 5 triangles, 3 lines, and 100 hexahedra would result a list of three entries, corresponding to the types VTK_TRIANGLE, VTK_LINE, and VTK_HEXAHEDRON. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Precondition:
types_exist: types!=0

virtual vtkGenericCellIterator* vtkGenericDataSet::NewCellIterator int  dim = -1  )  [pure virtual]
 

Return an iterator to traverse cells of dimension `dim' (or all dimensions if -1) that explicitly define the dataset. For instance, it will return only tetrahedra if the mesh is defined by tetrahedra. If the mesh is composed of two parts, one with tetrahedra and another part with triangles, it will return both, but will not return the boundary edges and vertices of these cells. The user is responsible for deleting the iterator.

Precondition:
valid_dim_range: (dim>=-1) && (dim<=3)
Postcondition:
result_exists: result!=0

virtual vtkGenericCellIterator* vtkGenericDataSet::NewBoundaryIterator int  dim = -1,
int  exteriorOnly = 0
[pure virtual]
 

Return an iterator to traverse cell boundaries of dimension `dim' (or all dimensions if -1) of the dataset. If `exteriorOnly' is true, only the exterior cell boundaries of the dataset will be returned, otherwise it will return exterior and interior cell boundaries. The user is responsible for deleting the iterator.

Precondition:
valid_dim_range: (dim>=-1) && (dim<=2)
Postcondition:
result_exists: result!=0

virtual vtkGenericPointIterator* vtkGenericDataSet::NewPointIterator  )  [pure virtual]
 

Return an iterator to traverse the points composing the dataset; they can be points that define a cell or isolated. The user is responsible for deleting the iterator.

Postcondition:
result_exists: result!=0

virtual vtkIdType vtkGenericDataSet::FindCell double  x[3],
vtkGenericCellIterator *&  cell,
double  tol2,
int &  subId,
double  pcoords[3]
[pure virtual]
 

Locate the closest cell to position `x' (global coordinates) with respect to a tolerance squared `tol2' and an initial guess `cell' (if valid). The result consists in the `cell', the `subId' of the sub-cell (0 if primary cell), the parametric coordinates `pcoord' of the position. It returns whether the position is inside the cell or not. Tolerance is used to control how close the point is to be considered "in" the cell. THIS METHOD IS NOT THREAD SAFE.

Precondition:
not_empty: GetNumberOfCells()>0

cell_exists: cell!=0

positive_tolerance: tol2>0

virtual void vtkGenericDataSet::FindPoint double  x[3],
vtkGenericPointIterator p
[pure virtual]
 

Locate the closest point `p' to position `x' (global coordinates).

Precondition:
not_empty: GetNumberOfPoints()>0

p_exists: p!=0

virtual unsigned long int vtkGenericDataSet::GetMTime  )  [virtual]
 

Datasets are composite objects and need to check each part for their modified time.

Reimplemented from vtkDataObject.

virtual void vtkGenericDataSet::ComputeBounds  )  [pure virtual]
 

Compute the geometry bounding box.

virtual double* vtkGenericDataSet::GetBounds  )  [virtual]
 

Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax). The return value is VOLATILE.

Postcondition:
result_exists: result!=0

virtual void vtkGenericDataSet::GetBounds double  bounds[6]  )  [virtual]
 

Return the geometry bounding box in global coordinates in the form (xmin,xmax, ymin,ymax, zmin,zmax) in the `bounds' array.

virtual double* vtkGenericDataSet::GetCenter  )  [virtual]
 

Get the center of the bounding box in global coordinates. The return value is VOLATILE.

Postcondition:
result_exists: result!=0

virtual void vtkGenericDataSet::GetCenter double  center[3]  )  [virtual]
 

Get the center of the bounding box in global coordinates.

virtual double vtkGenericDataSet::GetLength  )  [virtual]
 

Return the length of the diagonal of the bounding box.

Postcondition:
positive_result: result>=0

virtual vtkGenericAttributeCollection* vtkGenericDataSet::GetAttributes  )  [virtual]
 

Get the collection of attributes associated with this dataset.

virtual void vtkGenericDataSet::SetTessellator vtkGenericCellTessellator tessellator  )  [virtual]
 

Set/Get a cell tessellator if cells must be tessellated during processing.

Precondition:
tessellator_exists: tessellator!=0

virtual vtkGenericCellTessellator* vtkGenericDataSet::GetTessellator  )  [virtual]
 

Set/Get a cell tessellator if cells must be tessellated during processing.

Precondition:
tessellator_exists: tessellator!=0

void vtkGenericDataSet::SetUpdateExtent int  piece,
int  numPieces,
int  ghostLevel
 

For streaming. User/next filter specifies which piece the want updated. The source of this poly data has to return exactly this piece.

virtual void vtkGenericDataSet::SetUpdateExtent int  ext[6]  )  [inline, virtual]
 

For streaming. User/next filter specifies which piece the want updated. The source of this poly data has to return exactly this piece.

Reimplemented from vtkDataObject.

Definition at line 208 of file vtkGenericDataSet.h.

void vtkGenericDataSet::SetUpdateExtent int  x1,
int  x2,
int  y1,
int  y2,
int  z1,
int  z2
[inline, virtual]
 

For streaming. User/next filter specifies which piece the want updated. The source of this poly data has to return exactly this piece.

Reimplemented from vtkDataObject.

Definition at line 212 of file vtkGenericDataSet.h.

virtual unsigned long vtkGenericDataSet::GetActualMemorySize  )  [virtual]
 

Actual size of the data in kilobytes; only valid after the pipeline has updated. It is guaranteed to be greater than or equal to the memory required to represent the data.

Reimplemented from vtkDataObject.

int vtkGenericDataSet::GetDataObjectType  )  [virtual]
 

Return the type of data object.

Reimplemented from vtkDataObject.

virtual vtkIdType vtkGenericDataSet::GetEstimatedSize  )  [pure virtual]
 

Estimated size needed after tessellation (or special operation)


Member Data Documentation

vtkGenericAttributeCollection* vtkGenericDataSet::Attributes [protected]
 

Definition at line 236 of file vtkGenericDataSet.h.

vtkGenericCellTessellator* vtkGenericDataSet::Tessellator [protected]
 

Definition at line 239 of file vtkGenericDataSet.h.

double vtkGenericDataSet::Bounds[6] [protected]
 

Definition at line 241 of file vtkGenericDataSet.h.

double vtkGenericDataSet::Center[3] [protected]
 

Definition at line 242 of file vtkGenericDataSet.h.

vtkTimeStamp vtkGenericDataSet::ComputeTime [protected]
 

Definition at line 243 of file vtkGenericDataSet.h.


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