/usr/include/ITK-4.5/itkPeriodicBoundaryCondition.h is in libinsighttoolkit4-dev 4.5.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | /*=========================================================================
*
* Copyright Insight Software Consortium
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef __itkPeriodicBoundaryCondition_h
#define __itkPeriodicBoundaryCondition_h
#include "itkImageBoundaryCondition.h"
namespace itk
{
/** \class PeriodicBoundaryCondition
* \brief
* A function object that determines values outside of image boundaries
* according to periodic (wrap-around) conditions.
*
* The input to this function object is a neighborhood iterator. This boundary
* condition object is designed to be given as a template argument to a
* NeighborhoodIterator or any of the NeighborhoodIterator subclasses.
*
* \ingroup DataRepresentation
* \ingroup ImageObjects
* \ingroup ITKCommon
*/
template< typename TInputImage, typename TOutputImage = TInputImage >
class PeriodicBoundaryCondition:
public ImageBoundaryCondition< TInputImage, TOutputImage >
{
public:
/** Standard class typedefs. */
typedef PeriodicBoundaryCondition Self;
typedef ImageBoundaryCondition< TInputImage, TOutputImage > Superclass;
/** Extract information from the image type. */
typedef typename Superclass::PixelType PixelType;
typedef typename Superclass::PixelPointerType PixelPointerType;
typedef typename Superclass::OutputPixelType OutputPixelType;
typedef typename Superclass::RegionType RegionType;
typedef typename Superclass::IndexType IndexType;
typedef typename Superclass::SizeType SizeType;
typedef typename Superclass::OffsetType OffsetType;
typedef typename Superclass::NeighborhoodType NeighborhoodType;
typedef typename Superclass::NeighborhoodAccessorFunctorType
NeighborhoodAccessorFunctorType;
/** Extract information from the image type. */
itkStaticConstMacro(ImageDimension, unsigned int, Superclass::ImageDimension);
/** Default constructor. */
PeriodicBoundaryCondition() {}
/** Runtime information support. */
virtual const char * GetNameOfClass() const
{
return "itkPeriodicBoundaryCondition";
}
/** Computes and returns a neighborhood of appropriate values from
* neighborhood iterator data.. */
virtual OutputPixelType operator()(const OffsetType & point_index,
const OffsetType & boundary_offset,
const NeighborhoodType *data) const;
/** Computes and returns the appropriate pixel value from
* neighborhood iterator data, using the functor. */
virtual OutputPixelType operator()(
const OffsetType & point_index,
const OffsetType & boundary_offset,
const NeighborhoodType *data,
const NeighborhoodAccessorFunctorType & neighborhoodAccessorFunctor) const;
/** Determines the necessary input region for the output region.
* For this boundary condition, the output region is mapped into the
* input image index space. If the mapped region crosses an image
* boundary in some dimension, then the entire size of the image in
* that dimension is requested. For this reason, it is most memory
* efficient to request regions that map to regions that do cross
* image boundaries.
*
* \param inputLargestPossibleRegion Largest possible region of the input image.
* \param outputRequestedRegion The output requested region.
* \return The necessary input region required to determine the
* pixel values in the outputRequestedRegion.
*/
virtual RegionType GetInputRequestedRegion( const RegionType & inputLargestPossibleRegion,
const RegionType & outputRequestedRegion ) const;
/** Returns a value for a given pixel at an index. If the index is inside the
* bounds of the input image, then the pixel value is obtained from
* the input image. Otherwise, the pixel at the desired index (modulo
* the size of the image) is returned.
*
* \param index The index of the desired pixel.
* \param image The image from which pixel values should be determined.
*/
OutputPixelType GetPixel( const IndexType & index, const TInputImage * image ) const;
};
} // end namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
#include "itkPeriodicBoundaryCondition.hxx"
#endif
#endif
|