This file is indexed.

/usr/include/InsightToolkit/Common/itkBloxImage.h is in libinsighttoolkit3-dev 3.20.1-1.

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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*=========================================================================

  Program:   Insight Segmentation & Registration Toolkit
  Module:    itkBloxImage.h
  Language:  C++
  Date:      $Date$
  Version:   $Revision$

  Copyright (c) Insight Software Consortium. All rights reserved.
  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even 
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
     PURPOSE.  See the above copyright notices for more information.

=========================================================================*/
#ifndef __itkBloxImage_h
#define __itkBloxImage_h

#include "itkBloxPixel.h"
#include "itkImage.h"

namespace itk
{

/**
 * \class BloxImage
 * \brief Templated n-dimensional image class used to store linked lists.
 *
 * The itk::BloxImage object is a regular, rectilinear lattice of "blocks" in 
 * n-dimensional space.  The word "blox" was chosen to bring to mind a set of
 * "city blocks" in 2D or "building blocks" in 3D.  Being a regular lattice,
 * itkBloxImage logically derives from itkImage.  In an itkBloxImage, each
 * pixel represents an isometric space-filling block of geometric space, called
 * an itkBloxPixel.  Each itk::BloxPixel generally covers many pixels in the
 * underlying image and is used to store a variable number of image primitives
 * (such as boundary points) or features (such as medial nodes) gathered within
 * that region of geometric space.  To do this, each itkBloxPixel contains a 
 * linked list.
 *
 * The itk::BloxImage object facilitates certain forms of analysis by providing
 * geometric hashing.  For example, if boundary points are stored in an 
 * itk::BloxImage, pairs of boundary points that face each other 
 * (called "core atoms") can be found by searching relatively small regions of 
 * geometric space that face each boundary point for appropriate mates.  
 * Because an itk::BloxImage is rectilinear in geometric space (even though the
 * underlying image may not be) subsequent analysis can be invariant to 
 * rotation and translation.
 *
 * itk::BloxImage is templated over pixel type; in general, the pixel type 
 * should be derived from itk::BloxPixel, however this is not enforced and 
 * other implementations are possible.
 *
 * Note that itk::BloxPixel is itself templated over item type (the type of 
 * object stored in the linked list).
 *
 * \ingroup ImageObjects
 *
 */
template <typename TBloxPixelType, unsigned int TImageDimension=3>
class ITK_EXPORT BloxImage : public Image<TBloxPixelType, TImageDimension>
{
public:
  /** Standard class typedefs. */
  typedef BloxImage                               Self;
  typedef Image<TBloxPixelType, TImageDimension>  Superclass;
  typedef SmartPointer<Self>                      Pointer;
  typedef SmartPointer<const Self>                ConstPointer;
  typedef WeakPointer<const Self>                 ConstWeakPointer;
  
  /** Method for creation through the object factory. */
  itkNewMacro(Self);  

  /** Run-time type information (and related methods). */
  itkTypeMacro(BloxImage, Image);

  /** Pixel typedef support. Used to declare pixel type in filters
   * or other operations. */
  typedef TBloxPixelType PixelType;

  /** Internal Pixel representation. Used to maintain a uniform API
   * with Image Adaptors and allow to keep a particular internal
   * representation of data while showing a different external 
   * representation. */
  typedef TBloxPixelType InternalPixelType;

  typedef typename Superclass::IOPixelType   IOPixelType;

  /**  Accessor type that convert data between internal and external
   *  representations. */
  typedef DefaultPixelAccessor< PixelType > AccessorType;

  /** Dimension of the image.  This enum is used by functions that are
   * templated over image type (as opposed to being templated over pixel
   * type and dimension) when they need compile time access to the dimension
   * of the image. */
  itkStaticConstMacro(ImageDimension, unsigned int, TImageDimension);

  /** Convenient typedefs obtained from Superclass. */
  typedef typename Superclass::PixelContainer PixelContainer;
  typedef typename Superclass::SizeType       SizeType;
  typedef typename Superclass::IndexType      IndexType;
  typedef typename Superclass::OffsetType     OffsetType;
  typedef typename Superclass::RegionType     RegionType;
  
  /** A pointer to the pixel container. */
  typedef typename PixelContainer::Pointer PixelContainerPointer;

  /** Traverse the entire image and empty all linked lists.
   * This is used in filters prior to generating new data, to
   * avoid appending the new data onto the old
   */
  void EmptyImage();

protected:
  BloxImage();
  virtual ~BloxImage();
  void PrintSelf(std::ostream& os, Indent indent) const;

private:
  BloxImage(const Self&); //purposely not implemented
  void operator=(const Self&); //purposely not implemented

};

} // end namespace itk

// Define instantiation macro for this template.
#define ITK_TEMPLATE_BloxImage(_, EXPORT, x, y) namespace itk { \
  _(2(class EXPORT BloxImage< ITK_TEMPLATE_2 x >)) \
  namespace Templates { typedef BloxImage< ITK_TEMPLATE_2 x > \
                               BloxImage##y; } \
  }

#if ITK_TEMPLATE_EXPLICIT
# include "Templates/itkBloxImage+-.h"
#endif

#if ITK_TEMPLATE_TXX
# include "itkBloxImage.txx"
#endif

#endif