itkImageRegionMultidimensionalSplitter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkImageRegionMultidimensionalSplitter_h
00018 #define __itkImageRegionMultidimensionalSplitter_h
00019
00020 #include "itkObject.h"
00021 #include "itkRegion.h"
00022 #include "itkObjectFactory.h"
00023 #include "itkIndex.h"
00024 #include "itkSize.h"
00025 #include "itkImageRegionSplitter.h"
00026
00027 namespace itk
00028 {
00029
00060 template <unsigned int VImageDimension>
00061 class ITK_EXPORT ImageRegionMultidimensionalSplitter: public ImageRegionSplitter<VImageDimension>
00062 {
00063 public:
00065 typedef ImageRegionMultidimensionalSplitter Self;
00066 typedef ImageRegionSplitter<VImageDimension> Superclass;
00067 typedef SmartPointer<Self> Pointer;
00068 typedef SmartPointer<const Self> ConstPointer;
00069
00071 itkNewMacro(Self);
00072
00074 itkTypeMacro(ImageRegionMultidimensionalSplitter,ImageRegionSplitter);
00075
00077 itkStaticConstMacro(ImageDimension, unsigned int, VImageDimension);
00078
00080 typedef Index<VImageDimension> IndexType;
00081
00083 typedef Size<VImageDimension> SizeType;
00084
00086 typedef ImageRegion<VImageDimension> RegionType;
00087
00094 virtual unsigned int GetNumberOfSplits(const RegionType ®ion,
00095 unsigned int requestedNumber);
00096
00100 virtual RegionType GetSplit(unsigned int i, unsigned int numberOfPieces,
00101 const RegionType ®ion);
00102
00103 protected:
00104 ImageRegionMultidimensionalSplitter() {}
00105 ~ImageRegionMultidimensionalSplitter() {}
00106 void PrintSelf(std::ostream& os, Indent indent) const;
00107
00108 private:
00109 ImageRegionMultidimensionalSplitter(const Self&);
00110 void operator=(const Self&);
00111
00112 };
00113
00114
00115 }
00116
00117
00118 #define ITK_TEMPLATE_ImageRegionMultidimensionalSplitter(_, EXPORT, x, y) namespace itk { \
00119 _(1(class EXPORT ImageRegionMultidimensionalSplitter< ITK_TEMPLATE_1 x >)) \
00120 namespace Templates { typedef ImageRegionMultidimensionalSplitter< ITK_TEMPLATE_1 x > \
00121 ImageRegionMultidimensionalSplitter##y; } \
00122 }
00123
00124 #if ITK_TEMPLATE_EXPLICIT
00125 # include "Templates/itkImageRegionMultidimensionalSplitter+-.h"
00126 #endif
00127
00128 #if ITK_TEMPLATE_TXX
00129 # include "itkImageRegionMultidimensionalSplitter.txx"
00130 #endif
00131
00132 #endif
00133