added graph data access

This commit is contained in:
Dennis Luxen 2013-09-17 18:45:33 +02:00
parent 1bd24f7042
commit 8753dbdb0f

View File

@ -30,13 +30,43 @@ or see http://www.gnu.org/licenses/agpl.txt.
#include <string> #include <string>
template<class EdgeDataT>
class QueryDataFacade { class QueryDataFacade {
public: public:
QueryDataFacade() { } QueryDataFacade() { }
virtual ~QueryDataFacade() { } virtual ~QueryDataFacade() { }
//search graph access //search graph access
//TODO virtual unsigned GetNumberOfNodes() const = 0;
virtual unsigned GetNumberOfEdges() const = 0;
virtual unsigned GetOutDegree( const NodeID n ) const = 0;
virtual NodeID GetTarget( const EdgeID e ) const = 0;
virtual EdgeDataT &GetEdgeData( const EdgeID e ) = 0;
virtual const EdgeDataT &GetEdgeData( const EdgeID e ) const = 0;
virtual EdgeID BeginEdges( const NodeID n ) const = 0;
virtual EdgeID EndEdges( const NodeID n ) const = 0;
//searches for a specific edge
virtual EdgeID FindEdge( const NodeID from, const NodeID to ) const = 0;
virtual EdgeID FindEdgeInEitherDirection(
const NodeID from,
const NodeID to
) const = 0;
virtual EdgeID FindEdgeIndicateIfReverse(
const NodeID from,
const NodeID to,
bool & result
) const = 0;
//node and edge information access //node and edge information access
virtual FixedPointCoordinate GetCoordinateOfNode( virtual FixedPointCoordinate GetCoordinateOfNode(
@ -47,8 +77,6 @@ public:
const unsigned id const unsigned id
) const = 0; ) const = 0;
virtual NodeID GetNumberOfNodes( ) const = 0;
virtual bool LocateClosestEndPointForCoordinate( virtual bool LocateClosestEndPointForCoordinate(
const FixedPointCoordinate& input_coordinate, const FixedPointCoordinate& input_coordinate,
FixedPointCoordinate& result, FixedPointCoordinate& result,