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 MITKGEOMETRYDATASOURCE_H_HEADER_INCLUDED_C10B4740 00020 #define MITKGEOMETRYDATASOURCE_H_HEADER_INCLUDED_C10B4740 00021 00022 #include "mitkBaseProcess.h" 00023 #include "MitkExtExports.h" 00024 #include "mitkGeometryDataSource.h" 00025 00026 namespace mitk { 00027 00028 class GeometryData; 00029 00030 //##Documentation 00031 //## @brief Superclass of all classes generating GeometryData (instances of class 00032 //## GeometryData) as output. 00033 //## 00034 //## In itk and vtk the generated result of a ProcessObject is only guaranteed 00035 //## to be up-to-date, when Update() of the ProcessObject or the generated 00036 //## DataObject is called immediately before access of the data stored in the 00037 //## DataObject. This is also true for subclasses of mitk::BaseProcess and thus 00038 //## for mitk::GeometryDataSource. 00039 //## @ingroup Process 00040 class MitkExt_EXPORT GeometryDataSource : public BaseProcess 00041 { 00042 public: 00043 mitkClassMacro(GeometryDataSource, BaseProcess); 00044 00045 itkNewMacro(Self); 00046 00047 typedef itk::DataObject::Pointer DataObjectPointer; 00048 00049 virtual DataObjectPointer MakeOutput(unsigned int idx); 00050 00051 void SetOutput(mitk::GeometryData* output); 00052 00053 mitk::GeometryData* GetOutput(); 00054 00055 mitk::GeometryData* GetOutput(unsigned int idx); 00056 00057 virtual void GraftOutput(mitk::GeometryData* graft); 00058 00059 virtual void GraftNthOutput(unsigned int idx, mitk::GeometryData *graft); 00060 00061 protected: 00062 GeometryDataSource(); 00063 00064 virtual ~GeometryDataSource(); 00065 }; 00066 00067 } // namespace mitk 00068 00069 00070 00071 #endif /* MITKGEOMETRYDATASOURCE_H_HEADER_INCLUDED_C10B4740 */