00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision$ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 00019 #ifndef MITKSURFACEDATASOURCE_H_HEADER_INCLUDED_C10B4740 00020 #define MITKSURFACEDATASOURCE_H_HEADER_INCLUDED_C10B4740 00021 00022 #include "mitkBaseProcess.h" 00023 00024 namespace mitk { 00025 class Surface; 00026 //##Documentation 00027 //## @brief Superclass of all classes generating surfaces (instances of class 00028 //## Surface) as output. 00029 //## 00030 //## In itk and vtk the generated result of a ProcessObject is only guaranteed 00031 //## to be up-to-date, when Update() of the ProcessObject or the generated 00032 //## DataObject is called immediately before access of the data stored in the 00033 //## DataObject. This is also true for subclasses of mitk::BaseProcess and thus 00034 //## for mitk::SurfaceSource. 00035 //## @ingroup Process 00036 class MITK_CORE_EXPORT SurfaceSource : public BaseProcess 00037 { 00038 public: 00039 mitkClassMacro(SurfaceSource, BaseProcess); 00040 00041 itkNewMacro(Self); 00042 00043 typedef itk::DataObject::Pointer DataObjectPointer; 00044 00045 virtual DataObjectPointer MakeOutput(unsigned int idx); 00046 00047 void SetOutput(mitk::Surface* output); 00048 00049 mitk::Surface* GetOutput(); 00050 00051 mitk::Surface* GetOutput(unsigned int idx); 00052 00053 virtual void GraftOutput(mitk::Surface* graft); 00054 00055 virtual void GraftNthOutput(unsigned int idx, mitk::Surface *graft); 00056 00057 protected: 00058 SurfaceSource(); 00059 00060 virtual ~SurfaceSource(); 00061 }; 00062 00063 } // namespace mitk 00064 00065 00066 00067 #endif /* MITKSURFACEDATASOURCE_H_HEADER_INCLUDED_C10B4740 */