/usr/include/vtk-5.8/vtkCollectionIterator.h is in libvtk5-dev 5.8.0-14.1ubuntu3.
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 | /*=========================================================================
  Program:   Visualization Toolkit
  Module:    vtkCollectionIterator.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.
=========================================================================*/
// .NAME vtkCollectionIterator - iterator through a vtkCollection.
// .SECTION Description
// vtkCollectionIterator provides an alternative way to traverse
// through the objects in a vtkCollection.  Unlike the collection's
// built in interface, this allows multiple iterators to
// simultaneously traverse the collection.  If items are removed from
// the collection, only the iterators currently pointing to those
// items are invalidated.  Other iterators will still continue to
// function normally.
#ifndef __vtkCollectionIterator_h
#define __vtkCollectionIterator_h
#include "vtkObject.h"
class vtkCollection;
class vtkCollectionElement;
class VTK_COMMON_EXPORT vtkCollectionIterator : public vtkObject
{
public:
  vtkTypeMacro(vtkCollectionIterator,vtkObject);
  void PrintSelf(ostream& os, vtkIndent indent);
  static vtkCollectionIterator* New();
  
  // Description:
  // Set/Get the collection over which to iterate.
  virtual void SetCollection(vtkCollection*);
  vtkGetObjectMacro(Collection, vtkCollection);
  
  // Description:
  // Position the iterator at the first item in the collection.
  void InitTraversal() { this->GoToFirstItem(); }
  
  // Description:
  // Position the iterator at the first item in the collection.
  void GoToFirstItem();
  
  // Description:
  // Move the iterator to the next item in the collection.
  void GoToNextItem();
  
  // Description:
  // Test whether the iterator is currently positioned at a valid item.
  // Returns 1 for yes, 0 for no.
  int IsDoneWithTraversal();
  // Description:
  // Get the item at the current iterator position.  Valid only when
  // IsDoneWithTraversal() returns 1.
  vtkObject* GetCurrentObject();
#ifdef VTK_WORKAROUND_WINDOWS_MANGLE
# define GetObjectA GetObject
# define GetObjectW GetObject
#endif
  // Description:
  // @deprecated Replaced by vtkCollectionIterator::GetCurrentObject() as
  // of VTK 5.0.
  VTK_LEGACY(vtkObject* GetObject());
#ifdef VTK_WORKAROUND_WINDOWS_MANGLE
# undef GetObjectW
# undef GetObjectA
  //BTX
  VTK_LEGACY(vtkObject* GetObjectA());
  VTK_LEGACY(vtkObject* GetObjectW());
  //ETX
#endif
protected:
  vtkCollectionIterator();
  ~vtkCollectionIterator();
  
  // The collection over which we are iterating.
  vtkCollection* Collection;
  
  // The current iterator position.
  vtkCollectionElement* Element;
  vtkObject* GetObjectInternal();
private:
  vtkCollectionIterator(const vtkCollectionIterator&); // Not implemented
  void operator=(const vtkCollectionIterator&); // Not implemented
};
#endif
 |