This file is indexed.

/usr/include/ossim/kbool/line.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
/*! \file kbool/include/kbool/line.h
    \brief Mainy used for calculating crossings
    \author Probably Klaas Holwerda

    Copyright: 2001-2004 (C) Probably Klaas Holwerda

    Licence: wxWidgets Licence

    RCS-ID: $Id: line.h 14798 2009-06-29 19:19:22Z dburken $
*/

#ifndef LINE_H
#define LINE_H

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

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

class Bool_Engine;

// Status of a point to a line
enum PointStatus {LEFT_SIDE, RIGHT_SIDE, ON_AREA, IN_AREA};

class A2DKBOOLDLLEXP Graph;

class A2DKBOOLDLLEXP KBoolLine
{
   protected:
      Bool_Engine* m_GC;
	public:

		// constructors and destructor
		KBoolLine(Bool_Engine* GC);
		KBoolLine(KBoolLink*,Bool_Engine* GC);
		~KBoolLine();

		void			Set(KBoolLink *);
		KBoolLink*		GetLink();

      //! Get the beginnode from a line
		Node*		GetBeginNode();		
      
      //! Get the endnode from a line
		Node*		GetEndNode();   										  	

      //! Check if two lines intersects
		int					CheckIntersect(KBoolLine*, double Marge);	

      //! Intersects two lines
		int					Intersect(KBoolLine*, double Marge);    	 
		int               Intersect_simple(KBoolLine * lijn);
		bool				   Intersect2(Node* crossing,KBoolLine * lijn);

      //!For an infinite line
		PointStatus			PointOnLine(Node* a_node, double& Distance, double Marge ); 

      //!For a non-infinite line
		PointStatus			PointInLine(Node* a_node, double& Distance, double Marge ); 

      //! Caclulate Y if X is known
      B_INT					Calculate_Y(B_INT X); 								
		B_INT         		Calculate_Y_from_X(B_INT X);
		void              Virtual_Point( LPoint *a_point, double distance);

      //! assignment operator
		KBoolLine& 			operator=(const KBoolLine&); 					

		Node* 				OffsetContour(KBoolLine* const nextline,Node* last_ins, double factor,Graph *shape);
		Node* 				OffsetContour_rounded(KBoolLine* const nextline,Node* _last_ins, double factor,Graph *shape);
		bool 				   OkeForContour(KBoolLine* const nextline,double factor,Node* LastLeft,Node* LastRight, LinkStatus& _outproduct);
		bool				   Create_Ring_Shape(KBoolLine* nextline,Node** _last_ins_left,Node** _last_ins_right,double factor,Graph *shape);
		void 					Create_Begin_Shape(KBoolLine* nextline,Node** _last_ins_left,Node** _last_ins_right,double factor,Graph *shape);
		void 					Create_End_Shape(KBoolLine* nextline,Node* _last_ins_left,Node* _last_ins_right,double factor,Graph *shape);

      //! Calculate the parameters if nessecary
		void  CalculateLineParameters(); 								

      //! Adds a crossing between the intersecting lines
		void  AddLineCrossing(B_INT , B_INT , KBoolLine *); 		

		void  AddCrossing(Node *a_node);
		Node* AddCrossing(B_INT X, B_INT Y);
		bool  ProcessCrossings(TDLI<KBoolLink>* _LI);

// Linecrosslist
		void	SortLineCrossings();
		bool	CrossListEmpty();
		DL_List<void*>*		GetCrossList();
//		bool	HasInCrossList(Node*);

	private:

      //! Function needed for Intersect
		int   ActionOnTable1(PointStatus,PointStatus); 							
      //! Function needed for Intersect
		int   ActionOnTable2(PointStatus,PointStatus); 						

		double 		m_AA;
		double		m_BB;
		double		m_CC;
		KBoolLink*	m_link;
		bool		m_valid_parameters;

      //! List with crossings through this link
		DL_List<void*>	 *linecrosslist;
};

#endif