00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-05-12 19:56:03 +0200 (Di, 12 Mai 2009) $ 00006 Version: $Revision: 17179 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or http://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 MITKSURFACETOSURFACEFILTER_H_HEADER_INCLUDED_C10B4740 00020 #define MITKSURFACETOSURFACEFILTER_H_HEADER_INCLUDED_C10B4740 00021 00022 #include "mitkSurfaceSource.h" 00023 00024 namespace mitk { 00025 class Surface; 00026 //##Documentation 00027 //## @brief Superclass of all classes getting surfaces (instances of class 00028 //## Surface) as input and generating surfaces 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::mitkSurfaceToSurfaceFilter. 00035 //## @ingroup Process 00036 class MITK_CORE_EXPORT SurfaceToSurfaceFilter : public mitk::SurfaceSource 00037 { 00038 public: 00039 mitkClassMacro(SurfaceToSurfaceFilter, mitk::SurfaceSource); 00040 00041 itkNewMacro(Self); 00042 00043 typedef itk::DataObject::Pointer DataObjectPointer; 00044 00045 virtual void SetInput( const mitk::Surface* surface ); 00046 00047 virtual void SetInput( unsigned int idx, const mitk::Surface* surface ); 00048 00049 virtual const mitk::Surface* GetInput(); 00050 00051 virtual const mitk::Surface* GetInput( unsigned int idx ); 00052 00053 virtual void CreateOutputsForAllInputs(unsigned int idx); 00054 00055 virtual void RemoveInputs(mitk::Surface* input); 00056 00057 protected: 00058 SurfaceToSurfaceFilter(); 00059 00060 virtual ~SurfaceToSurfaceFilter(); 00061 }; 00062 00063 } // namespace mitk 00064 00065 00066 00067 #endif /* MITKSURFACETOSURFACEFILTER_H_HEADER_INCLUDED_C10B4740 */