added graph data access

This commit is contained in:
Dennis Luxen 2013-09-17 18:45:33 +02:00
parent 4900f3e54d
commit a04f77e7e0

View File

@ -30,13 +30,43 @@ or see http://www.gnu.org/licenses/agpl.txt.
#include <string>
template<class EdgeDataT>
class QueryDataFacade {
public:
QueryDataFacade() { }
virtual ~QueryDataFacade() { }
//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
virtual FixedPointCoordinate GetCoordinateOfNode(
@ -47,8 +77,6 @@ public:
const unsigned id
) const = 0;
virtual NodeID GetNumberOfNodes( ) const = 0;
virtual bool LocateClosestEndPointForCoordinate(
const FixedPointCoordinate& input_coordinate,
FixedPointCoordinate& result,