This file is indexed.

/usr/include/ITK-4.5/itkOctree.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
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
/*=========================================================================
 *
 *  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 __itkOctree_h
#define __itkOctree_h

#include "itkOctreeNode.h"
#include "itkImage.h"
/**
 * Octree data structure
 */
namespace itk
{
enum {
  B2_MASKFILE_BLACK = 0,
  B2_MASKFILE_WHITE = 1,
  B2_MASKFILE_GRAY = 2
  };
/**
 * The enumeration to define the planar orientation of the octree
 */
enum OctreePlaneType {
  UNKNOWN_PLANE,   /** < The plane is Unknown */
  SAGITAL_PLANE,   /** < The plane is Sagital */
  CORONAL_PLANE,   /** < The plane is Coronal */
  TRANSVERSE_PLANE /** < The plane is Transverse */
  };

/**
 * \class OctreeBase
 * \brief Provides non-templated access to templated instances of Octree.
 *
 * \ingroup ITKCommon
 */
class OctreeBase:public Object
{
public:
  /** Standard class typedefs. */
  typedef OctreeBase           Self;
  typedef SmartPointer< Self > Pointer;

  /** Get the actual tree base
   *
   * Returns the tree, or 0 if the Octree isn't built yet
   */
  virtual OctreeNode * GetTree() = 0;

  /** Get tree depth.
   *
   * Depth represents x, for the smallest 2^x >= largest image dimension
   */
  virtual unsigned int GetDepth() = 0;

  /** Get tree width.
   *
   * Width == smallest 2^x >= largest image dimension
   * i.e. 2^Depth == Width
   */
  virtual unsigned int GetWidth() = 0;

  /** Set the depth, e.g. when reading tree from a file. */
  virtual void SetDepth(unsigned int depth) = 0;

  /** Set width, e.g. when reading from a file. */
  virtual void SetWidth(unsigned int width) = 0;

  /** Build an Octree from an Image's pixel buffer.
   *
   * Method needed for ImageIO class, which has no handle on image, just
   * the pixel buffer.
   */
  virtual void BuildFromBuffer(const void *buffer,
                               const unsigned int xsize, const unsigned int ysize, const unsigned int zsize) = 0;

  /** Get the ColorTable Pointer
   *
   * Returns color table pointer for this tree.
   *
   * Each Octree has an array of char whose size = the number of color table
   * entries. Each Node in the Octree points either to 8 sub-nodes, or
   * into the ColorTable;  The color table isn't actually used to hold
   * data; it simply provides a range of unique addresses that are distinct
   * from the address of any valid subtree.
   */
  virtual const char * GetColorTable() const = 0;

  /** Get the size of the Color Table  */
  virtual int GetColorTableSize() const = 0;
};

/**
 * \class Octree
 * \brief Represent a 3D Image with an Octree data structure.
 *
 * Parameterized on Pixel type of the image, number of colors in color
 * table, and a Mapping function, derived from itk::FunctionBase
 * \ingroup ITKCommon
 */
template< typename TPixel, unsigned int ColorTableSize, typename MappingFunctionType >
class Octree:public OctreeBase
{
public:
  /** Standard class typedefs. */
  typedef Octree                      Self;
  typedef OctreeBase                  Superclass;
  typedef SmartPointer< Self >        Pointer;
  typedef Image< TPixel, 3 >          ImageType;
  typedef typename ImageType::Pointer ImageTypePointer;
  /** Method for creation through the object factory. */
  itkNewMacro(Self);

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

  ImageTypePointer GetImage();

  virtual void BuildFromBuffer(const void *buffer, const unsigned int xsize, const unsigned int ysize, const unsigned int zsize);

  void BuildFromImage(Image< TPixel, 3 > *fromImage);

  Octree(void);
  ~Octree(void);
  void SetColor(unsigned int color) { m_Tree.SetColor(color); }
  void SetTree(OctreeNodeBranch *branch) { m_Tree.SetBranch(branch); }
  void SetTrueDims(const unsigned int Dim0, const unsigned int Dim1,
                   const unsigned int Dim2);

  int GetValue(const unsigned int Dim0, const unsigned int Dim1,
                        const unsigned int Dim2);

  virtual void SetWidth(unsigned int width);

  virtual void SetDepth(unsigned int depth);

  virtual unsigned int GetWidth();

  virtual unsigned int GetDepth();

  virtual OctreeNode * GetTree();

  virtual const char * GetColorTable() const;

  virtual int GetColorTableSize() const;

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

  OctreeNodeBranch * maskToOctree(const TPixel *Mask, unsigned width, unsigned x,
                                  unsigned y, unsigned z, unsigned xsize,
                                  unsigned ysize, unsigned zsize);

  enum OctreePlaneType m_Plane; // The orientation of the plane for this octree
  unsigned int         m_Width; // The width of the Octree
                                // ( This is always a power of 2, and large
                                // enough to contain MAX(DIMS[1,2,3]))
  unsigned int m_Depth;         // < The depth of the Octree
  unsigned int m_TrueDims[3];   // The true dimensions of the image
  char         m_ColorTable[ColorTableSize];
  OctreeNode   m_Tree;
  // OctreeColorMapFunction m_ColorMapFunction;
  MappingFunctionType m_MappingFunction;
};
}

#ifndef ITK_MANUAL_INSTANTIATION
#include "itkOctree.hxx"
#endif

#endif                          /* __itkOctree_h */