/usr/include/OTB-5.8/otbRCC8EdgeIterator.h is in libotb-dev 5.8.0+dfsg-3.
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 | /*=========================================================================
Program: ORFEO Toolbox
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
See OTBCopyright.txt 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 notices for more information.
=========================================================================*/
#ifndef otbRCC8EdgeIterator_h
#define otbRCC8EdgeIterator_h
#include "otbRCC8Graph.h"
namespace otb
{
/**
* \class RCC8EdgeIterator
* \brief Iterates on the graph edges.
*
* \ingroup OTBRCC8
*/
template <class TGraph>
class ITK_EXPORT RCC8EdgeIterator
{
public:
/** self typedef */
typedef RCC8EdgeIterator Self;
/** Graph typedef */
typedef TGraph GraphType;
typedef typename GraphType::InternalGraphType InternalGraphType;
typedef typename GraphType::Pointer GraphPointerType;
typedef typename GraphType::EdgePointerType EdgePointerType;
typedef typename GraphType::VertexPointerType VertexPointerType;
typedef typename GraphType::VertexDescriptorType VertexDescriptorType;
typedef typename GraphType::RCC8ValueType RCC8ValueType;
/** typedef of the internal iterator */
typedef typename boost::graph_traits<InternalGraphType>::edge_iterator InternalIteratorType;
/** Typedef of the index map */
typedef typename boost::property_map<InternalGraphType, boost::vertex_index_t>::type IndexMapType;
/** Constructor */
RCC8EdgeIterator();
/** Copy constructor */
RCC8EdgeIterator(const Self &iter);
/** Constructor with input graph */
RCC8EdgeIterator(TGraph * graph);
/**
* Get the current edge value.
* \return The value of the current edge pointed by the iterator.
*/
RCC8ValueType GetValue(void);
/**
* Return the source vertex of the current edge.
* \return The source edge.
*/
VertexPointerType GetSourceVertex(void);
/**
* Return the target vertex of the current edge.
* \return The target vertex.
*/
VertexPointerType GetTargetVertex(void);
/**
* Return the source vertex index of the current edge.
* \return The source vertex index.
*/
VertexDescriptorType GetSourceIndex(void);
/**
* Return the target vertex index of the current edge.
* \return The target vertex index.
*/
VertexDescriptorType GetTargetIndex(void);
/**
* Return true if the iterator is at the end.
* \return True if the iterator is at the end.
*/
bool IsAtEnd(void);
/**
* Go to the beginning.
*/
void GoToBegin(void);
/**
* Increment.
*/
Self& operator ++();
/**
* Decrement.
*/
Self& operator --();
/**
* Add
*/
Self& operator +(int i);
/**
* Remove
*/
Self& operator -(int i);
/**
* Difference comparison operator.
*/
bool operator !=(const Self& it);
/**
* Equality comparison operator.
*/
bool operator ==(const Self& it);
/**
* Instantiation operator.
*/
Self& operator =(const Self& it);
private:
// End
InternalIteratorType m_End;
// Internal iterator.
InternalIteratorType m_Iter;
// Input graph pointer
GraphPointerType m_Graph;
};
} // End namespace otb
#ifndef OTB_MANUAL_INSTANTIATION
#include "otbRCC8EdgeIterator.txx"
#endif
#endif
|