ITK  5.3.0
Insight Toolkit
itkAddPixelAccessor.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
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 itkAddPixelAccessor_h
19 #define itkAddPixelAccessor_h
20 
21 #include "itkNumericTraits.h"
22 
23 namespace itk
24 {
25 namespace Accessor
26 {
44 template <typename TPixel>
46 {
47 public:
50 
53  using ExternalType = TPixel;
54 
57  using InternalType = TPixel;
58 
60  inline void
61  Set(InternalType & output, const ExternalType & input) const
62  {
63  output = static_cast<InternalType>(input - m_Value);
64  }
65 
67  inline ExternalType
68  Get(const InternalType & input) const
69  {
70  return static_cast<ExternalType>(input + m_Value);
71  }
72 
74  void
75  SetValue(const TPixel & newvalue)
76  {
77  m_Value = newvalue;
78  }
79 
81  TPixel
82  GetValue() const
83  {
84  return m_Value;
85  }
86 
88  Self &
89  operator=(const Self & apa)
90  {
91  this->m_Value = apa.m_Value;
92  return *this;
93  }
94 
97  : m_Value(NumericTraits<TPixel>::ZeroValue())
98  {}
99  AddPixelAccessor(const Self & apa)
100  : m_Value(apa.m_Value)
101  {}
103 
104 private:
105  TPixel m_Value;
106 };
107 } // end namespace Accessor
108 } // end namespace itk
109 
110 #endif
itk::Accessor::AddPixelAccessor::Get
ExternalType Get(const InternalType &input) const
Definition: itkAddPixelAccessor.h:68
itk::Accessor::AddPixelAccessor::m_Value
TPixel m_Value
Definition: itkAddPixelAccessor.h:105
itk::Accessor::AddPixelAccessor< TImage::PixelType >::InternalType
TImage::PixelType InternalType
Definition: itkAddPixelAccessor.h:57
itk::Accessor::AddPixelAccessor::Set
void Set(InternalType &output, const ExternalType &input) const
Definition: itkAddPixelAccessor.h:61
itk::Accessor::AddPixelAccessor::AddPixelAccessor
AddPixelAccessor()
Definition: itkAddPixelAccessor.h:96
itk::Accessor::AddPixelAccessor::GetValue
TPixel GetValue() const
Definition: itkAddPixelAccessor.h:82
itk::Accessor::AddPixelAccessor::AddPixelAccessor
AddPixelAccessor(const Self &apa)
Definition: itkAddPixelAccessor.h:99
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:58
itk::Accessor::AddPixelAccessor::Self
AddPixelAccessor Self
Definition: itkAddPixelAccessor.h:49
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itkNumericTraits.h
itk::Accessor::AddPixelAccessor::SetValue
void SetValue(const TPixel &newvalue)
Definition: itkAddPixelAccessor.h:75
itk::Accessor::AddPixelAccessor
Simulates the effect of adding a constant value to all pixels.
Definition: itkAddPixelAccessor.h:45
itk::Accessor::AddPixelAccessor::operator=
Self & operator=(const Self &apa)
Definition: itkAddPixelAccessor.h:89
itk::Accessor::AddPixelAccessor< TImage::PixelType >::ExternalType
TImage::PixelType ExternalType
Definition: itkAddPixelAccessor.h:53