ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
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 * https://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
23namespace itk::Accessor
24{
41
42template <typename TPixel>
44{
45public:
48
51 using ExternalType = TPixel;
52
55 using InternalType = TPixel;
56
58 inline void
59 Set(InternalType & output, const ExternalType & input) const
60 {
61 output = static_cast<InternalType>(input - m_Value);
62 }
63
65 [[nodiscard]] inline ExternalType
66 Get(const InternalType & input) const
67 {
68 return static_cast<ExternalType>(input + m_Value);
69 }
70
72 void
73 SetValue(const TPixel & newvalue)
74 {
75 m_Value = newvalue;
76 }
77
79 [[nodiscard]] TPixel
80 GetValue() const
81 {
82 return m_Value;
83 }
84
86 Self &
87 operator=(const Self & apa) = default;
88
92 : m_Value(TPixel{})
93 {}
95 : m_Value(apa.m_Value)
96 {}
97
98private:
99 TPixel m_Value;
100};
101} // namespace itk::Accessor
102
103#endif
ExternalType Get(const InternalType &input) const
void Set(InternalType &output, const ExternalType &input) const
Self & operator=(const Self &apa)=default
void SetValue(const TPixel &newvalue)