This file is indexed.

/usr/include/openigtlink/igtlTrajectoryMessage.h is in libopenigtlink-dev 1.11.0-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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
/*=========================================================================

  Program:   The OpenIGTLink Library
  Language:  C++
  Web page:  http://openigtlink.org/

  Copyright (c) Insight Software Consortium. All rights reserved.

  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 __igtlTrajectoryMessage_h
#define __igtlTrajectoryMessage_h

#include <vector>
#include <string>

#include "igtlObject.h"
#include "igtlMath.h"
#include "igtlMessageBase.h"
#include "igtlTypes.h"

#include "igtlImageMessage.h"

namespace igtl
{

/// TrajectoryElement class is used to manage a trajectory in TrajectoryMessage class.
class IGTLCommon_EXPORT TrajectoryElement: public Object
{
public:
  typedef TrajectoryElement                   Self;
  typedef Object                         Superclass;
  typedef SmartPointer<Self>             Pointer;
  typedef SmartPointer<const Self>       ConstPointer;

  igtlTypeMacro(igtl::TrajectoryElement, igtl::Object);
  igtlNewMacro(igtl::TrajectoryElement);

  /// Types of trajectory. 
  enum {
    TYPE_ENTRY_ONLY   = 1, /* Trajectory with only entry point */
    TYPE_TARGET_ONLY  = 2, /* Trajectory with only target point */
    TYPE_ENTRY_TARGET = 3, /* Trajectory with entry and target point */
  };

public:

  /// Sets the name of the trajectory.
  int           SetName(const char* name);

  /// Gets the name of the trajectory.
  const char*   GetName()                            { return this->m_Name.c_str(); };

  /// Sets the group name e.g. "Trajectory"
  int           SetGroupName(const char* grpname);

  /// Gets the group name.
  const char*   GetGroupName()                       { return this->m_GroupName.c_str(); };

  /// Sets the trajectory type. 'type' must be either TYPE_ENTRY_ONLY, TYPE_TARGET_ONLY, or TYPE_ENTRY_TARGET.
  int           SetType(igtlUint8 type);
  /// Gets the trajectory type. The returned value is either TYPE_ENTRY_ONLY, TYPE_TARGET_ONLY, or TYPE_ENTRY_TARGET.
  igtlUint8     GetType()                            { return this->m_Type; };

  /// Sets the color of the trajectory using an array of r, g, b and alpha.
  void          SetRGBA(igtlUint8 rgba[4]);

  /// Sets the color of the trajectory by r, g, b and alpha.
  void          SetRGBA(igtlUint8 r, igtlUint8 g, igtlUint8 b, igtlUint8 a);

  /// Gets the color of the trajectory. An array of r, g, b and alpha is stored in 'rgba'
  void          GetRGBA(igtlUint8* rgba);

  /// Gets the color of the trajectory.
  void          GetRGBA(igtlUint8& r, igtlUint8& g, igtlUint8& b, igtlUint8& a);

  /// Sets the entry position using an array.
  void          SetEntryPosition(igtlFloat32 position[3]);

  /// Sets the entry position.
  void          SetEntryPosition(igtlFloat32 x, igtlFloat32 y, igtlFloat32 z);

  /// Sets the entry position using an array of x, y, and z coordinates.
  void          GetEntryPosition(igtlFloat32* position);

  /// Gets the entry position.
  void          GetEntryPosition(igtlFloat32& x, igtlFloat32& y, igtlFloat32& z);

  /// Sets the target position using an array of x, y, and z coordinates.
  void          SetTargetPosition(igtlFloat32 position[3]);

  /// Sets the target position.
  void          SetTargetPosition(igtlFloat32 x, igtlFloat32 y, igtlFloat32 z);

  /// Gets the target position. Stores an array of x, y, and z coordinates in 'position'
  void          GetTargetPosition(igtlFloat32* position);

  /// Gets the target position.
  void          GetTargetPosition(igtlFloat32& x, igtlFloat32& y, igtlFloat32& z);

  /// Sets the radius. 
  void          SetRadius(igtlFloat32 radius)        { this->m_Radius = radius; };

  /// Gets the radius. 
  igtlFloat32   GetRadius()                          { return this->m_Radius; };

  /// Sets the owner of the trajectory. 'owner' must be a name of image.
  int           SetOwner(const char* owner);

  /// Gets the owner of the trajectory.
  const char*   GetOwner()                           { return this->m_Owner.c_str(); };

protected:
  TrajectoryElement();
  ~TrajectoryElement();

protected:

  /// name / description (< 64 bytes)
  std::string   m_Name;

  /// Can be "Labeled Trajectory", "Landmark", Fiducial", ...
  std::string   m_GroupName;

  /// Trajectory type (see TYPE_* constants)
  igtlUint8     m_Type;

  /// Color in R/G/B/A
  igtlUint8     m_RGBA[4];

  /// Coordinate of the entry point
  igtlFloat32   m_EntryPosition[3];

  /// Coordinate of the target point
  igtlFloat32   m_TargetPosition[3];

  /// Radius of the trajectory. Can be 0.
  igtlFloat32   m_Radius;

  /// Device name of the ower image.
  std::string   m_Owner;
};


/// A class for the GET_TRAJ message type.
class IGTLCommon_EXPORT GetTrajectoryMessage: public MessageBase
{
public:
  typedef GetTrajectoryMessage            Self;
  typedef MessageBase                    Superclass;
  typedef SmartPointer<Self>             Pointer;
  typedef SmartPointer<const Self>       ConstPointer;

  igtlTypeMacro(igtl::GetTrajectoryMessage, igtl::MessageBase);
  igtlNewMacro(igtl::GetTrajectoryMessage);

protected:
  GetTrajectoryMessage() : MessageBase() { this->m_DefaultBodyType  = "GET_TRAJ"; };
  ~GetTrajectoryMessage() {};
protected:
  virtual int  GetBodyPackSize() { return 0; };
  virtual int  PackBody()        { AllocatePack(); return 1; };
  virtual int  UnpackBody()      { return 1; };
};


/// The TRAJECTORY message type support to transfer information about 3D trajectory,
/// which is often used in surgical planning and guidance in image-guided therapy.
class IGTLCommon_EXPORT TrajectoryMessage: public MessageBase
{
public:
  typedef TrajectoryMessage               Self;
  typedef MessageBase                    Superclass;
  typedef SmartPointer<Self>             Pointer;
  typedef SmartPointer<const Self>       ConstPointer;

  igtlTypeMacro(igtl::TrajectoryMessage, igtl::MessageBase);
  igtlNewMacro(igtl::TrajectoryMessage);

public:

  /// Adds a trajectory to the list.
  int  AddTrajectoryElement(TrajectoryElement::Pointer& elem);

  /// Clears the all trajectory from the list.
  void ClearTrajectoryElement(TrajectoryElement::Pointer& elem);

  /// Gets the number of trajectory in the list.
  int  GetNumberOfTrajectoryElement();

  /// Gets the trajectory specified by 'index'.
  void GetTrajectoryElement(int index, TrajectoryElement::Pointer& elem);


protected:
  TrajectoryMessage();
  ~TrajectoryMessage();
  
protected:

  virtual int  GetBodyPackSize();
  virtual int  PackBody();
  virtual int  UnpackBody();
  
  /// A list of pointers to the trajectories.
  std::vector<TrajectoryElement::Pointer> m_TrajectoryList;
  
};


} // namespace igtl

#endif // _igtlTrajectoryMessage_h