This file is indexed.

/usr/include/oce/Poly_CoherentTriPtr.hxx is in liboce-foundation-dev 0.18.2-2build1.

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
// Created on: 2007-12-08
// Created by: Alexander GRIGORIEV
// Copyright (c) 2007-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.

#ifndef Poly_CoherentTriPtr_HeaderFile
#define Poly_CoherentTriPtr_HeaderFile

#include <NCollection_BaseAllocator.hxx>
#include <NCollection_DefineAlloc.hxx>

class Poly_CoherentTriangle;

#ifdef _MSC_VER
#pragma warning (push)
#pragma warning(disable:4355) //'this' : used in base member initializer list
#endif

/**
 * Implementation of both list node for Poly_CoherentTriangle type and
 * round double-linked list of these nodes. 
 */

class Poly_CoherentTriPtr
{
 public:
  /**
   * Iterator class for this list of triangles. Because the list is round,
   * an iteration can be started from any member and it finishes before taking
   * this member again. The iteration sense is always forward (Next).
   */  
  class Iterator {
  public:
    //! Empty constructor
    inline Iterator ()
      : myFirst         (0L),
        myCurrent       (0L)
    {}
    //! Constructor
    inline Iterator (const Poly_CoherentTriPtr& thePtr)
      : myFirst         (&thePtr),
        myCurrent       (&thePtr)
    {}
    //! Query the triangle that started the current iteration.
    inline const Poly_CoherentTriangle * First  () const
    { return myFirst ? &myFirst->GetTriangle() : 0L; }
    //! Query if there is available triangle pointer on this iteration
    inline Standard_Boolean             More    () const
    { return myCurrent != 0L; }
    //! Go to the next iteration.
    Standard_EXPORT void                Next    ();
    //! Get the current iterated triangle
    inline const Poly_CoherentTriangle& Value   () const
    { return myCurrent->GetTriangle(); }
    //! Get the current iterated triangle (mutable)
    inline Poly_CoherentTriangle&       ChangeValue   () const
    { return const_cast<Poly_CoherentTriangle&>(myCurrent->GetTriangle()); }
    //! Get the current iterated pointer to triangle
    inline const Poly_CoherentTriPtr&   PtrValue() const
    { return * myCurrent; }
  private:
    const Poly_CoherentTriPtr * myFirst;
    const Poly_CoherentTriPtr * myCurrent;
  };

  // ---------- PUBLIC METHODS ----------


  /**
   * Constructor.
   */
  inline Poly_CoherentTriPtr (const Poly_CoherentTriangle& theTri)
    : mypTriangle (&theTri),
      myNext      (this),
      myPrevious  (this)
  {}

  /**
   * Operator new for dynamic allocations
   */
  DEFINE_NCOLLECTION_ALLOC

  /**
   * Query the stored pointer to Triangle.
   */
  inline const Poly_CoherentTriangle&
                        GetTriangle () const
  { return * mypTriangle; }

  /**
   * Initialize this instance with a pointer to triangle.
   */
  inline void          SetTriangle (const Poly_CoherentTriangle * pTri)
  { mypTriangle = pTri; }
  
  /**
   * Query the next pointer in the list.
   */
  inline Poly_CoherentTriPtr&
                       Next     () const
  { return * myNext; }

  /**
   * Query the previous pointer in the list.
   */
  inline Poly_CoherentTriPtr&
                       Previous () const
  { return * myPrevious; }

  /**
   * Append a pointer to triangle into the list after the current instance.
   * @param pTri
   *   Triangle that is to be included in the list after this one.
   * @param theA
   *   Allocator where the new pointer instance is created.
   */
  Standard_EXPORT void Append   (const Poly_CoherentTriangle *           pTri,
                                 const Handle(NCollection_BaseAllocator)& theA);

  /**
   * Prepend a pointer to triangle into the list before the current instance.
   * @param pTri
   *   Triangle that is to be included in the list before this one.
   * @param theA
   *   Allocator where the new pointer instance is created.
   */
  Standard_EXPORT void Prepend  (const Poly_CoherentTriangle *           pTri,
                                 const Handle(NCollection_BaseAllocator)& theA);

  /**
   * Remove a pointer to triangle from its list.
   * @param thePtr
   *   This class instance that should be removed from its list.
   * @param theA
   *   Allocator where the current pointer instance was created.
   */
  Standard_EXPORT static void
                       Remove   (Poly_CoherentTriPtr *                   thePtr,
                                 const Handle(NCollection_BaseAllocator)& theA);

  /**
   * Remove the list containing the given pointer to triangle.
   */
  Standard_EXPORT static void
                       RemoveList (Poly_CoherentTriPtr *                 thePtr,
                                   const Handle(NCollection_BaseAllocator)&);

 protected:
  // ---------- PROTECTED METHODS ----------

  /**
   * Constructor.
   */
  inline Poly_CoherentTriPtr (const Poly_CoherentTriangle * pTri)
    : mypTriangle (pTri),
      myNext      (this),
      myPrevious  (this)
  {}

 private:
  // ---------- PRIVATE FIELDS ----------

  const Poly_CoherentTriangle * mypTriangle;
  Poly_CoherentTriPtr         * myNext;
  Poly_CoherentTriPtr         * myPrevious;

  friend class Iterator;
};

#ifdef _MSC_VER
#pragma warning (pop)
#endif

#endif