VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
vtkDataSet Class Referenceabstract

abstract class to specify dataset behavior More...

#include <vtkDataSet.h>

Inheritance diagram for vtkDataSet:
[legend]
Collaboration diagram for vtkDataSet:
[legend]

Public Types

enum  FieldDataType { DATA_OBJECT_FIELD =0, POINT_DATA_FIELD =1, CELL_DATA_FIELD =2 }
 
typedef vtkDataObject Superclass
 

Public Member Functions

virtual const char * GetClassName ()
 
virtual int IsA (const char *type)
 
void PrintSelf (ostream &os, vtkIndent indent)
 
virtual void CopyStructure (vtkDataSet *ds)=0
 
virtual void CopyAttributes (vtkDataSet *ds)
 
virtual vtkIdType GetNumberOfPoints ()=0
 
virtual vtkIdType GetNumberOfCells ()=0
 
virtual double * GetPoint (vtkIdType ptId)=0
 
virtual void GetPoint (vtkIdType id, double x[3])
 
virtual vtkCell * GetCell (vtkIdType cellId)=0
 
virtual void GetCell (vtkIdType cellId, vtkGenericCell *cell)=0
 
virtual void GetCellBounds (vtkIdType cellId, double bounds[6])
 
virtual int GetCellType (vtkIdType cellId)=0
 
virtual void GetCellTypes (vtkCellTypes *types)
 
virtual void GetCellPoints (vtkIdType cellId, vtkIdList *ptIds)=0
 
virtual void GetPointCells (vtkIdType ptId, vtkIdList *cellIds)=0
 
unsigned long int GetMTime ()
 
vtkCellData * GetCellData ()
 
vtkPointDataGetPointData ()
 
virtual void Squeeze ()
 
virtual void ComputeBounds ()
 
double * GetBounds ()
 
void GetBounds (double bounds[6])
 
double * GetCenter ()
 
void GetCenter (double center[3])
 
double GetLength ()
 
void Initialize ()
 
virtual void GetScalarRange (double range[2])
 
double * GetScalarRange ()
 
virtual int GetMaxCellSize ()=0
 
unsigned long GetActualMemorySize ()
 
int CheckAttributes ()
 
virtual void GenerateGhostLevelArray ()
 
virtual vtkFieldDataGetAttributesAsFieldData (int type)
 
virtual vtkIdType GetNumberOfElements (int type)
 
virtual void GetCellNeighbors (vtkIdType cellId, vtkIdList *ptIds, vtkIdList *cellIds)
 
vtkIdType FindPoint (double x, double y, double z)
 
virtual vtkIdType FindPoint (double x[3])=0
 
virtual vtkIdType FindCell (double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)=0
 
virtual vtkIdType FindCell (double x[3], vtkCell *cell, vtkGenericCell *gencell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)=0
 
virtual vtkCell * FindAndGetCell (double x[3], vtkCell *cell, vtkIdType cellId, double tol2, int &subId, double pcoords[3], double *weights)
 
int GetDataObjectType ()
 
void ShallowCopy (vtkDataObject *src)
 
void DeepCopy (vtkDataObject *src)
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkDataSetSafeDownCast (vtkObject *o)
 
static vtkDataSetGetData (vtkInformation *info)
 
static vtkDataSetGetData (vtkInformationVector *v, int i=0)
 

Protected Member Functions

 vtkDataSet ()
 
 ~vtkDataSet ()
 
virtual void ComputeScalarRange ()
 

Protected Attributes

vtkCellData * CellData
 
vtkPointDataPointData
 
vtkTimeStamp ComputeTime
 
double Bounds [6]
 
double Center [3]
 
double ScalarRange [2]
 
vtkTimeStamp ScalarRangeComputeTime
 

Friends

class vtkSourceToDataSetFriendship
 
class vtkImageAlgorithmToDataSetFriendship
 

Detailed Description

abstract class to specify dataset behavior

vtkDataSet is an abstract class that specifies an interface for dataset objects. vtkDataSet also provides methods to provide informations about the data, such as center, bounding box, and representative length.

In vtk a dataset consists of a structure (geometry and topology) and attribute data. The structure is defined implicitly or explicitly as a collection of cells. The geometry of the structure is contained in point coordinates plus the cell interpolation functions. The topology of the dataset structure is defined by cell types and how the cells share their defining points.

Attribute data in vtk is either point data (data at points) or cell data (data at cells). Typically filters operate on point data, but some may operate on cell data, both cell and point data, either one, or none.

