13 #ifndef MITK_BASE_DATA_SOURCE_H 14 #define MITK_BASE_DATA_SOURCE_H 17 #include <itkProcessObject.h> 20 #define mitkBaseDataSourceGetOutputDeclarations \ 21 OutputType *GetOutput(); \ 22 const OutputType *GetOutput() const; \ 23 OutputType *GetOutput(DataObjectPointerArraySizeType idx); \ 24 const OutputType *GetOutput(DataObjectPointerArraySizeType idx) const; 26 #define mitkBaseDataSourceGetOutputDefinitions(className) \ 27 className::OutputType *className::GetOutput(void) \ 29 return itkDynamicCastInDebugMode<OutputType *>(this->GetPrimaryOutput()); \ 31 const className::OutputType *className::GetOutput(void) const \ 33 return itkDynamicCastInDebugMode<const OutputType *>(this->GetPrimaryOutput()); \ 35 className::OutputType *className::GetOutput(DataObjectPointerArraySizeType idx) \ 37 OutputType *out = dynamic_cast<OutputType *>(this->ProcessObject::GetOutput(idx)); \ 38 if (out == nullptr && this->ProcessObject::GetOutput(idx) != nullptr) \ 40 itkWarningMacro(<< "Unable to convert output number " << idx << " to type " << typeid(OutputType).name()); \ 44 const className::OutputType *className::GetOutput(DataObjectPointerArraySizeType idx) const \ 46 const OutputType *out = dynamic_cast<const OutputType *>(this->ProcessObject::GetOutput(idx)); \ 47 if (out == nullptr && this->ProcessObject::GetOutput(idx) != nullptr) \ 49 itkWarningMacro(<< "Unable to convert output number " << idx << " to type " << typeid(OutputType).name()); \ 104 GraftOutput(OutputType *output);
112 virtual void GraftOutput(
const DataObjectIdentifierType &key, OutputType *output);
123 virtual void GraftNthOutput(
unsigned int idx, OutputType *output);
128 DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
override = 0;
133 DataObjectPointer MakeOutput(
const DataObjectIdentifierType &name)
override = 0;
142 bool Updating()
const;
itk::DataObject::DataObjectIdentifierType DataObjectIdentifierType
Base of all data objects.
Superclass of all classes generating some kind of mitk::BaseData.
DataCollection - Class to facilitate loading/accessing structured data.
#define mitkClassMacroItkParent(className, SuperClassName)
#define mitkBaseDataSourceGetOutputDeclarations