00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkExtractOrthogonalSwath2DImageFilter_h
00018
#define __itkExtractOrthogonalSwath2DImageFilter_h
00019
00020
#include "itkImageAndPathToImageFilter.h"
00021
#include "itkParametricPath.h"
00022
00023
namespace itk
00024 {
00025
00040
template <
class TImage>
00041 class ITK_EXPORT ExtractOrthogonalSwath2DImageFilter :
public
00042
ImageAndPathToImageFilter<TImage,ParametricPath<2>,TImage>
00043 {
00044
public:
00046 typedef ExtractOrthogonalSwath2DImageFilter
Self;
00047 typedef ImageAndPathToImageFilter<TImage,ParametricPath<2>,TImage>
Superclass;
00048 typedef SmartPointer<Self> Pointer;
00049 typedef SmartPointer<const Self> ConstPointer;
00050
00052
itkNewMacro(
Self);
00053
00055
itkTypeMacro(ExtractOrthogonalSwath2DImageFilter,
ImageAndPathToImageFilter);
00056
00058 typedef TImage
ImageType;
00059 typedef typename ImageType::Pointer
ImagePointer;
00060 typedef typename ImageType::ConstPointer
ImageConstPointer;
00061 typedef typename ImageType::RegionType
ImageRegionType;
00062 typedef typename ImageType::IndexType
ImageIndexType;
00063 typedef typename ImageType::PixelType
ImagePixelType;
00064 typedef ParametricPath<2> PathType;
00065 typedef typename PathType::ConstPointer
PathConstPointer;
00066 typedef typename PathType::InputType
PathInputType;
00067 typedef typename PathType::OutputType
PathOutputType;
00068 typedef typename PathType::IndexType
PathIndexType;
00069 typedef typename PathType::ContinuousIndexType
PathContinuousIndexType;
00070 typedef typename PathType::OffsetType
PathOffsetType;
00071 typedef typename PathType::VectorType
PathVectorType;
00072 typedef typename ImageType::SizeType
SizeType;
00073
00074
00076
itkStaticConstMacro(PathDimension,
unsigned int,
00077 2);
00078
itkStaticConstMacro(ImageDimension,
unsigned int,
00079 TImage::ImageDimension);
00080
00087
virtual void SetSpacing(
const double spacing[ImageDimension] );
00088
virtual void SetSpacing(
const float spacing[ImageDimension] );
00089
virtual const double* GetSpacing() const;
00090
00095 virtual
void SetOrigin( const
double origin[ImageDimension] );
00096 virtual
void SetOrigin( const
float origin[ImageDimension] );
00097 virtual const
double * GetOrigin() const;
00098
00100 itkSetMacro(
Size,
SizeType )
00101
00102
00103
00104
00106 virtual
void EnlargeOutputRequestedRegion(
DataObject *output)
00107 {
00108 output->SetRequestedRegionToLargestPossibleRegion();
00109 }
00110
00111
00112
00113
00114
protected:
00115 ExtractOrthogonalSwath2DImageFilter()
00116 {
00117 m_Size[0] = 512;
00118 m_Size[1] = 16*2+1;
00119 m_Origin[0] = m_Origin[1] = 0.0;
00120 m_Spacing[0] = m_Spacing[1] = 1.0;
00121 };
00122
virtual ~ExtractOrthogonalSwath2DImageFilter() {};
00123
void PrintSelf(std::ostream& os, Indent indent)
const;
00124
00125
00126
00127
00129
virtual void GenerateOutputInformation(
void);
00130
00132
virtual void GenerateInputRequestedRegion()
00133 {
00134 Superclass::GenerateInputRequestedRegion();
00135 ( const_cast< ImageType * > (GetImageInput()) ) ->
00136 SetRequestedRegionToLargestPossibleRegion();
00137 ( const_cast< PathType * > (GetPathInput()) ) ->
00138 SetRequestedRegionToLargestPossibleRegion();
00139 }
00140
00141
virtual void GenerateData(
void);
00142
00143
00144
00145
00146
private:
00147 ExtractOrthogonalSwath2DImageFilter(
const Self&);
00148
void operator=(
const Self&);
00149
00150 SizeType m_Size;
00151
double m_Origin[ImageDimension];
00152
double m_Spacing[ImageDimension];
00153 };
00154
00155 }
00156
00157
#ifndef ITK_MANUAL_INSTANTIATION
00158
#include "itkExtractOrthogonalSwath2DImageFilter.txx"
00159
#endif
00160
00161
#endif