VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
vtkDataSetAlgorithm Class Reference

Superclass for algorithms that produce output of the same type as input. More...

#include <vtkDataSetAlgorithm.h>

Inherits vtkAlgorithm.

Inherited by vtkArrayCalculator, vtkAttributeDataToFieldDataFilter, vtkBrownianPoints, vtkCastToConcrete, vtkCellDataToPointData, vtkCellDerivatives, vtkCellQuality, vtkDataObjectToDataSetFilter, vtkDataSetGradient, vtkDataSetGradientPrecompute, vtkDicer, vtkElevationFilter, vtkExtractTensorComponents, vtkExtractVectorComponents, vtkFieldDataToAttributeDataFilter, vtkGenericProbeFilter, vtkGradientFilter, vtkHyperOctreeDepth, vtkHyperOctreeLimiter, vtkIdFilter, vtkImplicitTextureCoords, vtkInterpolateDataSetAttributes, vtkMaskFields, vtkMatrixMathFilter, vtkMergeDataObjectFilter, vtkMergeFields, vtkMergeFilter, vtkMeshQuality, vtkPassThroughFilter, vtkPDataSetReader, vtkPieceScalars, vtkPointDataToCellData, vtkProbeFilter, vtkProbePolyhedron, vtkProcessIdScalars, vtkProgrammableAttributeDataFilter, vtkProgrammableSource, vtkProjectedTexture, vtkQuadraturePointInterpolator, vtkQuadratureSchemeDictionaryGenerator, vtkRandomAttributeGenerator, vtkRearrangeFields, vtkSelectEnclosedPoints, vtkSimpleElevationFilter, vtkSplitField, vtkTextureMapToCylinder, vtkTextureMapToPlane, vtkTextureMapToSphere, vtkThresholdTextureCoords, vtkTransformTextureCoords, vtkVectorDot, and vtkVectorNorm.

Collaboration diagram for vtkDataSetAlgorithm:
Collaboration graph
[legend]

List of all members.

Public Types

typedef vtkAlgorithm Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkDataSetAlgorithmNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
vtkDataObjectGetInput ()
vtkPolyDataGetPolyDataOutput ()
vtkStructuredPointsGetStructuredPointsOutput ()
vtkImageDataGetImageDataOutput ()
vtkStructuredGridGetStructuredGridOutput ()
vtkUnstructuredGridGetUnstructuredGridOutput ()
vtkRectilinearGridGetRectilinearGridOutput ()
vtkDataSetGetOutput ()
vtkDataSetGetOutput (int)
void SetInputData (vtkDataObject *)
void SetInputData (int, vtkDataObject *)
void SetInputData (vtkDataSet *)
void SetInputData (int, vtkDataSet *)
void AddInputData (vtkDataObject *)
void AddInputData (vtkDataSet *)
void AddInputData (int, vtkDataSet *)
void AddInputData (int, vtkDataObject *)
virtual int ProcessRequest (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)

Static Public Member Functions

static vtkDataSetAlgorithmNew ()
static int IsTypeOf (const char *type)
static vtkDataSetAlgorithmSafeDownCast (vtkObjectBase *o)

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkDataSetAlgorithm ()
 ~vtkDataSetAlgorithm ()
virtual int FillOutputPortInformation (int port, vtkInformation *info)
virtual int FillInputPortInformation (int port, vtkInformation *info)
vtkDataObjectGetInput (int port)
virtual int RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int RequestDataObject (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)

Detailed Description

Superclass for algorithms that produce output of the same type as input.

vtkDataSetAlgorithm is a convenience class to make writing algorithms easier. It is also designed to help transition old algorithms to the new pipeline architecture. There are some assumptions and defaults made by this class you should be aware of. This class defaults such that your filter will have one input port and one output port. If that is not the case simply change it with SetNumberOfInputPorts etc. See this classes contstructor for the default. This class also provides a FillInputPortInfo method that by default says that all inputs will be DataSet. If that isn't the case then please override this method in your subclass. This class breaks out the downstream requests into separate functions such as RequestDataObject RequestData and RequestInformation. The default implementation of RequestDataObject will create an output data of the same type as the input.

Tests:
vtkDataSetAlgorithm (Tests)

Definition at line 50 of file vtkDataSetAlgorithm.h.


Member Typedef Documentation


Constructor & Destructor Documentation

Definition at line 114 of file vtkDataSetAlgorithm.h.


Member Function Documentation

static int vtkDataSetAlgorithm::IsTypeOf ( const char *  name) [static]
virtual int vtkDataSetAlgorithm::IsA ( const char *  name) [virtual]
virtual vtkObjectBase* vtkDataSetAlgorithm::NewInstanceInternal ( ) const [protected, virtual]
void vtkDataSetAlgorithm::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Get the output data object for a port on this algorithm.

Reimplemented in vtkDataObjectToDataSetFilter.

Get the output data object for a port on this algorithm.

Reimplemented in vtkDataObjectToDataSetFilter.

Get the input data object. This method is not recommended for use, but lots of old style filters use it.

Reimplemented in vtkDataObjectToDataSetFilter.

Get the output as vtkPolyData.

Reimplemented in vtkDataObjectToDataSetFilter, and vtkProgrammableSource.

Get the output as vtkStructuredPoints.

Reimplemented in vtkDataObjectToDataSetFilter, and vtkProgrammableSource.

Get the output as vtkStructuredPoints.

Get the output as vtkStructuredGrid.

Reimplemented in vtkDataObjectToDataSetFilter, and vtkProgrammableSource.

Get the output as vtkUnstructuredGrid.

