ITK  5.0.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< typename TImageType >
48 {
49 public:
50  using ImageType = TImageType;
51  using InternalPixelType = typename ImageType::InternalPixelType;
52  using ExternalPixelType = typename ImageType::PixelType;
53  using PixelAccessorType = typename ImageType::AccessorType;
54  using VectorLengthType = unsigned int;
55 
61  template <typename UImageType>
62  struct Rebind
63  {
65  };
66 
67 
69  {}
70 
72  {
73  return 1;
74  }
75 
80  inline void SetPixelAccessor(const 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
void SetBegin(const InternalPixelType *)
typename ImageType::AccessorType PixelAccessorType
static VectorLengthType GetVectorLength(const ImageType *)
ExternalPixelType Get(InternalPixelType &input) const
const ExternalPixelType Get(const InternalPixelType &input) const
typename ImageType::PixelType ExternalPixelType
void Set(InternalPixelType &output, const ExternalPixelType &input) const
Provides a common API for pixel accessors for Image and VectorImage.
static void SetVectorLength(ImageType *, VectorLengthType)
void SetPixelAccessor(const PixelAccessorType &accessor)
typename ImageType::InternalPixelType InternalPixelType