]> Creatis software - clitk.git/blob - filters/clitkImageFillRegionGenericFilter.cxx
Initial revision
[clitk.git] / filters / clitkImageFillRegionGenericFilter.cxx
1 /*=========================================================================
2
3   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
4   l'Image). All rights reserved. See Doc/License.txt or
5   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
6                                                                                 
7      This software is distributed WITHOUT ANY WARRANTY; without even
8      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9      PURPOSE.  See the above copyright notices for more information.
10                                                                              
11 =========================================================================*/
12
13 #ifndef CLITKIMAGEFILLREGIONGENERICFILTER_CXX
14 #define CLITKIMAGEFILLREGIONGENERICFILTER_CXX
15
16 /**
17  -------------------------------------------------------------------
18  * @file   clitkImageFillRegionGenericFilter.cxx
19  * @author David Sarrut <David.Sarrut@creatis.insa-lyon.fr>
20  * @date   23 Feb 2008
21
22  * @brief  
23  -------------------------------------------------------------------*/
24
25 #include "clitkImageFillRegionGenericFilter.h"
26
27 //--------------------------------------------------------------------
28 clitk::ImageFillRegionGenericFilter::ImageFillRegionGenericFilter() {
29   mPixelValue = 0;
30   m_IsCentered=false;
31   mSphericRegion=false;
32 }
33 //--------------------------------------------------------------------
34
35
36 //--------------------------------------------------------------------
37 void clitk::ImageFillRegionGenericFilter::SetSphericRegion(std::vector<double> &  radius, 
38                                                            std::vector<double> & center) 
39 {
40   mRadius.clear(); 
41   mRadius.resize(radius.size());
42   std::copy(radius.begin(), radius.end(), mRadius.begin());
43   mCenter.clear();
44   mCenter.resize(center.size());
45   std::copy(center.begin(), center.end(), mCenter.begin());
46   mSphericRegion = true;
47   m_IsCentered=false;
48 }
49
50 void clitk::ImageFillRegionGenericFilter::SetSphericRegion(std::vector<double> & radius) {
51   mRadius.clear(); 
52   mRadius.resize(radius.size());
53   std::copy(radius.begin(), radius.end(), mRadius.begin());
54   m_IsCentered=true;
55   mSphericRegion = true;
56 }
57 //--------------------------------------------------------------------
58
59
60 //--------------------------------------------------------------------
61 void clitk::ImageFillRegionGenericFilter::Update () {
62   
63   // Load image header
64   itk::ImageIOBase::Pointer header = clitk::readImageHeader(mInputFilenames[0]);
65   
66   // Determine dim, pixel type, number of components
67   mDim = header->GetNumberOfDimensions();
68   mPixelTypeName = header->GetComponentTypeAsString(header->GetComponentType());  
69   mNbOfComponents = header->GetNumberOfComponents();
70   
71   // Switch by dimension
72   if (mDim == 2) { Update_WithDim<2>(); return; }
73   if (mDim == 3) { Update_WithDim<3>(); return; }
74   // if (mDim == 4) { Update_WithDim<4>(); return; }
75
76   std::cerr << "Error, dimension of input image is " << mDim << ", but I only work with 2,3,4." << std::endl;
77   exit(0);
78 }
79 //--------------------------------------------------------------------
80
81 #endif //define CLITKIMAGEFILLREGIONGENERICFILTER_CXX