See Also
vtkPointSet vtkStructuredPoints vtkStructuredGrid vtkUnstructuredGrid vtkRectilinearGrid vtkPolyData vtkPointData vtkCellData vtkDataObject vtkFieldData
Examples:
vtkDataSet (Examples)
Tests:
vtkDataSet (Tests)

Definition at line 58 of file vtkDataSet.h.

Member Typedef Documentation

Definition at line 61 of file vtkDataSet.h.

Member Enumeration Documentation

Enumerator
DATA_OBJECT_FIELD 
POINT_DATA_FIELD 
CELL_DATA_FIELD 

Definition at line 276 of file vtkDataSet.h.

Constructor & Destructor Documentation

vtkDataSet::vtkDataSet ( )
protected
vtkDataSet::~vtkDataSet ( )
protected

Member Function Documentation

virtual const char* vtkDataSet::GetClassName ( )
virtual
static int vtkDataSet::IsTypeOf ( const char *  type)
static
virtual int vtkDataSet::IsA ( const char *  type)
virtual
static vtkDataSet* vtkDataSet::SafeDownCast ( vtkObject o)
static
void vtkDataSet::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
virtual void vtkDataSet::CopyStructure ( vtkDataSet ds)
pure virtual

Copy the geometric and topological structure of an object. Note that the invoking object and the object pointed to by the parameter ds must be of the same type. THIS METHOD IS NOT THREAD SAFE.

Implemented in vtkHyperOctree, vtkPolyData, vtkStructuredGrid, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

virtual void vtkDataSet::CopyAttributes ( vtkDataSet ds)
virtual

Copy the attributes associated with the specified dataset to this instance of vtkDataSet. THIS METHOD IS NOT THREAD SAFE.

virtual vtkIdType vtkDataSet::GetNumberOfPoints ( )
pure virtual

Determine the number of points composing the dataset. THIS METHOD IS THREAD SAFE

Implemented in vtkHyperOctree, vtkStructuredGrid, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

virtual vtkIdType vtkDataSet::GetNumberOfCells ( )
pure virtual

Determine the number of cells composing the dataset. THIS METHOD IS THREAD SAFE

Implemented in vtkHyperOctree, vtkPolyData, vtkStructuredGrid, vtkRectilinearGrid, and vtkImageData.

virtual double* vtkDataSet::GetPoint ( vtkIdType  ptId)
pure virtual

Get point coordinates with ptId such that: 0 <= ptId < NumberOfPoints. THIS METHOD IS NOT THREAD SAFE.

Implemented in vtkHyperOctree, vtkStructuredGrid, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

void vtkDataSet::GetPoint ( vtkIdType  id,
double  x[3] 
)
inlinevirtual

Copy point coordinates into user provided array x[3] for specified point id. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Reimplemented in vtkHyperOctree, vtkStructuredGrid, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

Definition at line 346 of file vtkDataSet.h.

virtual vtkCell* vtkDataSet::GetCell ( vtkIdType  cellId)
pure virtual

Get cell with cellId such that: 0 <= cellId < NumberOfCells. THIS METHOD IS NOT THREAD SAFE.

Implemented in vtkHyperOctree, vtkPolyData, vtkStructuredGrid, vtkRectilinearGrid, and vtkImageData.

virtual void vtkDataSet::GetCell ( vtkIdType  cellId,
vtkGenericCell cell 
)
pure virtual

Get cell with cellId such that: 0 <= cellId < NumberOfCells. This is a thread-safe alternative to the previous GetCell() method. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implemented in vtkHyperOctree, vtkPolyData, vtkStructuredGrid, vtkRectilinearGrid, and vtkImageData.

virtual void vtkDataSet::GetCellBounds ( vtkIdType  cellId,
double  bounds[6] 
)
virtual

Get the bounds of the cell with cellId such that: 0 <= cellId < NumberOfCells. A subclass may be able to determine the bounds of cell without using an expensive GetCell() method. A default implementation is provided that actually uses a GetCell() call. This is to ensure the method is available to all datasets. Subclasses should override this method to provide an efficient implementation. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Reimplemented in vtkPolyData, vtkStructuredGrid, vtkRectilinearGrid, and vtkImageData.

virtual int vtkDataSet::GetCellType ( vtkIdType  cellId)
pure virtual

Get type of cell with cellId such that: 0 <= cellId < NumberOfCells. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implemented in vtkHyperOctree, vtkPolyData, vtkRectilinearGrid, vtkStructuredGrid, and vtkImageData.

virtual void vtkDataSet::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

virtual void vtkDataSet::GetCellPoints ( vtkIdType  cellId,
vtkIdList ptIds 
)
pure virtual

