Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::BaseDataSource Class Referenceabstract

Superclass of all classes generating some kind of mitk::BaseData. More...

#include <mitkBaseDataSource.h>

Inheritance diagram for mitk::BaseDataSource:
Collaboration diagram for mitk::BaseDataSource:

Public Types

typedef BaseData OutputType
 Output data type. More...
 
typedef itk::DataObject::DataObjectIdentifierType DataObjectIdentifierType
 Identifier type for named data objects. More...
 

Public Member Functions

 mitkClassMacroItkParent (BaseDataSource, itk::ProcessObject)
 
OutputType * GetOutput ()
 
const OutputType * GetOutput () const
 
OutputType * GetOutput (DataObjectPointerArraySizeType idx)
 
const OutputType * GetOutput (DataObjectPointerArraySizeType idx) const
 
virtual void GraftOutput (OutputType *output)
 Graft the specified BaseData onto this BaseDataSource's output. More...
 
virtual void GraftOutput (const DataObjectIdentifierType &key, OutputType *output)
 Graft the specified base data object onto a named output. More...
 
virtual void GraftNthOutput (unsigned int idx, OutputType *output)
 Graft the specified base data object onto this BaseDataSource's idx'th output. More...
 
DataObjectPointer MakeOutput (DataObjectPointerArraySizeType idx) override=0
 Create the output data object for the given index. More...
 
DataObjectPointer MakeOutput (const DataObjectIdentifierType &name) override=0
 Create the output data object for the given name. More...
 
bool Updating () const
 Check whether the pipeline is currently executing. More...
 

Protected Member Functions

 BaseDataSource ()
 Constructor. More...
 
 ~BaseDataSource () override
 Destructor. More...
 

Static Protected Member Functions

static Pointer New ()
 

Detailed Description

Superclass of all classes generating some kind of mitk::BaseData.

In ITK and VTK the generated result of a ProcessObject is only guaranteed to be up-to-date when Update() of the ProcessObject or the generated DataObject is called immediately before access of the data stored in the DataObject. This is also true for subclasses of mitk::BaseProcess. But many of the subclasses of mitk::BaseProcess define additional access functions to the generated output that guarantee an up-to-date result; see for example mitk::ImageSource.

Definition at line 71 of file mitkBaseDataSource.h.

Member Typedef Documentation

◆ DataObjectIdentifierType

typedef itk::DataObject::DataObjectIdentifierType mitk::BaseDataSource::DataObjectIdentifierType

Identifier type for named data objects.

Definition at line 80 of file mitkBaseDataSource.h.

◆ OutputType

Output data type.

Definition at line 77 of file mitkBaseDataSource.h.

Constructor & Destructor Documentation

◆ BaseDataSource()

mitk::BaseDataSource::BaseDataSource ( )
protected

Constructor.

◆ ~BaseDataSource()

mitk::BaseDataSource::~BaseDataSource ( )
overrideprotected

Destructor.

Member Function Documentation

◆ GetOutput() [1/4]

OutputType* mitk::BaseDataSource::GetOutput ( )

◆ GetOutput() [2/4]

const OutputType* mitk::BaseDataSource::GetOutput ( ) const

◆ GetOutput() [3/4]

OutputType* mitk::BaseDataSource::GetOutput ( DataObjectPointerArraySizeType  idx)

◆ GetOutput() [4/4]

const OutputType* mitk::BaseDataSource::GetOutput ( DataObjectPointerArraySizeType  idx) const

◆ GraftNthOutput()

virtual void mitk::BaseDataSource::GraftNthOutput ( unsigned int  idx,
OutputType *  output 
)
virtual

Graft the specified base data object onto this BaseDataSource's idx'th output.

Similar to GraftOutput except it allows you to specify which output is affected by index. The specified index must be a valid output number (less than ProcessObject::GetNumberOfOutputs()).

Parameters
[in]idxThe zero-based index of the output to graft onto.
[in]outputThe BaseData object to graft.
See also
GraftOutput

◆ GraftOutput() [1/2]

virtual void mitk::BaseDataSource::GraftOutput ( const DataObjectIdentifierType &  key,
OutputType *  output 
)
virtual

Graft the specified base data object onto a named output.

Similar to the GraftOutput method except it allows you to specify which output is affected by name.

Parameters
[in]keyThe identifier of the output to graft onto.
[in]outputThe BaseData object to graft.
See also
GraftOutput

◆ GraftOutput() [2/2]

virtual void mitk::BaseDataSource::GraftOutput ( OutputType *  output)
virtual

Graft the specified BaseData onto this BaseDataSource's output.

This method is used when a process object is implemented using a mini-pipeline defined in its GenerateData() method. The usage is:

// setup the mini-pipeline to process the input to this filter
firstFilterInMiniPipeline->SetInput( this->GetInput() );
// setup the mini-pipeline to calculate the correct regions
// and write to the appropriate bulk data block
lastFilterInMiniPipeline->GraftOutput( this->GetOutput(0) );
// execute the mini-pipeline
lastFilterInMiniPipeline->Update();
// graft the mini-pipeline output back onto this filter's output.
// this is needed to get the appropriate regions passed back.
this->GraftOutput( lastFilterInMiniPipeline->GetOutput(0) );
virtual void GraftOutput(OutputType *output)
Graft the specified BaseData onto this BaseDataSource's output.
OutputType * GetOutput()
Parameters
[in]outputThe BaseData object to graft onto this source's primary output.

◆ MakeOutput() [1/2]

DataObjectPointer mitk::BaseDataSource::MakeOutput ( const DataObjectIdentifierType &  name)
overridepure virtual

Create the output data object for the given name.

See also
itk::ProcessObject::MakeOutput(const DataObjectIdentifierType&)

Implemented in mitk::ContourModelSetToImageFilter, mitk::PlanarFigureSource, mitk::SurfaceSource, mitk::PointSetSource, mitk::ImageSource, mitk::ContourModelSource, mitk::ContourModelSetSource, and mitk::GeometryDataSource.

◆ MakeOutput() [2/2]

DataObjectPointer mitk::BaseDataSource::MakeOutput ( DataObjectPointerArraySizeType  idx)
overridepure virtual

Create the output data object for the given index.

See also
itk::ProcessObject::MakeOutput(DataObjectPointerArraySizeType)

Implemented in mitk::ContourModelSetToImageFilter, mitk::PlanarFigureSource, mitk::SurfaceSource, mitk::PointSetSource, mitk::ImageSource, mitk::ContourModelSource, mitk::ContourModelSetSource, and mitk::GeometryDataSource.

◆ mitkClassMacroItkParent()

mitk::BaseDataSource::mitkClassMacroItkParent ( BaseDataSource  ,
itk::ProcessObject   
)

◆ New()

static Pointer mitk::BaseDataSource::New ( )
staticprotected

◆ Updating()

bool mitk::BaseDataSource::Updating ( ) const

Check whether the pipeline is currently executing.

Accesses itk::ProcessObject::m_Updating, which prevents infinite recursion when pipelines have loops.

Returns
True if the pipeline is currently executing, false otherwise.
See also
itk::ProcessObject::m_Updating

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