This file is indexed.

/usr/include/InsightToolkit/Common/itkOctree.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
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
/*=========================================================================

  Program:   Insight Segmentation & Registration Toolkit
  Module:    itkOctree.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 __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
 * 
 */
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 int xsize,const int ysize,const int zsize) = 0;
  /** Get the ColorTable Pointer
   * 
   * Returns color table pointer for this tree.
   *
   * Each Octree has an array of char whose size = the # 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, # of colors in color table,
 * and a Mapping function, derived from itk::FunctionBase
 */
template <class TPixel,unsigned int ColorTableSize,class 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 int xsize,const int ysize,const 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);

  unsigned 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.txx"
#endif

#endif                          /* __itkOctree_h */