This file is indexed.

/usr/share/netgen/libsrc/csg/polyhedra.hpp is in netgen-headers 4.9.13.dfsg-8build2.

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
#ifndef FILE_POLYHEDRA
#define FILE_POLYHEDRA


/**************************************************************************/
/* File:   polyhedra.hh                                                   */
/* Author: Joachim Schoeberl                                              */
/* Date:   19. Mar. 2000                                                  */
/**************************************************************************/

namespace netgen
{

  /*

  Polyhedral primitive
  
  */

  class Polyhedra : public Primitive
  {
    class Face {
    public:
      int pnums[3];
      int planenr;

      int inputnr;

      Box<3> bbox;
      //    Point<3> center;
      Vec<3> v1, v2;   // edges
      Vec<3> w1, w2;   // pseudo-inverse
      Vec<3> n;        // normal to face
      Vec<3> nn;       // normed normal

      Face () { ; }
      Face (int pi1, int pi2, int pi3, 
	    const Array<Point<3> > & points,
	    int ainputnr);
    };

    Array<Point<3> > points;
    Array<Face> faces;
    Array<Plane*> planes;
    Box<3> poly_bbox;

    double eps_base1;

  public:
    Polyhedra ();
    virtual ~Polyhedra ();
    static Primitive * CreateDefault ();

    virtual INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const;
    virtual INSOLID_TYPE PointInSolid (const Point<3> & p,
				       double eps) const;
    virtual INSOLID_TYPE VecInSolid (const Point<3> & p,
				     const Vec<3> & v,
				     double eps) const;

    // checks if lim s->0 lim t->0  p + t(v1 + s v2) in solid
    virtual INSOLID_TYPE VecInSolid2 (const Point<3> & p,
				      const Vec<3> & v1,
				      const Vec<3> & v2,
				      double eps) const;

    virtual void GetTangentialSurfaceIndices (const Point<3> & p, 
					      Array<int> & surfind, double eps) const;


    virtual void GetTangentialVecSurfaceIndices2 (const Point<3> & p, const Vec<3> & v1, const Vec<3> & v2,
						  Array<int> & surfind, double eps) const;

    virtual void CalcSpecialPoints (Array<Point<3> > & pts) const;
    virtual void AnalyzeSpecialPoint (const Point<3> & pt, 
				      Array<Point<3> > & specpts) const;
    virtual Vec<3> SpecialPointTangentialVector (const Point<3> & p, int s1, int s2) const;

    virtual int GetNSurfaces() const 
    { return planes.Size(); }
    virtual Surface & GetSurface (int i) 
    { return *planes[i]; }
    virtual const Surface & GetSurface (int i) const
    { return *planes[i]; }

    virtual void GetPrimitiveData (const char *& classname, Array<double> & coeffs) const;
    virtual void SetPrimitiveData (Array<double> & coeffs);

    virtual void Reduce (const BoxSphere<3> & box);
    virtual void UnReduce ();

    int AddPoint (const Point<3> & p);
    int AddFace (int pi1, int pi2, int pi3, int inputnum);

    void GetPolySurfs(Array < Array<int> * > & polysurfs);
  
  protected:
    int FaceBoxIntersection (int fnr, const BoxSphere<3> & box) const;
    //  void CalcData();
  };

}

#endif