Topological inquiry to get points defining cell. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implemented in vtkHyperOctree, vtkPolyData, vtkRectilinearGrid, vtkStructuredGrid, and vtkImageData.

virtual void vtkDataSet::GetPointCells ( vtkIdType  ptId,
vtkIdList cellIds 
)
pure virtual

Topological inquiry to get cells using point. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implemented in vtkHyperOctree, vtkPolyData, vtkRectilinearGrid, vtkStructuredGrid, and vtkImageData.

virtual void vtkDataSet::GetCellNeighbors ( vtkIdType  cellId,
vtkIdList ptIds,
vtkIdList cellIds 
)
virtual

Topological inquiry to get all cells using list of points exclusive of cell specified (e.g., cellId). Note that the list consists of only cells that use ALL the points provided. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Reimplemented in vtkHyperOctree, vtkPolyData, vtkRectilinearGrid, and vtkStructuredGrid.

vtkIdType vtkDataSet::FindPoint ( double  x,
double  y,
double  z 
)
inline

Locate the closest point to the global coordinate x. Return the point id. If point id < 0; then no point found. (This may arise when point is outside of dataset.) THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Definition at line 148 of file vtkDataSet.h.

virtual vtkIdType vtkDataSet::FindPoint ( double  x[3])
pure virtual

Locate the closest point to the global coordinate x. Return the point id. If point id < 0; then no point found. (This may arise when point is outside of dataset.) THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implemented in vtkHyperOctree, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

virtual vtkIdType vtkDataSet::FindCell ( double  x[3],
vtkCell *  cell,
vtkIdType  cellId,
double  tol2,
int &  subId,
double  pcoords[3],
double *  weights 
)
pure virtual

Locate cell based on global coordinate x and tolerance squared. If cell and cellId is non-NULL, then search starts from this cell and looks at immediate neighbors. Returns cellId >= 0 if inside, < 0 otherwise. The parametric coordinates are provided in pcoords[3]. The interpolation weights are returned in weights[]. (The number of weights is equal to the number of points in the found cell). Tolerance is used to control how close the point is to be considered "in" the cell. THIS METHOD IS NOT THREAD SAFE.

Implemented in vtkHyperOctree, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

virtual vtkIdType vtkDataSet::FindCell ( double  x[3],
vtkCell *  cell,
vtkGenericCell gencell,
vtkIdType  cellId,
double  tol2,
int &  subId,
double  pcoords[3],
double *  weights 
)
pure virtual

This is a version of the above method that can be used with multithreaded applications. A vtkGenericCell must be passed in to be used in internal calls that might be made to GetCell() THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Implemented in vtkHyperOctree, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

virtual vtkCell* vtkDataSet::FindAndGetCell ( double  x[3],
vtkCell *  cell,
vtkIdType  cellId,
double  tol2,
int &  subId,
double  pcoords[3],
double *  weights 
)
virtual

Locate the cell that contains a point and return the cell. Also returns the subcell id, parametric coordinates and weights for subsequent interpolation. This method combines the derived class methods int FindCell and vtkCell *GetCell. Derived classes may provide a more efficient implementation. See for example vtkStructuredPoints. THIS METHOD IS NOT THREAD SAFE.

Reimplemented in vtkRectilinearGrid, and vtkImageData.

unsigned long int vtkDataSet::GetMTime ( )

Datasets are composite objects and need to check each part for MTime THIS METHOD IS THREAD SAFE

vtkCellData* vtkDataSet::GetCellData ( )
inline

Return a pointer to this dataset's cell data. THIS METHOD IS THREAD SAFE

Definition at line 201 of file vtkDataSet.h.

vtkPointData* vtkDataSet::GetPointData ( )
inline

Return a pointer to this dataset's point data. THIS METHOD IS THREAD SAFE

Definition at line 205 of file vtkDataSet.h.

virtual void vtkDataSet::Squeeze ( )
virtual

Reclaim any extra memory used to store data. THIS METHOD IS NOT THREAD SAFE.

Reimplemented in vtkPolyData, and vtkPointSet.

virtual void vtkDataSet::ComputeBounds ( )
virtual

Compute the data bounding box from data points. THIS METHOD IS NOT THREAD SAFE.

Reimplemented in vtkHyperOctree, vtkPolyData, vtkRectilinearGrid, vtkImageData, and vtkPointSet.

double* vtkDataSet::GetBounds ( )

Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax). THIS METHOD IS NOT THREAD SAFE.

void vtkDataSet::GetBounds ( double  bounds[6])

Return a pointer to the geometry bounding box in the form (xmin,xmax, ymin,ymax, zmin,zmax). THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

