This file is indexed.

/usr/include/openigtlink/igtlPositionMessage.h is in libopenigtlink-dev 1.11.0-4.

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
/*=========================================================================

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

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

namespace igtl
{

/// The POSITION data type is used to transfer position and orientation information.
/// The data are a combination of 3-dimensional vector for the position and quaternion
/// for the orientation. Although equivalent position and orientation can be described
/// with the TRANSFORM data type, the POSITION data type has the advantage of smaller
/// data size (19%). It is therefore more suitable for pushing high frame-rate data
/// from tracking devices.
class IGTLCommon_EXPORT PositionMessage: public MessageBase
{
public:

  /// Types of message formats. The format of the POSITION message type can contain
  /// only a 3-element position vector (POSITION_ONLY), a combination of 3-element
  /// position vector and 3-element quaternion (WITH_QUATERNION3), or a combination
  /// of 3-element position vector and 4-element quaternion (ALL). 
  enum {
    POSITION_ONLY =  1,
    WITH_QUATERNION3,
    ALL,
  };

public:
  typedef PositionMessage                Self;
  typedef MessageBase                    Superclass;
  typedef SmartPointer<Self>             Pointer;
  typedef SmartPointer<const Self>       ConstPointer;

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

public:

  /// Initializes the class.
  void         Init();

  /// Sets the type of the pack. 't' must be either POSITION_ONLY, WITH_QUATERNION3, or ALL.
  void         SetPackType(int t); /* POSITION_ONLY / WITH_QUATERNION3 / ALL */

  /// Gets the type of the pack. The returned value must be either POSITION_ONLY, WITH_QUATERNION3, or ALL.
  int          GetPackType()  { return  m_PackType; };

  /// Specifies the pack type by body size (in most case obtained from general header).
  int          SetPackTypeByBodySize(int s);

  /// Sets the position by 3-element array of x, y, and z coordinates.
  void         SetPosition(const float* pos);

  /// Sets the position by x, y, and z coordinates.
  void         SetPosition(float x, float y, float z);

  /// Sets the quaternion by 4-element array.
  void         SetQuaternion(const float* quat);

  /// Sets the quaternion by elements of the quaternion (ox, oy, oz and w).
  void         SetQuaternion(float ox, float oy, float oz, float w);

  /// Gets the position. The function substitutes 3-element array of x, y and z coordinates in 'pos'.
  void         GetPosition(float* pos);

  /// Gets the position. The function substitutes the coordinates in 'x', 'y', and 'z'.
  void         GetPosition(float* x, float* y, float* z);

  /// Gets the quaternion. The function substitutes the array of elements of the quaternion in 'quat'.
  void         GetQuaternion(float* quat);

  /// Gets the quaternion. The function substitutes the elements of the quaternion in 'ox', 'oy', 'oz' and 'w'.
  void         GetQuaternion(float* ox, float* oy, float* oz, float* w);

  /// Sets the message header.
  // TODO: Is this needed or integrated in igtlMessageBase?
  virtual int SetMessageHeader(const MessageHeader* mb);

protected:
  PositionMessage();
  ~PositionMessage();
  
protected:

  virtual int  GetBodyPackSize();
  virtual int  PackBody();
  virtual int  UnpackBody();

  /// The type of message formats (either POSITION_ONLY, WITH_QUATERNION3, or ALL).
  igtlInt32    m_PackType;

  /// An array of x, y, and z coordinates for the position.
  igtlFloat32  m_Position[3];

  /// An array of ox, oy, oz, and w elements for the quaternion.
  igtlFloat32  m_Quaternion[4];

};


} // namespace igtl

#endif // _igtlPositionMessage_h