This file is indexed.

/usr/include/IGSTK/igstkInfiniTrackTracker.h is in libigstk4-dev 4.4.0-2build2.

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

  Program:   Image Guided Surgery Software Toolkit
  Module:    $RCSfile: igstkInfiniTrackTracker.h,v $
  Language:  C++
  Date:      $Date: 2011-01-18 21:40:16 $
  Version:   $Revision: 1.3 $

  Copyright (c) ISC  Insight Software Consortium.  All rights reserved.
  See IGSTKCopyright.txt or http://www.igstk.org/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 __igstkInfiniTrackTracker_h
#define __igstkInfiniTrackTracker_h

#ifdef _MSC_VER
#pragma warning ( disable : 4018 )
//Warning about: identifier was truncated to '255' characters in the debug
//information (MVC6.0 Debug)
#pragma warning( disable : 4284 )
#endif


#include "igstkTracker.h"
#include "igstkInfiniTrackTrackerTool.h"

struct itkMarkerPos;

#include "vector"

namespace igstk {
        
/** \class InfiniTrackTracker
 *  \brief Provides support for the InfiniTrack optical tracker.
 *
 *  The InfiniTrack tracker is a firewire-based optical tracker form Atracsys 
 *  sàrl in Bottens, Switzerland. This class uses the infiniTrack library that 
 *  comes with the Tracker to communicate with the tracker camera and gather 
 *  pose information of surgical tools.
 * 
 *  Notice that the infiniTrack library will search in the application directory
 *  for the calibration file that match the serial number of attached camera. 
 *  The calibration file is identified by 0xXXXXXXXX.xml.
 *
 *  \sa http://www.atracsys.com/
 *
 *  \ingroup Tracker
 */
  

class InfiniTrackTracker : public Tracker
{

public:
  /** Macro with standard traits declarations. */
  igstkStandardClassTraitsMacro(InfiniTrackTracker, Tracker)

public:

  /** Set marker templates directory */
  igstkSetStringMacro (MarkerTemplatesDirectory);

protected:

  /** Constructor */
  InfiniTrackTracker (void);

  /** Destructor */
  virtual ~InfiniTrackTracker(void);

  /** The "InternalOpen" method opens communication with a tracking device.
      This method is to be implemented by a descendant class 
      and responsible for device-specific processing */
  virtual ResultType InternalOpen( void );

  /** The "InternalClose" method closes communication with a tracking device.
      This method is to be implemented by a descendant class 
      and responsible for device-specific processing */
  virtual ResultType InternalClose( void );

  /** The "InternalReset" method resets tracker to a known configuration. 
      This method is to be implemented by a descendant class 
      and responsible for device-specific processing */
  virtual ResultType InternalReset( void );

  /** The "InternalStartTracking" method starts tracking.
      This method is to be implemented by a descendant class 
      and responsible for device-specific processing */
  virtual ResultType InternalStartTracking( void );

  /** The "InternalStopTracking" method stops tracking.
      This method is to be implemented by a descendant class 
      and responsible for device-specific processing */
  virtual ResultType InternalStopTracking( void );


  /** The "InternalUpdateStatus" method updates tracker status.
      This method is to be implemented by a descendant class 
      and responsible for device-specific processing */
  virtual ResultType InternalUpdateStatus( void );

  /** The "InternalThreadedUpdateStatus" method updates tracker status.
      This method is called in a separate thread.
      This method is to be implemented by a descendant class
      and responsible for device-specific processing */
  virtual ResultType InternalThreadedUpdateStatus( void );

  /** Print the object information in a stream. */
  virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const; 

  /** Verify if a tracker tool information is correct before attaching
      it to the tracker. This method is used to verify the information supplied
      by the user about the tracker tool. The information depends on the
      tracker type. For example, during the configuration step of the
      InfiniTrackTracker, location of the directory containing marker template 
      files is specified. If the user tries to attach a tracker tool with a 
      marker type whose template file is not stored in this directory, this 
      method will return failure. Similarly, for PolarisTracker, the method 
      returns failure,  if the tool part number specified by the user during 
      the tracker tool configuration step does not match with the part number 
      read from the SROM file.
   */
  virtual ResultType VerifyTrackerToolInformation ( const TrackerToolType * ); 

  /** The "ValidateSpecifiedFrequency" method checks if the specified  
      frequency is valid for the tracking device that is being used. This 
      method is to be overridden in the derived tracking-device specific  
      classes to take into account the maximum frequency possible in the 
      tracking device
   */
  virtual ResultType ValidateSpecifiedFrequency( double frequencyInHz );


  /** This method will remove entries of the traceker tool from internal
      data containers */
  virtual ResultType RemoveTrackerToolFromInternalDataContainers(
            const TrackerToolType * trackerTool ); 

  /** Add tracker tool entry to internal containers */
  virtual ResultType AddTrackerToolToInternalDataContainers(
            const TrackerToolType * trackerTool );

private:

  /** The infiniTrack handle */
  void* m_Handle;

  /** The serial number */
  unsigned long long m_u64DeviceSerialNumber;

  /** A mutex for multithreaded access to the buffer arrays */
  itk::MutexLock::Pointer  m_BufferLock;

  /** Buffers to hold the marker positions */
  std::vector<itkMarkerPos*>* m_pvecMarkerPos;

  /** Object array currently beeing processed by the user */
  int m_iProcessed;

  /** Currently available object array */
  int m_iAvailable;

  /** Object array currently in acquisition */
  int m_iInAcquisition;

  /** Set the next available object array for acquisition */
  void setNextArrayForAcquisition ();

  /** Set the next array for the user. True if a new array is available */
  bool setNextArrayForUser ();

  /** Called when the acquisition is finished */
  void acquisitionFinished ();

  /** The marker templates directory */
  std::string m_MarkerTemplatesDirectory;
  std::string m_MarkerTemplatesDirectoryToBeSet;


  /** The tracker tool <-> marker identification */
  struct TrackerToolIdentification 
    {std::string m_TrackerToolName; unsigned long m_u32GeometryID;}; 

  std::vector <TrackerToolIdentification> m_vecTrackerToolID;


}; // end of class InfiniTrackTracker

} // end of namespace igstk

#endif //__igstk_InfiniTrackTracker_h_