ITK  4.2.0
Insight Segmentation and Registration Toolkit
itkDefaultPixelAccessorFunctor.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef __itkDefaultPixelAccessorFunctor_h
19 #define __itkDefaultPixelAccessorFunctor_h
20 
21 #include "itkMacro.h"
22 
23 namespace itk
24 {
46 template< class TImageType >
48 {
49 public:
50  typedef TImageType ImageType;
51  typedef typename ImageType::InternalPixelType InternalPixelType;
52  typedef typename ImageType::PixelType ExternalPixelType;
53  typedef typename ImageType::AccessorType PixelAccessorType;
54  typedef unsigned int VectorLengthType;
55 
61  template <class UImageType>
62  struct Rebind
63  {
65  };
66 
67 
68  static void SetVectorLength(ImageType *, VectorLengthType)
69  {}
70 
71  static VectorLengthType GetVectorLength(const ImageType *)
72  {
73  return 1;
74  }
75 
80  inline void SetPixelAccessor(PixelAccessorType & accessor)
81  {
82  m_PixelAccessor = accessor;
83  }
84 
88  inline void SetBegin( const InternalPixelType *itkNotUsed(begin) ) {}
89 
91  inline void Set(InternalPixelType & output, const ExternalPixelType & input) const
92  {
93  m_PixelAccessor.Set(output, input);
94  }
95 
97  inline ExternalPixelType Get(InternalPixelType & input) const
98  {
99  return m_PixelAccessor.Get(input);
100  }
101 
103  inline const ExternalPixelType Get(const InternalPixelType & input) const
104  {
105  return m_PixelAccessor.Get(input);
106  }
107 
108 private:
109  PixelAccessorType m_PixelAccessor; // The pixel accessor
110 };
111 }
112 
113 #endif
114