Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MITKGEOMETRYCLIPIMAGEFILTER_H_HEADER_INCLUDED_C1F48A22
00020 #define MITKGEOMETRYCLIPIMAGEFILTER_H_HEADER_INCLUDED_C1F48A22
00021
00022 #include "mitkCommon.h"
00023 #include "MitkExtExports.h"
00024 #include "mitkImageToImageFilter.h"
00025 #include "mitkImageTimeSelector.h"
00026 #include "mitkGeometryData.h"
00027
00028 namespace itk {
00029 template <class TPixel, unsigned int VImageDimension> class ITK_EXPORT Image;
00030 }
00031
00032 namespace mitk {
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 class MitkExt_EXPORT GeometryClipImageFilter : public ImageToImageFilter
00047 {
00048 public:
00049 mitkClassMacro(GeometryClipImageFilter, ImageToImageFilter);
00050
00051 itkNewMacro(Self);
00052
00053
00054
00055
00056
00057
00058
00059 void SetClippingGeometry(const mitk::Geometry3D* aClippingGeometry);
00060 const mitk::Geometry3D* GetClippingGeometry() const;
00061
00062
00063
00064
00065 itkGetConstMacro(ClipPartAboveGeometry, bool);
00066
00067
00068 itkSetMacro(ClipPartAboveGeometry, bool);
00069
00070
00071 itkBooleanMacro(ClipPartAboveGeometry);
00072
00073
00074
00075
00076 itkSetMacro(OutsideValue, ScalarType);
00077 itkGetConstMacro(OutsideValue, ScalarType);
00078
00079
00080
00081
00082 itkSetMacro(AutoOutsideValue, bool);
00083 itkGetConstMacro(AutoOutsideValue, bool);
00084 itkBooleanMacro(AutoOutsideValue);
00085
00086 itkSetMacro(AutoOrientLabels, bool);
00087 itkGetConstMacro(AutoOrientLabels, bool);
00088
00089
00090
00091
00092
00093 itkSetMacro(LabelBothSides, bool);
00094 itkGetConstMacro(LabelBothSides, bool);
00095 itkBooleanMacro(LabelBothSides);
00096
00097
00098
00099
00100 itkSetMacro(AboveGeometryLabel, ScalarType);
00101 itkGetConstMacro(AboveGeometryLabel, ScalarType);
00102
00103
00104
00105
00106 itkSetMacro(BelowGeometryLabel, ScalarType);
00107 itkGetConstMacro(BelowGeometryLabel, ScalarType);
00108
00109 protected:
00110 GeometryClipImageFilter();
00111
00112 ~GeometryClipImageFilter();
00113
00114 virtual void GenerateInputRequestedRegion();
00115
00116 virtual void GenerateOutputInformation();
00117
00118 virtual void GenerateData();
00119
00120 template < typename TPixel, unsigned int VImageDimension >
00121 friend void _InternalComputeClippedImage(itk::Image<TPixel, VImageDimension>* itkImage, mitk::GeometryClipImageFilter* geometryClipper, const mitk::Geometry2D* clippingGeometry2D);
00122
00123 mitk::Geometry3D::ConstPointer m_ClippingGeometry;
00124 mitk::GeometryData::Pointer m_ClippingGeometryData;
00125 mitk::TimeSlicedGeometry::ConstPointer m_TimeSlicedClippingGeometry;
00126 mitk::ImageTimeSelector::Pointer m_InputTimeSelector;
00127 mitk::ImageTimeSelector::Pointer m_OutputTimeSelector;
00128
00129
00130
00131
00132 bool m_ClipPartAboveGeometry;
00133
00134
00135
00136
00137
00138 ScalarType m_OutsideValue;
00139
00140
00141
00142 bool m_AutoOutsideValue;
00143
00144
00145
00146
00147 bool m_LabelBothSides;
00148
00152 bool m_AutoOrientLabels;
00153
00154
00155
00156
00157 ScalarType m_AboveGeometryLabel;
00158
00159
00160
00161
00162 ScalarType m_BelowGeometryLabel;
00163
00164
00165
00166 itk::TimeStamp m_TimeOfHeaderInitialization;
00167 };
00168
00169 }
00170
00171 #endif
00172
00173