/usr/include/geos/planargraph/DirectedEdgeStar.h is in libgeos-dev 3.2.2-3ubuntu1.
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 | /**********************************************************************
* $Id: DirectedEdgeStar.h 2556 2009-06-06 22:22:28Z strk $
*
* GEOS - Geometry Engine Open Source
* http://geos.refractions.net
*
* Copyright (C) 2001-2002 Vivid Solutions Inc.
* Copyright (C) 2005-2006 Refractions Research Inc.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Public Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
*
**********************************************************************/
#ifndef GEOS_PLANARGRAPH_DIRECTEDEDGESTAR_H
#define GEOS_PLANARGRAPH_DIRECTEDEDGESTAR_H
#include <geos/export.h>
#include <vector>
#include <cstddef>
// Forward declarations
namespace geos {
namespace geom {
class Coordinate;
}
namespace planargraph {
class DirectedEdge;
class Edge;
}
}
namespace geos {
namespace planargraph { // geos.planargraph
using namespace std;
/// A sorted collection of DirectedEdge which leave a Node in a PlanarGraph.
class GEOS_DLL DirectedEdgeStar {
protected:
private:
/**
* \brief The underlying list of outgoing DirectedEdges
*/
mutable std::vector<DirectedEdge*> outEdges;
mutable bool sorted;
void sortEdges() const;
public:
/**
* \brief Constructs a DirectedEdgeStar with no edges.
*/
DirectedEdgeStar(): sorted(false) {}
virtual ~DirectedEdgeStar() {}
/**
* \brief Adds a new member to this DirectedEdgeStar.
*/
void add(DirectedEdge *de);
/**
* \brief Drops a member of this DirectedEdgeStar.
*/
void remove(DirectedEdge *de);
/**
* \brief Returns an Iterator over the DirectedEdges,
* in ascending order by angle with the positive x-axis.
*/
std::vector<DirectedEdge*>::iterator iterator() { return begin(); }
/// Returns an iterator to first DirectedEdge
std::vector<DirectedEdge*>::iterator begin();
/// Returns an iterator to one-past last DirectedEdge
std::vector<DirectedEdge*>::iterator end();
/// Returns an const_iterator to first DirectedEdge
std::vector<DirectedEdge*>::const_iterator begin() const;
/// Returns an const_iterator to one-past last DirectedEdge
std::vector<DirectedEdge*>::const_iterator end() const;
/**
* \brief Returns the number of edges around the Node associated
* with this DirectedEdgeStar.
*/
size_t getDegree() const { return outEdges.size(); }
/**
* \brief Returns the coordinate for the node at wich this
* star is based
*/
geom::Coordinate& getCoordinate() const;
/**
* \brief Returns the DirectedEdges, in ascending order
* by angle with the positive x-axis.
*/
std::vector<DirectedEdge*>& getEdges();
/**
* \brief Returns the zero-based index of the given Edge,
* after sorting in ascending order by angle with the
* positive x-axis.
*/
int getIndex(const Edge *edge);
/**
* \brief Returns the zero-based index of the given DirectedEdge,
* after sorting in ascending order
* by angle with the positive x-axis.
*/
int getIndex(const DirectedEdge *dirEdge);
/**
* \brief Returns the remainder when i is divided by the number of
* edges in this DirectedEdgeStar.
*/
int getIndex(int i) const;
/**
* \brief Returns the DirectedEdge on the left-hand side
* of the given DirectedEdge (which must be a member of this
* DirectedEdgeStar).
*/
DirectedEdge* getNextEdge(DirectedEdge *dirEdge);
};
} // namespace geos::planargraph
} // namespace geos
#endif // GEOS_PLANARGRAPH_DIRECTEDEDGESTAR_H
/**********************************************************************
* $Log$
* Revision 1.2 2006/06/12 10:49:43 strk
* unsigned int => size_t
*
* Revision 1.1 2006/03/21 21:42:54 strk
* planargraph.h header split, planargraph:: classes renamed to match JTS symbols
*
**********************************************************************/
|