ITK  5.0.0
Insight Segmentation and Registration Toolkit
itkNeighborhoodAccessorFunctor.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 itkNeighborhoodAccessorFunctor_h
19 #define itkNeighborhoodAccessorFunctor_h
20 
22 #include "itkImageBase.h"
23 
24 namespace itk
25 {
40 template< typename TImage >
41 class ITK_TEMPLATE_EXPORT NeighborhoodAccessorFunctor final
42 {
43 public:
45  using ImageType = TImage;
46  using PixelType = typename ImageType::PixelType;
47  using InternalPixelType = typename ImageType::InternalPixelType;
48  using VectorLengthType = unsigned int;
49  using OffsetType = typename ImageType::OffsetType;
50 
51  static constexpr unsigned int ImageDimension = TImage::ImageDimension;
53 
54  template<typename TOutput=ImageType>
56 
58  inline void SetBegin(const InternalPixelType *) {}
59 
66  inline PixelType Get(const InternalPixelType *pixelPointer) const
67  {
68  return ( *pixelPointer );
69  }
70 
72  inline void Set(InternalPixelType * const pixelPointer, const PixelType & p) const
73  {
74  *pixelPointer = p;
75  }
76 
77  template <typename TOutput>
78  inline typename ImageBoundaryConditionType<TOutput>::OutputPixelType
80  const OffsetType & point_index,
81  const OffsetType & boundary_offset,
82  const NeighborhoodType *data,
83  const ImageBoundaryConditionType<TOutput> *boundaryCondition) const
84  {
85  return boundaryCondition->operator()(point_index, boundary_offset, data);
86  }
87 
90 };
91 } // end namespace itk
92 
93 //template< typename TImage > const unsigned int
94 // itk::NeighborhoodAccessorFunctor<TImage>::ImageDimension;
95 
96 #endif
void Set(InternalPixelType *const pixelPointer, const PixelType &p) const
ImageBoundaryConditionType< TOutput >::OutputPixelType BoundaryCondition(const OffsetType &point_index, const OffsetType &boundary_offset, const NeighborhoodType *data, const ImageBoundaryConditionType< TOutput > *boundaryCondition) const
typename ImageType::InternalPixelType InternalPixelType
A light-weight container object for storing an N-dimensional neighborhood of values.
PixelType Get(const InternalPixelType *pixelPointer) const
Provides accessor interfaces to Get pixels and is meant to be used on pointers contained within Neigh...
void SetBegin(const InternalPixelType *)
A virtual base object that defines an interface to a class of boundary condition objects for use by n...
typename ImageType::OffsetType OffsetType