initial commit

This commit is contained in:
Patrick Brosi 2018-06-09 17:14:08 +02:00
commit efcd3e1892
106 changed files with 27000 additions and 0 deletions

View file

@ -0,0 +1,41 @@
// Copyright 2018, University of Freiburg,
// Chair of Algorithms and Data Structures.
// Authors: Patrick Brosi <brosi@informatik.uni-freiburg.de>
#ifndef PFAEDLE_NETGRAPH_EDGEPL_H_
#define PFAEDLE_NETGRAPH_EDGEPL_H_
#include <set>
#include <string>
#include <map>
#include "ad/cppgtfs/gtfs/Feed.h"
#include "util/geo/GeoGraph.h"
using util::geograph::GeoEdgePL;
using ad::cppgtfs::gtfs::Trip;
namespace pfaedle {
namespace netgraph {
/*
* A payload class for edges on a network graph - that is a graph
* that exactly represents a physical public transit network
*/
class EdgePL : public GeoEdgePL<float> {
public:
EdgePL() {}
EdgePL(const util::geo::FLine& l, const std::set<const Trip*>& trips)
: _l(l), _trips(trips) {}
const util::geo::FLine* getGeom() const { return &_l; }
void getAttrs(std::map<std::string, std::string>* obj) const {
(*obj)["numtrips"] = std::to_string(_trips.size());
}
private:
util::geo::FLine _l;
std::set<const Trip*> _trips;
};
} // namespace netgraph
} // namespace pfaedle
#endif // PFAEDLE_NETGRAPH_EDGEPL_H_

View file

@ -0,0 +1,31 @@
// Copyright 2018, University of Freiburg,
// Chair of Algorithms and Data Structures.
// Authors: Patrick Brosi <brosi@informatik.uni-freiburg.de>
#ifndef PFAEDLE_NETGRAPH_GRAPH_H_
#define PFAEDLE_NETGRAPH_GRAPH_H_
#include "pfaedle/netgraph/NodePL.h"
#include "pfaedle/netgraph/EdgePL.h"
#include "util/graph/UndirGraph.h"
using util::geo::Point;
using util::geo::Line;
using util::geo::FPoint;
using util::geo::FLine;
namespace pfaedle {
namespace netgraph {
/*
* A payload class for edges on a network graph - that is a graph
* that exactly represents a physical public transit network
*/
typedef util::graph::Edge<NodePL, EdgePL> Edge;
typedef util::graph::Node<NodePL, EdgePL> Node;
typedef util::graph::UndirGraph<NodePL, EdgePL> Graph;
} // namespace netgraph
} // namespace pfaedle
#endif // PFAEDLE_NETGRAPH_GRAPH_H_

View file

@ -0,0 +1,38 @@
// Copyright 2018, University of Freiburg,
// Chair of Algorithms and Data Structures.
// Authors: Patrick Brosi <brosi@informatik.uni-freiburg.de>
#ifndef PFAEDLE_NETGRAPH_NODEPL_H_
#define PFAEDLE_NETGRAPH_NODEPL_H_
#include <map>
#include <string>
#include "ad/cppgtfs/gtfs/Feed.h"
#include "util/geo/GeoGraph.h"
using util::geograph::GeoNodePL;
namespace pfaedle {
namespace netgraph {
/*
* A payload class for edges on a network graph - that is a graph
* that exactly represents a physical public transit network
*/
class NodePL : public GeoNodePL<float> {
public:
NodePL() {}
NodePL(const util::geo::FPoint& geom) { _geom = geom; } // NOLINT
const util::geo::FPoint* getGeom() const { return &_geom; }
void getAttrs(std::map<std::string, std::string>* attrs) const {
UNUSED(attrs);
}
private:
util::geo::FPoint _geom;
};
} // namespace netgraph
} // namespace pfaedle
#endif // PFAEDLE_NETGRAPH_NODEPL_H_