double* vtkDataSet::GetCenter ( )

Get the center of the bounding box. THIS METHOD IS NOT THREAD SAFE.

void vtkDataSet::GetCenter ( double  center[3])

Get the center of the bounding box. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

double vtkDataSet::GetLength ( )

Return the length of the diagonal of the bounding box. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

void vtkDataSet::Initialize ( )

Restore data object to initial state, THIS METHOD IS NOT THREAD SAFE.

virtual void vtkDataSet::GetScalarRange ( double  range[2])
virtual

Convenience method to get the range of the scalar data (if there is any scalar data). Returns the (min/max) range of combined point and cell data. If there are no point or cell scalars the method will return (0,1). Note: Update needs to be called to create the scalars. THIS METHOD IS THREAD SAFE IF FIRST CALLED FROM A SINGLE THREAD AND THE DATASET IS NOT MODIFIED

Reimplemented in vtkStructuredGrid.

double* vtkDataSet::GetScalarRange ( )

Convenience method to get the range of the scalar data (if there is any scalar data). THIS METHOD IS NOT THREAD SAFE.

virtual int vtkDataSet::GetMaxCellSize ( )
pure virtual

Convenience method returns largest cell size in dataset. This is generally used to allocate memory for supporting data structures. THIS METHOD IS THREAD SAFE

Implemented in vtkHyperOctree, vtkPolyData, vtkRectilinearGrid, vtkStructuredGrid, and vtkImageData.

unsigned long vtkDataSet::GetActualMemorySize ( )

Return the actual size of the data in kilobytes. This number is valid only after the pipeline has updated. The memory size returned is guaranteed to be greater than or equal to the memory required to represent the data (e.g., extra space in arrays, etc. are not included in the return value). THIS METHOD IS THREAD SAFE.

int vtkDataSet::GetDataObjectType ( )
inline

Return the type of data object.

Definition at line 265 of file vtkDataSet.h.

void vtkDataSet::ShallowCopy ( vtkDataObject src)

Shallow and Deep copy.

void vtkDataSet::DeepCopy ( vtkDataObject src)

Shallow and Deep copy.

int vtkDataSet::CheckAttributes ( )

This method checks to see if the cell and point attributes match the geometry. Many filters will crash if the number of tupples in an array is less than the number of points/cells. This method returns 1 if there is a mismatch, and 0 if everything is ok. It prints an error if an array is too short, and a warning if an array is too long.

virtual void vtkDataSet::GenerateGhostLevelArray ( )
virtual

Normally called by pipeline executives or algoritgms only. This method computes the ghost arrays for a given dataset.

static vtkDataSet* vtkDataSet::GetData ( vtkInformation info)
static

Retrieve an instance of this class from an information object.

static vtkDataSet* vtkDataSet::GetData ( vtkInformationVector v,
int  i = 0 
)
static

Retrieve an instance of this class from an information object.

virtual vtkFieldData* vtkDataSet::GetAttributesAsFieldData ( int  type)
virtual

Returns the attributes of the data object as a vtkFieldData. This returns non-null values in all the same cases as GetAttributes, in addition to the case of FIELD, which will return the field data for any vtkDataObject subclass.

virtual vtkIdType vtkDataSet::GetNumberOfElements ( int  type)
virtual

Get the number of elements for a specific attribute type (POINT, CELL, etc.).

virtual void vtkDataSet::ComputeScalarRange ( )
protectedvirtual

Compute the range of the scalars and cache it into ScalarRange only if the cache became invalid (ScalarRangeComputeTime).

Friends And Related Function Documentation

friend class vtkSourceToDataSetFriendship
friend

Definition at line 338 of file vtkDataSet.h.

friend class vtkImageAlgorithmToDataSetFriendship
friend

Definition at line 339 of file vtkDataSet.h.

Member Data Documentation

vtkCellData* vtkDataSet::CellData
protected

Definition at line 323 of file vtkDataSet.h.

vtkPointData* vtkDataSet::PointData
protected

Definition at line 324 of file vtkDataSet.h.

vtkTimeStamp vtkDataSet::ComputeTime
protected

Definition at line 325 of file vtkDataSet.h.

double vtkDataSet::Bounds[6]
protected

Definition at line 326 of file vtkDataSet.h.

double vtkDataSet::Center[3]
protected

Definition at line 327 of file vtkDataSet.h.

double vtkDataSet::ScalarRange[2]
protected

Definition at line 330 of file vtkDataSet.h.

vtkTimeStamp vtkDataSet::ScalarRangeComputeTime
protected

Definition at line 333 of file vtkDataSet.h.


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