This file is indexed.

/usr/include/ossim/kbool/link.h is in libossim-dev 1.7.21-3ubuntu2.

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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
/*! \file kbool/include/kbool/link.h
    \brief Part of a graph, connection between nodes (Header)
    \author Probably Klaas Holwerda or Julian Smart

    Copyright: 2001-2004 (C) Probably Klaas Holwerda

    Licence: wxWidgets Licence

    RCS-ID: $Id: link.h 9094 2006-06-13 19:12:40Z dburken $
*/

#ifndef LINK_H
#define LINK_H

#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface
#endif

#include <ossim/kbool/booleng.h>
#include <ossim/kbool/_lnk_itr.h>

enum LinkStatus {IS_LEFT,IS_ON,IS_RIGHT};

class LPoint;
class Node;
class Record;

//!   segment within a graph 
/*
   A Graph contains a list of KBoolLink, the KBoolLink or connected by Node's. 
   Several KBoolLink can be connected to one Node. 
   A KBoolLink has a direction defined by its begin and end node.
   Node do have a list of connected KBoolLink's.
   So one can walk trough a graph in two ways:
   1- via its KBoolLink list 
   2- via the node connected to the KBoolLink's 
*/
class A2DKBOOLDLLEXP KBoolLink
{
   protected:
      Bool_Engine* _GC;
	public:

		//! contructors 
		KBoolLink(Bool_Engine* GC);

		//! contructors 
		KBoolLink(int graphnr, Node* begin, Node* end, Bool_Engine* GC);

		//! contructors 
		KBoolLink(Node *begin, Node *end, Bool_Engine* GC);

		//! destructors
		~KBoolLink();


      //! Merges the other node with argument
		void MergeNodes(Node* const);      				

      //! outproduct of two links
      LinkStatus OutProduct(KBoolLink* const two,double accur);              
		
      //! link three compared to this and two
      LinkStatus PointOnCorner(KBoolLink* const, KBoolLink* const);	

      //! Removes argument from the link
		void Remove(Node*);		
      
      //! replaces olddone in the link by newnode
		void Replace(Node* oldnode, Node* newnode);		

      //!top hole marking
		void SetTopHole(bool value);

      //!top hole marking
		bool IsTopHole();

      //! Marking functions
		void UnMark();
      //! Marking functions
		void Mark();
      //! Marking functions
		void SetMark(bool);
      //! Marking functions
		bool IsMarked();

      //! holelink Marking functions
      void SetHoleLink(bool val){ m_holelink = val;};

      //! holelink Marking functions
      bool GetHoleLink(){ return m_holelink;};

      //! Bin functions
		void SetNotBeenHere();
      //! Bin functions
		void SetBeenHere();
      //! Have you been here ??
		bool BeenHere();										

      //! Removes all the references to this
		void	UnLink();												

		//! functions for maximum performance
		Node*	GetBeginNode();

      //! Datamember access functions
		Node*	GetEndNode();
		Node*	GetLowNode();
		Node*	GetHighNode();

      //! Returns a next link beginning with argument
		KBoolLink* Forth(Node*);
      
		int GetGraphNum();
		bool GetInc();
      bool GetLeftA();
		bool GetLeftB();
		bool GetRightA();
		bool GetRightB();
		void GetLRO(LPoint*, int&, int&, double);

      //! Return a node not equal to arg.
		Node*	GetOther(const Node* const);
      //! Is this link unused ?
		bool IsUnused();									

      //! Used for given operation ?
		bool IsMarked(BOOL_OP operation);            

      //! return true if Left side is marked true for operation
		bool IsMarkedLeft(BOOL_OP operation);            

      //! return true if Right side is marked true for operation
		bool IsMarkedRight(BOOL_OP operation);            

      //! is this a hole link for given operation
		bool IsHole(BOOL_OP operation);				
      
      //! set the hole mark
      void SetHole(bool);

      //! is the hole mark set?
		bool GetHole();

      //! Are the nodes on about the same coordinates ?
		bool IsZero(B_INT marge );		
		bool ShorterThan(B_INT marge );

      //! Resets the link
		void Reset(Node* begin, Node* end, int graphnr = 0);	
		void Set(Node* begin, Node* end);
		void SetBeginNode(Node*);
		void SetEndNode(Node*);
		void SetGraphNum(int);
		void SetInc(bool);
      void SetLeftA(bool);
		void SetLeftB(bool);
		void SetRightA(bool);
		void SetRightB(bool);
		void SetGroup(GroupType);
		GroupType Group();

      //! Flag calculation (internal only)
		void SetLineTypes();
		void Reset();
		void Reset_flags();

      //!put in this direction
      void Redirect(Node* a_node); 

      void TakeOverOperationFlags( KBoolLink* link );

      void SetRecordNode( DL_Node<Record*>* recordNode ) { m_record = recordNode; }

      DL_Node<Record*>* GetRecordNode() { return m_record; }

	protected:

      //! The mainitems of a link
      Node 	*m_beginnode, *m_endnode;
      //! Marker for walking over the graph
      bool	m_bin    	: 1;				
      //! Is this a part of hole ?
      bool	m_hole     : 1;				
      //! link that is toplink of hole?
      bool	m_hole_top : 1;				
      //! going in one more time in this graph if true  else going out one time
      bool 	m_Inc   	: 1;    			
      //! Is left in polygongroup A
      bool 	m_LeftA 	: 1;    			
      //! Is right in polygon group A
      bool 	m_RightA	: 1;    			
      //! Is left in polygon group B
      bool 	m_LeftB 	: 1;    			
      //! Is right in polygongroup B
      bool	m_RightB	: 1;    			
      //! General purose marker, internally unused
      bool	m_mark		: 1;    			
      //! link for linking holes
      bool	m_holelink : 1; 
      
      //! Marker for Merge Left
      bool m_merge_L 	: 1;				
      //! Marker for substract a-b Left
      bool m_a_substract_b_L: 1;	  		
      //! Marker for substract b-a Left
      bool m_b_substract_a_L: 1;	  		
      //! Marker for intersect Left
      bool m_intersect_L: 1;				
      //! Marker for X-OR Left
      bool m_exor_L: 1;				
      
      //! Marker for Merge Right
      bool m_merge_R 	: 1;				
      //! Marker for substract a-b Right
      bool m_a_substract_b_R: 1;	  		
      //! Marker for substract b-a Right
      bool m_b_substract_a_R: 1;	  		
      //! Marker for intersect Right
      bool m_intersect_R: 1;				
      //! Marker for X-OR Right
      bool m_exor_R: 1;				
      
      //! belongs to group A or B
      GroupType m_group : 1;      
      
      //! belongs to this polygon part in the graph.
      int m_graphnum;
      
      DL_Node<Record*>* m_record; 
};

#endif