This file is indexed.

/usr/include/ossim/base/ossimLsrRay.h is in libossim-dev 1.7.21-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
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
//*****************************************************************************
// FILE: ossimLsrRay.h
//
// Copyright (C) 2001 ImageLinks, Inc.
//
// License:  See top level LICENSE.txt file.
//
// DESCRIPTION:
//  Class for representing rays in some local space rectangular (LSR)
//  coordinate system. This coordinate system is related to the ECEF system
//  by the ossimLsrSpace member object. This class simplifies coordinate
//  conversions between LSR and ECEF, and other LSR spaces.
//
//  An LSR ray is defined as having an LSR origin point and an LSR unit
//  direction vector radiating from the origin.
//
// SOFTWARE HISTORY:
//>
//   08Aug2001  Oscar Kramer
//              Initial coding.
//<
//*****************************************************************************
//  $Id: ossimLsrRay.h 11428 2007-07-27 18:44:18Z gpotts $

#ifndef ossimLsrRay_HEADER
#define ossimLsrRay_HEADER

#include <ossim/base/ossimLsrPoint.h>
#include <ossim/base/ossimLsrVector.h>
#include <ossim/base/ossimEcefRay.h>
#include <ossim/base/ossimNotifyContext.h>

//*****************************************************************************
//  CLASS: ossimLsrRay
//
//*****************************************************************************
class OSSIMDLLEXPORT ossimLsrRay
{
public:
   /*!
    * CONSTRUCTORS: 
    */
   ossimLsrRay() {}
   
   ossimLsrRay(const ossimLsrRay& copy_this)
      : theOrigin(copy_this.theOrigin), theDirection(copy_this.theDirection) {}

   ossimLsrRay(const ossimLsrPoint&  origin,
               const ossimLsrVector& direction);

   ossimLsrRay(const ossimLsrPoint&  origin,
               const ossimLsrPoint&  towards);

   ossimLsrRay(const ossimLsrRay& convert_this,
               const ossimLsrSpace& new_space)
      : theOrigin(convert_this.theOrigin, new_space),
	theDirection(convert_this.theDirection, new_space) {}

   /*!
    * OPERATORS:
    */
   const ossimLsrRay&  operator= (const ossimLsrRay& r);       // inline below
   bool                operator==(const ossimLsrRay& r) const; // inline below
   bool                operator!=(const ossimLsrRay& r) const; // inline below

   /*!
    * DATA ACCESS METHODS:
    */
   const ossimLsrPoint&  origin()    const { return theOrigin; }
   const ossimLsrVector& direction() const { return theDirection; }
   const ossimLsrSpace&  lsrSpace()  const { return theOrigin.lsrSpace(); }

   /*!
    * CASTING OPERATOR: ossimEcefRay()
    * Looks like a constructor for an ossimEcefRay but is an operation on this
    * object. Returns the ossimEcefRay equivalent.
    */
   operator ossimEcefRay () const;  // inline below
   
   bool hasNans()const
   {
      return (theOrigin.hasNans()||theDirection.hasNans());
   }

   void makeNan()
   {
      theOrigin.makeNan();
      theDirection.makeNan();
   }
   /*!
    * METHOD: extend(t)
    * Extends the ray by distance t (meters) from the origin to the LSR
    * point returned (in same space).
    */
   ossimLsrPoint extend(const double& t) const
      {
         if(!hasNans())
         {
            return (theOrigin + theDirection*t);
         }

         ossimLsrPoint p;
         p.makeNan();
         return p;
      }

   /*!
    * Debug Dump: 
    */
   void print(ostream& stream = ossimNotify(ossimNotifyLevel_INFO)) const;  // inline below
   
   friend ostream& operator<< (ostream& os , const ossimLsrRay& instance)
      { instance.print(os); return os; }

private:
   ossimLsrPoint  theOrigin;
   ossimLsrVector theDirection;

};

//================== BEGIN DEFINITIONS FOR INLINE METHODS =====================

//*****************************************************************************
//  INLINE METHOD: ossimEcefRay::operator=(ossimEcefRay)
//*****************************************************************************
inline const ossimLsrRay& ossimLsrRay::operator=(const ossimLsrRay& r)
{
   theOrigin = r.theOrigin;
   theDirection = r.theDirection;
   return *this;
}

//*****************************************************************************
//  INLINE METHOD: ossimEcefRay::operator==(ossimEcefRay)
//*****************************************************************************
inline bool ossimLsrRay::operator==(const ossimLsrRay& r) const
{
   return ((theOrigin == r.theOrigin) && (theDirection == r.theDirection));
}

//*****************************************************************************
//  INLINE METHOD: ossimEcefRay::operator!=(ossimEcefRay)
//*****************************************************************************
inline bool ossimLsrRay::operator!=(const ossimLsrRay& r) const 
{
   return !(*this == r);
}

//*****************************************************************************
//  INLINE CASTING OPERATOR: ossimEcefRay()
//  
//  Looks like a constructor for an ossimEcefRay but is an operation on this
//  object. Returns the ossimEcefRay equivalent.
//*****************************************************************************
inline ossimLsrRay::operator ossimEcefRay() const
{
   return ossimEcefRay(ossimEcefPoint(theOrigin),
                       ossimEcefVector(theDirection));
}
   
//*****************************************************************************
//  INLINE METHOD: ossimLsrRay::print(ostream)
//  Dumps contents for debug purposes.
//*****************************************************************************
inline void ossimLsrRay::print(ostream& os) const
{
   os << "(ossimLsrRay)"
      << "\n   theOrigin    = " << theOrigin
      << "\n   theDirection = " << theDirection << ends;
}
   
#endif