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 BOUNDINGOBJECTCUTANDCAST_H_HEADER_INCLUDED_C10B22CD 00020 #define BOUNDINGOBJECTCUTANDCAST_H_HEADER_INCLUDED_C10B22CD 00021 00022 #include "mitkCommon.h" 00023 #include "mitkBoundingObjectCutter.h" 00024 00025 #include "mitkBoundingObjectCutter.txx" 00026 00027 namespace mitk { 00028 00029 //##Documentation 00030 //## @brief Cuts an Boundingobject out of an mitk Image 00031 //## 00032 //## Input Parameters are a mitk::BoundingObject and optionally an mitk::Image 00033 //## if no mitk::Image is provided, the resulting image will have m_InsideValue as pixelvalue on inside pixel, 00034 //## otherwise it will have the pixelvalue of the input image. 00035 //## Pixel on the outside of the BoundingObject will have a pixelvalue of m_OutsideValue 00036 //## \todo What Image resolution/spacing should be used, if no input image is given? 00037 //## @ingroup Process 00038 template <typename TPixel> class BoundingObjectCutAndCast : public BoundingObjectCutter 00039 { 00040 public: 00041 mitkClassMacro(BoundingObjectCutAndCast, BoundingObjectCutter); 00042 itkNewMacro(Self); 00043 00044 typedef TPixel PixelType; 00045 00046 protected: 00047 BoundingObjectCutAndCast(); 00048 virtual ~BoundingObjectCutAndCast(); 00049 00050 virtual const std::type_info& GetOutputPixelType(); 00051 00052 virtual void ComputeData(mitk::Image* input3D, int boTimeStep); 00053 }; 00054 } // namespace mitk 00055 00056 #ifndef MITK_MANUAL_INSTANTIATION 00057 #include "mitkBoundingObjectCutAndCast.txx" // because it is a template 00058 #endif 00059 00060 #endif /* BOUNDINGOBJECTCUTANDCAST_H_HEADER_INCLUDED_C10B22CD */ 00061 00062