+template<unsigned int Dim>
+void clitk::ImageFillRegionGenericFilter::InitializeImageType()
+{
+ // ADD_IMAGE_TYPE(Dim, char);
+ ADD_IMAGE_TYPE(Dim, short);
+ // ADD_IMAGE_TYPE(Dim, unsigned short);
+// ADD_IMAGE_TYPE(Dim, int);
+ ADD_IMAGE_TYPE(Dim, float);
+ // ADD_IMAGE_TYPE(Dim, double);
+}
+//--------------------------------------------------------------------
+
+
+
+//--------------------------------------------------------------------
+template<class ImageType>
+void clitk::ImageFillRegionGenericFilter::UpdateWithInputImageType()
+{
+
+ // Typedef
+ typedef typename ImageType::PixelType PixelType;
+ static unsigned int Dim = ImageType::ImageDimension;
+
+ // Spheric region
+ if (mSphericRegion) return Update_WithDimAndPixelType_SphericRegion<ImageType::ImageDimension,PixelType>();
+
+ // Read input
+ typename ImageType::Pointer input = GetInput<ImageType>(0);
+
+ // Get pixel value in correct type
+ PixelType value = PixelTypeDownCast<double, PixelType>(mPixelValue);
+
+ // Get region
+ typedef typename ImageType::RegionType RegionType;
+ typedef typename ImageType::SizeType SizeType;
+ typedef typename ImageType::IndexType IndexType;
+ RegionType region;
+ SizeType size;
+ IndexType start;
+ for(unsigned int i=0; i<Dim; i++) {
+ size[i] = mSize[i];
+ start[i] = mStart[i];
+ }
+ region.SetSize(size);
+ region.SetIndex(start);
+
+ // Build iterator
+ typedef itk::ImageRegionIterator<ImageType> IteratorType;
+ IteratorType it(input, region);
+ it.GoToBegin();
+ while (!it.IsAtEnd()) {
+ it.Set(value);
+ ++it;
+ }
+
+ // Write results
+ SetNextOutput<ImageType>(input);
+}
+//--------------------------------------------------------------------
+
+//--------------------------------------------------------------------
+template<unsigned int Dim, class PixelType>
+void clitk::ImageFillRegionGenericFilter::Update_WithDimAndPixelType_SphericRegion()