Reimplemented in vtkDataObjectToDataSetFilter, and vtkProgrammableSource.

Get the output as vtkRectilinearGrid.

Reimplemented in vtkDataObjectToDataSetFilter, and vtkProgrammableSource.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use SetInputConnection() to setup a pipeline connection.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use SetInputConnection() to setup a pipeline connection.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use SetInputConnection() to setup a pipeline connection.

Reimplemented in vtkExtractVectorComponents.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use SetInputConnection() to setup a pipeline connection.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use AddInputConnection() to setup a pipeline connection.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use AddInputConnection() to setup a pipeline connection.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use AddInputConnection() to setup a pipeline connection.

Assign a data object as input. Note that this method does not establish a pipeline connection. Use AddInputConnection() to setup a pipeline connection.

virtual int vtkDataSetAlgorithm::ProcessRequest ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [virtual]

see vtkAlgorithm for details

Reimplemented from vtkAlgorithm.

virtual int vtkDataSetAlgorithm::RequestInformation ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [inline, protected, virtual]

This is called within ProcessRequest when a request asks for Information. Typically an algorithm provides whatever lightweight information about its output that it can here without doing any lengthy computations. This happens in the first pass of the pipeline execution.

Reimplemented in vtkDataObjectToDataSetFilter, vtkProbeFilter, vtkProbePolyhedron, vtkProgrammableSource, vtkGenericProbeFilter, vtkCastToConcrete, and vtkPProbeFilter.

Definition at line 122 of file vtkDataSetAlgorithm.h.

virtual int vtkDataSetAlgorithm::RequestUpdateExtent ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [inline, protected, virtual]

This is called within ProcessRequest when each filter in the pipeline decides what portion of its input is needed to create the portion of its output that the downstream filter asks for. This happens during the second pass in the pipeline execution process.

Reimplemented in vtkDataObjectToDataSetFilter, vtkFieldDataToAttributeDataFilter, vtkMergeFilter, vtkProbeFilter, vtkGradientFilter, vtkProbePolyhedron, vtkPProbeFilter, and vtkPCellDataToPointData.

Definition at line 132 of file vtkDataSetAlgorithm.h.

virtual int vtkDataSetAlgorithm::RequestDataObject ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
) [protected, virtual]

This is called within ProcessRequest to when a request asks the algorithm to create empty output data objects. This typically happens early on in the execution of the pipeline. The default behavior is to create an output DataSet of the same type as the input for each output port. This method can be overridden to change the output data type of an algorithm. This happens in the third pass of the pipeline execution.

Reimplemented in vtkDataObjectToDataSetFilter, vtkProgrammableSource, and vtkPDataSetReader.

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

This is called within ProcessRequest when a request asks the algorithm to do its work. This is the method you should override to do whatever the algorithm is designed to do. This happens during the fourth pass in the pipeline execution process.

Reimplemented in vtkMeshQuality, vtkCellQuality, vtkRandomAttributeGenerator, vtkDataObjectToDataSetFilter, vtkFieldDataToAttributeDataFilter, vtkArrayCalculator, vtkRearrangeFields, vtkExtractTensorComponents, vtkMergeFilter, vtkSelectEnclosedPoints, vtkMaskFields, vtkSplitField, vtkMergeFields, vtkGradientFilter, vtkProgrammableAttributeDataFilter, vtkProbeFilter, vtkTransformTextureCoords, vtkProbePolyhedron, vtkProjectedTexture, vtkTextureMapToPlane, vtkCellDerivatives, vtkProgrammableSource, vtkTextureMapToCylinder, vtkImplicitTextureCoords, vtkThresholdTextureCoords, vtkTextureMapToSphere, vtkCompositeDataProbeFilter, vtkMatrixMathFilter, vtkIdFilter, vtkExtractVectorComponents, vtkVectorNorm, vtkGenericProbeFilter, vtkMergeDataObjectFilter, vtkProcessIdScalars, vtkPDataSetReader, vtkCellDataToPointData, vtkElevationFilter, vtkAttributeDataToFieldDataFilter, vtkPointDataToCellData, vtkPieceScalars, vtkInterpolateDataSetAttributes, vtkCastToConcrete, vtkOBBDicer, vtkVectorDot, vtkBrownianPoints, vtkPProbeFilter, vtkSimpleElevationFilter, vtkPCellDataToPointData, vtkDataSetGradient, vtkQuadraturePointInterpolator, vtkQuadratureSchemeDictionaryGenerator, vtkHyperOctreeLimiter, vtkDataSetGradientPrecompute, vtkPassThroughFilter, and vtkHyperOctreeDepth.

Definition at line 159 of file vtkDataSetAlgorithm.h.

virtual int vtkDataSetAlgorithm::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 vtkAlgorithm.

Reimplemented in vtkHyperOctreeLimiter, vtkQuadraturePointInterpolator, vtkQuadratureSchemeDictionaryGenerator, and vtkHyperOctreeDepth.

virtual int vtkDataSetAlgorithm::FillInputPortInformation ( int  port,
vtkInformation info 
) [protected, virtual]

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

Reimplemented from vtkAlgorithm.

Reimplemented in vtkDataObjectToDataSetFilter, vtkMergeFilter, vtkSelectEnclosedPoints, vtkGenericProbeFilter, vtkMergeDataObjectFilter, vtkCompositeDataProbeFilter, vtkInterpolateDataSetAttributes, vtkPProbeFilter, vtkHyperOctreeLimiter, vtkQuadraturePointInterpolator, vtkQuadratureSchemeDictionaryGenerator, and vtkHyperOctreeDepth.


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