This file is indexed.

/usr/include/vtk-5.8/vtkMutableDirectedGraph.h is in libvtk5-dev 5.8.0-5.

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
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkMutableDirectedGraph.h

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
/*-------------------------------------------------------------------------
  Copyright 2008 Sandia Corporation.
  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
  the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
// .NAME vtkMutableDirectedGraph - An editable directed graph.
//
// .SECTION Description
// vtkMutableDirectedGraph is a directed graph which has additional methods
// for adding edges and vertices. AddChild() is a convenience method for
// constructing trees. ShallowCopy(), DeepCopy(), CheckedShallowCopy() and
// CheckedDeepCopy() will succeed for instances of vtkDirectedGraph,
// vtkMutableDirectedGraph and vtkTree.
//
// .SECTION See Also
// vtkDirectedGraph vtkGraph vtkTree

#ifndef __vtkMutableDirectedGraph_h
#define __vtkMutableDirectedGraph_h

#include "vtkDirectedGraph.h"

class vtkEdgeListIterator;
class vtkGraphEdge;
class vtkVariant;

class VTK_FILTERING_EXPORT vtkMutableDirectedGraph : public vtkDirectedGraph
{
public:
  static vtkMutableDirectedGraph *New();
  vtkTypeMacro(vtkMutableDirectedGraph, vtkDirectedGraph);
  void PrintSelf(ostream& os, vtkIndent indent);

  // Description:
  // Allocates space for the specified number of vertices in the graph's
  // internal data structures.
  //
  // This has no effect on the number of vertex coordinate tuples or
  // vertex attribute tuples allocated; you are responsible for
  // guaranteeing these match.
  // Also, this call is not implemented for distributed-memory graphs since
  // the semantics are unclear; calling this function on a graph with a
  // non-NULL DistributedGraphHelper will generate an error message and
  // no allocation will be performed.
  virtual vtkIdType SetNumberOfVertices( vtkIdType numVerts );

  // Description:
  // Adds a vertex to the graph and returns the index of the new vertex.
  //
  // \note In a distributed graph (i.e. a graph whose DistributedHelper
  // is non-null), this routine cannot be used to add a vertex
  // if the vertices in the graph have pedigree IDs, because this routine
  // will always add the vertex locally, which may conflict with the
  // proper location of the vertex based on the distribution of the
  // pedigree IDs.
  vtkIdType AddVertex();

  // Description:
  // Adds a vertex to the graph with associated properties defined in
  // \p propertyArr and returns the index of the new vertex.
  // The number and order of values in \p propertyArr must match up with the
  // arrays in the vertex data retrieved by GetVertexData().
  //
  // If a vertex with the given pedigree ID already exists, its properties will be
  // overwritten with the properties in \p propertyArr and the existing
  // vertex index will be returned.
  //
  // \note In a distributed graph (i.e. a graph whose DistributedHelper
  // is non-null) the vertex added or found might not be local. In this case,
  // AddVertex will wait until the vertex can be added or found
  // remotely, so that the proper vertex index can be returned. If you
  // don't actually need to use the vertex index, consider calling
  // LazyAddVertex, which provides better performance by eliminating
  // the delays associated with returning the vertex index.
  vtkIdType AddVertex(vtkVariantArray *propertyArr);

  // Description:
  // Adds a vertex with the given \p pedigreeID to the graph and
  // returns the index of the new vertex.
  //
  // If a vertex with the given pedigree ID already exists,
  // the existing vertex index will be returned.
  //
  // \note In a distributed graph (i.e. a graph whose DistributedHelper
  // is non-null) the vertex added or found might not be local. In this case,
  // AddVertex will wait until the vertex can be added or found
  // remotely, so that the proper vertex index can be returned. If you
  // don't actually need to use the vertex index, consider calling
  // LazyAddVertex, which provides better performance by eliminating
  // the delays associated with returning the vertex index.
  vtkIdType AddVertex(const vtkVariant& pedigreeId);

//BTX
  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u and \p v are vertex indices,
  // and returns a \p vtkEdgeType structure describing that edge.
  //
  // \p vtkEdgeType contains fields for \p Source vertex index,
  // \p Target vertex index, and edge index \p Id.
  vtkEdgeType AddEdge(vtkIdType u, vtkIdType v);
//ETX

//BTX
  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u and \p v are vertex indices,
  // with associated properties defined in \p propertyArr
  // and returns a \p vtkEdgeType structure describing that edge.
  //
  // The number and order of values in \p propertyArr must match up with the
  // arrays in the edge data retrieved by GetEdgeData().
  //
  // \p vtkEdgeType contains fields for \p Source vertex index,
  // \p Target vertex index, and edge index \p Id.
  vtkEdgeType AddEdge(vtkIdType u, vtkIdType v,
                      vtkVariantArray *propertyArr);
//ETX

  //BTX
  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u is a vertex pedigree ID and \p v is a vertex index,
  // and returns a \p vtkEdgeType structure describing that edge.
  //
  // The number and order of values in the optional parameter
  // \p propertyArr must match up with the arrays in the edge data
  // retrieved by GetEdgeData().
  //
  // \p vtkEdgeType contains fields for \p Source vertex index,
  // \p Target vertex index, and edge index \p Id.
  vtkEdgeType AddEdge(const vtkVariant& u, vtkIdType v,
                      vtkVariantArray *propertyArr = 0);

  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u is a vertex index and \p v is a vertex pedigree ID,
  // and returns a \p vtkEdgeType structure describing that edge.
  //
  // The number and order of values in the optional parameter
  // \p propertyArr must match up with the arrays in the edge data
  // retrieved by GetEdgeData().
  //
  // \p vtkEdgeType contains fields for \p Source vertex index,
  // \p Target vertex index, and edge index \p Id.
  vtkEdgeType AddEdge(vtkIdType u, const vtkVariant& v,
                      vtkVariantArray *propertyArr = 0);

  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u and \p v are vertex pedigree IDs,
  // and returns a \p vtkEdgeType structure describing that edge.
  //
  // The number and order of values in the optional parameter
  // \p propertyArr must match up with the arrays in the edge data
  // retrieved by GetEdgeData().
  //
  // \p vtkEdgeType contains fields for \p Source vertex index,
  // \p Target vertex index, and edge index \p Id.
  vtkEdgeType AddEdge(const vtkVariant& u,
                      const vtkVariant& v,
                      vtkVariantArray *propertyArr = 0);
  //ETX

  // Description:
  // Adds a vertex to the graph.
  //
  // This method is lazily evaluated for distributed graphs (i.e. graphs
  // whose DistributedHelper is non-null) the next time Synchronize is
  // called on the helper.
  void LazyAddVertex();

  // Description:
  // Adds a vertex to the graph with associated properties defined in
  // \p propertyArr.
  // The number and order of values in \p propertyArr must match up with the
  // arrays in the vertex data retrieved by GetVertexData().
  //
  // If a vertex with the given pedigree ID already exists, its properties will be
  // overwritten with the properties in \p propertyArr.
  //
  // This method is lazily evaluated for distributed graphs (i.e. graphs
  // whose DistributedHelper is non-null) the next time Synchronize is
  // called on the helper.
  void LazyAddVertex(vtkVariantArray *propertyArr);

  // Description:
  // Adds a vertex with the given \p pedigreeID to the graph.
  //
  // If a vertex with the given pedigree ID already exists,
  // no operation is performed.
  //
  // This method is lazily evaluated for distributed graphs (i.e. graphs
  // whose DistributedHelper is non-null) the next time Synchronize is
  // called on the helper.
  void LazyAddVertex(const vtkVariant& pedigreeId);

  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u and \p v are vertex indices.
  //
  // The number and order of values in the optional parameter
  // \p propertyArr must match up with the arrays in the edge data
  // retrieved by GetEdgeData().
  //
  // This method is lazily evaluated for distributed graphs (i.e. graphs
  // whose DistributedHelper is non-null) the next time Synchronize is
  // called on the helper.
  void LazyAddEdge(vtkIdType u, vtkIdType v, vtkVariantArray *propertyArr = 0);

  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u is a vertex pedigree ID and \p v is a vertex index.
  //
  // The number and order of values in the optional parameter
  // \p propertyArr must match up with the arrays in the edge data
  // retrieved by GetEdgeData().
  //
  // This method is lazily evaluated for distributed graphs (i.e. graphs
  // whose DistributedHelper is non-null) the next time Synchronize is
  // called on the helper.
  void LazyAddEdge(const vtkVariant& u, vtkIdType v,
                   vtkVariantArray *propertyArr = 0);

  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u is a vertex index and \p v is a vertex pedigree ID.
  //
  // The number and order of values in the optional parameter
  // \p propertyArr must match up with the arrays in the edge data
  // retrieved by GetEdgeData().
  //
  // This method is lazily evaluated for distributed graphs (i.e. graphs
  // whose DistributedHelper is non-null) the next time Synchronize is
  // called on the helper.
  void LazyAddEdge(vtkIdType u, const vtkVariant& v,
                   vtkVariantArray *propertyArr = 0);

  // Description:
  // Adds a directed edge from \p u to \p v,
  // where \p u and \p v are vertex pedigree IDs.
  //
  // The number and order of values in the optional parameter
  // \p propertyArr must match up with the arrays in the edge data
  // retrieved by GetEdgeData().
  //
  // This method is lazily evaluated for distributed graphs (i.e. graphs
  // whose DistributedHelper is non-null) the next time Synchronize is
  // called on the helper.
  void LazyAddEdge(const vtkVariant& u,
                   const vtkVariant& v,
                   vtkVariantArray *propertyArr = 0);

  // Description:
  // Variant of AddEdge() that returns a heavyweight \p vtkGraphEdge object.
  // The graph owns the reference of the edge and will replace
  // its contents on the next call to AddGraphEdge().
  //
  // \note This is a less efficient method for use with wrappers.
  // In C++ you should use the faster AddEdge().
  vtkGraphEdge *AddGraphEdge(vtkIdType u, vtkIdType v);

  // Description:
  // Convenience method for creating trees.
  // Returns the newly created vertex id.
  // Shortcut for
  // \code
  // vtkIdType v = g->AddVertex();
  // g->AddEdge(parent, v);
  // \endcode
  // If non-null, \p propertyArr provides edge properties
  // for the newly-created edge. The values in \p propertyArr must match
  // up with the arrays in the edge data returned by GetEdgeData().
  vtkIdType AddChild(vtkIdType parent,
                     vtkVariantArray *propertyArr);
  vtkIdType AddChild(vtkIdType parent)
    { return this->AddChild(parent, 0); }

  // Description:
  // Removes the vertex from the graph along with any connected edges.
  // Note: This invalidates the last vertex index, which is reassigned to v.
  void RemoveVertex(vtkIdType v);

  // Description:
  // Removes the edge from the graph.
  // Note: This invalidates the last edge index, which is reassigned to e.
  void RemoveEdge(vtkIdType e);

  // Description:
  // Removes a collection of vertices from the graph along with any connected edges.
  void RemoveVertices(vtkIdTypeArray* arr);

  // Description:
  // Removes a collection of edges from the graph.
  void RemoveEdges(vtkIdTypeArray* arr);

protected:
  vtkMutableDirectedGraph();
  ~vtkMutableDirectedGraph();

  // Description:
  // Graph edge that is reused of \p AddGraphEdge calls.
  vtkGraphEdge *GraphEdge;

private:
  vtkMutableDirectedGraph(const vtkMutableDirectedGraph&);  // Not implemented.
  void operator=(const vtkMutableDirectedGraph&);  // Not implemented.
};

#endif