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 MITKHEIGHTFIELDSURFACECLIPIMAGEFILTER_H_HEADER_INCLUDED
00020 #define MITKHEIGHTFIELDSURFACECLIPIMAGEFILTER_H_HEADER_INCLUDED
00021
00022 #include "mitkCommon.h"
00023 #include "MitkExtExports.h"
00024 #include "mitkImageToImageFilter.h"
00025 #include "mitkImageTimeSelector.h"
00026 #include "mitkSurface.h"
00027 #include "mitkGeometry3D.h"
00028
00029 namespace itk {
00030 template <class TPixel, unsigned int VImageDimension> class ITK_EXPORT Image;
00031 }
00032
00033 namespace mitk {
00034
00035
00048 class MitkExt_EXPORT HeightFieldSurfaceClipImageFilter : public ImageToImageFilter
00049 {
00050 public:
00051 mitkClassMacro(HeightFieldSurfaceClipImageFilter, ImageToImageFilter);
00052
00053 itkNewMacro(Self);
00054
00056 void SetClippingSurface( Surface *clippingSurface );
00057
00059 const Surface *GetClippingSurface() const;
00060
00061 enum
00062 {
00063 CLIPPING_MODE_CONSTANT = 0,
00064 CLIPPING_MODE_MULTIPLYBYFACTOR,
00065 };
00066
00069 void SetClippingMode( int mode );
00070
00073 int GetClippingMode();
00074
00077 void SetClippingModeToConstant();
00078
00081 void SetClippingModeToMultiplyByFactor();
00082
00084 itkSetMacro( ClippingConstant, ScalarType );
00085
00087 itkGetConstMacro( ClippingConstant, ScalarType );
00088
00090 itkSetMacro( MultiplicationFactor, ScalarType );
00091
00093 itkGetConstMacro( MultiplicationFactor, ScalarType );
00094
00096 itkSetMacro( HeightFieldResolutionX, unsigned int );
00097
00099 itkGetConstMacro( HeightFieldResolutionX, unsigned int );
00100
00102 itkSetMacro( HeightFieldResolutionY, unsigned int );
00103
00105 itkGetConstMacro( HeightFieldResolutionY, unsigned int );
00106
00107 protected:
00108 HeightFieldSurfaceClipImageFilter();
00109
00110 ~HeightFieldSurfaceClipImageFilter();
00111
00112 virtual void GenerateInputRequestedRegion();
00113
00114 virtual void GenerateOutputInformation();
00115
00116 virtual void GenerateData();
00117
00118 template < typename TPixel, unsigned int VImageDimension >
00119 void _InternalComputeClippedImage(
00120 itk::Image< TPixel, VImageDimension > *itkImage,
00121 HeightFieldSurfaceClipImageFilter *clipImageFilter,
00122 vtkPolyData *clippingPolyData,
00123 AffineTransform3D *imageToPlaneTransform );
00124
00125 ImageTimeSelector::Pointer m_InputTimeSelector;
00126 ImageTimeSelector::Pointer m_OutputTimeSelector;
00127
00128 int m_ClippingMode;
00129
00130 ScalarType m_ClippingConstant;
00131 ScalarType m_MultiplicationFactor;
00132
00133 unsigned int m_HeightFieldResolutionX;
00134 unsigned int m_HeightFieldResolutionY;
00135
00136 double m_MaxHeight;
00137
00138
00140 itk::TimeStamp m_TimeOfHeaderInitialization;
00141 };
00142
00143 }
00144
00145 #endif