BREAKING CHANGE, REPROCESS YOUR OSM FILES

Information if its possible at all to turn at the end of edges is propagated through the complete toolchain
This commit is contained in:
Dennis Luxen
2010-09-30 15:40:48 +00:00
parent 94cfb4aad7
commit 5637c2f92a
6 changed files with 23 additions and 19 deletions
+3 -1
View File
@@ -75,7 +75,9 @@ public:
bool shortcut : 1;
bool forward : 1;
bool backward : 1;
short type;
short type:6;
bool forwardTurn:1;
bool backwardTurn:1;
_MiddleName middleName;
} data;
+6 -10
View File
@@ -295,24 +295,20 @@ public:
}
}
/* check if its possible to turn at the end of an edge */
template< class InputEdge >
void ComputeTurnInfoVector(std::vector< InputEdge >& inputEdges, std::vector<bool> * forwardTurnInfo, std::vector<bool> * backwardTurnInfo)
{
forwardTurnInfo->resize(inputEdges.size(), false);
backwardTurnInfo->resize(inputEdges.size(), false);
void ComputeTurnInfoVector( std::vector< InputEdge >& inputEdges ) {
for(unsigned n = 0; n < inputEdges.size(); n++) {
if(inputEdges[n].data.forward)
{
if(inputEdges[n].data.forward) {
NodeID target = inputEdges[n].target;
if(_graph->BeginEdges(target)+1 < _graph->EndEdges(target)) {
forwardTurnInfo->at(n) = true;
inputEdges[n].data.forwardTurn = true;
}
}
if(inputEdges[n].data.backward)
{
if(inputEdges[n].data.backward) {
NodeID source = inputEdges[n].source;
if(_graph->BeginEdges(source)+1 < _graph->EndEdges(source)) {
backwardTurnInfo->at(n) = true;
inputEdges[n].data.backwardTurn = true;
}
}
}
+5
View File
@@ -113,6 +113,8 @@ void readHSGRFromStream(istream &in, vector<EdgeT> * edgeList) {
bool shortcut;
bool forward;
bool backward;
bool forwardTurn;
bool backwardTurn;
short type;
NodeID middle;
NodeID source;
@@ -120,6 +122,8 @@ void readHSGRFromStream(istream &in, vector<EdgeT> * edgeList) {
in.read((char *)&(distance), sizeof(int));
assert(distance > 0);
in.read((char *)&(forwardTurn), sizeof(bool));
in.read((char *)&(backwardTurn), sizeof(bool));
in.read((char *)&(shortcut), sizeof(bool));
in.read((char *)&(forward), sizeof(bool));
in.read((char *)&(backward), sizeof(bool));
@@ -128,6 +132,7 @@ void readHSGRFromStream(istream &in, vector<EdgeT> * edgeList) {
in.read((char *)&(source), sizeof(NodeID));
in.read((char *)&(target), sizeof(NodeID));
e.backward = backward; e.distance = distance; e.forward = forward; e.middleName.middle = middle; e.shortcut = shortcut; e.type = type;
e.forwardTurn = forwardTurn; e.backwardTurn = backwardTurn;
g.data = e; g.source = source; g.target = target;
edgeList->push_back(g);