This file is indexed.

/usr/include/gdcm-2.2/gdcmOverlay.h is in libgdcm2-dev 2.2.4-1.1ubuntu4.

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: GDCM (Grassroots DICOM). A DICOM library

  Copyright (c) 2006-2011 Mathieu Malaterre
  All rights reserved.
  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html 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 notice for more information.

=========================================================================*/
#ifndef GDCMOVERLAY_H
#define GDCMOVERLAY_H

#include "gdcmTypes.h"
#include "gdcmObject.h"

namespace gdcm
{

class OverlayInternal;
class ByteValue;
class DataSet;
class DataElement;
/**
 * \brief Overlay class
 * \note
 * see AreOverlaysInPixelData
 *
 * \todo
 *  Is there actually any way to recognize an overlay ? On images with multiple overlay I do not see
 *  any way to differenciate them (other than the group tag).
 *
 *  Example:
 */
class GDCM_EXPORT Overlay : public Object
{
public:
  Overlay();
  ~Overlay();
  /// Print
  void Print(std::ostream &) const;

  /// Update overlay from data element de:
  void Update(const DataElement & de);

  /// Set Group number
  void SetGroup(unsigned short group);
  /// Get Group number
  unsigned short GetGroup() const;
  /// set rows
  void SetRows(unsigned short rows);
  /// get rows
  unsigned short GetRows() const;
  /// set columns
  void SetColumns(unsigned short columns);
  /// get columns
  unsigned short GetColumns() const;
  /// set number of frames
  void SetNumberOfFrames(unsigned int numberofframes);
  /// set description
  void SetDescription(const char* description);
  /// get description
  const char *GetDescription() const;
  typedef enum {
    Invalid  = 0,
    Graphics = 1,
    ROI      = 2
  } OverlayType;
  /// set type
  void SetType(const char* type);
  /// get type
  const char *GetType() const;
  OverlayType GetTypeAsEnum() const;
  static const char *GetOverlayTypeAsString(OverlayType ot);
  static OverlayType GetOverlayTypeFromString(const char *);
  /// set origin
  void SetOrigin(const signed short origin[2]);
  /// get origin
  const signed short * GetOrigin() const;
  /// set frame origin
  void SetFrameOrigin(unsigned short frameorigin);
  /// set bits allocated
  void SetBitsAllocated(unsigned short bitsallocated);
  /// return bits allocated
  unsigned short GetBitsAllocated() const;
  /// set bit position
  void SetBitPosition(unsigned short bitposition);
  /// return bit position
  unsigned short GetBitPosition() const;

  /// set overlay from byte array + length
  void SetOverlay(const char *array, size_t length);
  ///
  bool GrabOverlayFromPixelData(DataSet const &ds);

  /// Return the Overlay Data as ByteValue:
  /// Not thread safe
  const ByteValue &GetOverlayData() const;

  /// Return whether or not the Overlay is empty:
  bool IsEmpty() const;

  /// return true if all bits are set to 0
  bool IsZero() const;

  /// return if the Overlay is stored in the pixel data or not
  bool IsInPixelData() const;

  /// Set wether or no the OverlayData is in the Pixel Data:
  void IsInPixelData(bool b);

  /// Decode the internal OverlayData (packed bits) into unpacked representation
  void Decompress(std::ostream &os) const;

  /// Get the raw (packed bits) Overlay Data:
  GDCM_LEGACY(bool GetBuffer(char *buffer) const)

  /// Do not use
  GDCM_LEGACY(bool GetUnpackBuffer(unsigned char *buffer) const)

  /// Do not use
  GDCM_LEGACY(void Decode(std::istream &is, std::ostream &os))

  /// Retrieve the size of the buffer needed to hold the Overlay
  /// as specified by Col & Row parameters
  size_t GetUnpackBufferLength() const;

  /// Retrieve the unpack buffer for Overlay. This is an error if
  /// the size if below GetUnpackBufferLength()
  bool GetUnpackBuffer(char *buffer, size_t len) const;

  Overlay(Overlay const &ov);

private:
  OverlayInternal *Internal;
};

} // end namespace gdcm

#endif //GDCMOVERLAY_H