VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
vtkDataObjectAlgorithm Class Reference

Superclass for algorithms that produce only data object as output. More...

#include <vtkDataObjectAlgorithm.h>

Inherits vtkAlgorithm.

Public Types

typedef vtkAlgorithm Superclass
 

Public Member Functions

virtual const char * GetClassName ()
 
virtual int IsA (const char *type)
 
void PrintSelf (ostream &os, vtkIndent indent)
 
vtkDataObjectGetInput ()
 
vtkDataObjectGetInput (int port)
 
vtkDataObjectGetOutput ()
 
vtkDataObjectGetOutput (int)
 
virtual void SetOutput (vtkDataObject *d)
 
virtual int ProcessRequest (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
void SetInput (vtkDataObject *)
 
void SetInput (int, vtkDataObject *)
 
void AddInput (vtkDataObject *)
 
void AddInput (int, vtkDataObject *)
 

Static Public Member Functions

static vtkDataObjectAlgorithmNew ()
 
static int IsTypeOf (const char *type)
 
static vtkDataObjectAlgorithmSafeDownCast (vtkObject *o)
 

Protected Member Functions

 vtkDataObjectAlgorithm ()
 
 ~vtkDataObjectAlgorithm ()
 
virtual int RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 
virtual int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 
int UpdateExtentIsEmpty (vtkDataObject *output)
 
virtual int FillOutputPortInformation (int port, vtkInformation *info)
 
virtual int FillInputPortInformation (int port, vtkInformation *info)
 
virtual int RequestDataObject (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
 
virtual void ExecuteData (vtkDataObject *output)
 
virtual void Execute ()
 

Detailed Description

Superclass for algorithms that produce only data object as output.

vtkDataObjectAlgorithm is a convenience class to make writing algorithms easier. It is also designed to help transition old algorithms to the new pipeline architecture. Ther 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 constructor for the default. This class also provides a FillInputPortInfo method that by default says that all inputs will be DataObject. If that isn't the case then please override this method in your subclass. This class breaks out the downstream requests into seperate functions such as ExecuteData and ExecuteInformation. For new algorithms you should implement RequestData( request, inputVec, outputVec) but for older filters there is a default implementation that calls the old ExecuteData(output) signature, for even older filters that don;t implement ExecuteData the default implementation calls the even older Execute() signature.

Definition at line 45 of file vtkDataObjectAlgorithm.h.

Member Typedef Documentation

typedef vtkAlgorithm vtkDataObjectAlgorithm::Superclass

Definition at line 49 of file vtkDataObjectAlgorithm.h.

Constructor & Destructor Documentation

vtkDataObjectAlgorithm::vtkDataObjectAlgorithm ( )
protected
vtkDataObjectAlgorithm::~vtkDataObjectAlgorithm ( )
protected

Member Function Documentation

static vtkDataObjectAlgorithm* vtkDataObjectAlgorithm::New ( )
static
virtual const char* vtkDataObjectAlgorithm::GetClassName ( )
virtual
static int vtkDataObjectAlgorithm::IsTypeOf ( const char *  type)
static
virtual int vtkDataObjectAlgorithm::IsA ( const char *  type)
virtual
static vtkDataObjectAlgorithm* vtkDataObjectAlgorithm::SafeDownCast ( vtkObject o)
static
void vtkDataObjectAlgorithm::PrintSelf ( ostream &  os,
vtkIndent  indent 
)
vtkDataObject* vtkDataObjectAlgorithm::GetOutput ( )

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

vtkDataObject* vtkDataObjectAlgorithm::GetOutput ( int  )

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

virtual void vtkDataObjectAlgorithm::SetOutput ( vtkDataObject d)
virtual

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

virtual int vtkDataObjectAlgorithm::ProcessRequest ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
)
virtual

see vtkAlgorithm for details

vtkDataObject* vtkDataObjectAlgorithm::GetInput ( )
vtkDataObject* vtkDataObjectAlgorithm::GetInput ( int  port)
void vtkDataObjectAlgorithm::SetInput ( vtkDataObject )

Set an input of this algorithm. You should not override these methods because they are not the only way to connect a pipeline. Note that these methods support old-style pipeline connections. When writing new code you should use the more general vtkAlgorithm::SetInputConnection(). These methods transform the input index to the input port index, not an index of a connection within a single port.

void vtkDataObjectAlgorithm::SetInput ( int  ,
vtkDataObject  
)

Set an input of this algorithm. You should not override these methods because they are not the only way to connect a pipeline. Note that these methods support old-style pipeline connections. When writing new code you should use the more general vtkAlgorithm::SetInputConnection(). These methods transform the input index to the input port index, not an index of a connection within a single port.

void vtkDataObjectAlgorithm::AddInput ( vtkDataObject )

Add an input of this algorithm. Note that these methods support old-style pipeline connections. When writing new code you should use the more general vtkAlgorithm::AddInputConnection(). See SetInput() for details.

void vtkDataObjectAlgorithm::AddInput ( int  ,
vtkDataObject  
)

Add an input of this algorithm. Note that these methods support old-style pipeline connections. When writing new code you should use the more general vtkAlgorithm::AddInputConnection(). See SetInput() for details.

virtual int vtkDataObjectAlgorithm::RequestInformation ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
)
protectedvirtual
virtual int vtkDataObjectAlgorithm::RequestDataObject ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
)
inlineprotectedvirtual

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

Definition at line 104 of file vtkDataObjectAlgorithm.h.

virtual int vtkDataObjectAlgorithm::RequestData ( vtkInformation request,
vtkInformationVector **  inputVector,
vtkInformationVector outputVector 
)
protectedvirtual
virtual int vtkDataObjectAlgorithm::RequestUpdateExtent ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
)
inlineprotectedvirtual

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

Definition at line 119 of file vtkDataObjectAlgorithm.h.

int vtkDataObjectAlgorithm::UpdateExtentIsEmpty ( vtkDataObject output)
protected

This detects when the UpdateExtent will generate no data. This condition is satisfied when the UpdateExtent has zero volume (0,-1,...) or the UpdateNumberOfPieces is 0. The source uses this call to determine whether to call Execute.

virtual void vtkDataObjectAlgorithm::ExecuteData ( vtkDataObject output)
protectedvirtual

This method is the old style execute method

virtual void vtkDataObjectAlgorithm::Execute ( )
protectedvirtual

This method is the old style execute method

virtual int vtkDataObjectAlgorithm::FillOutputPortInformation ( int  port,
vtkInformation info 
)
protectedvirtual
virtual int vtkDataObjectAlgorithm::FillInputPortInformation ( int  port,
vtkInformation info 
)
protectedvirtual

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