Carrying turn instructions through Contractor
This commit is contained in:
parent
735b4e2db1
commit
18c7aa7f89
@ -76,6 +76,7 @@ public:
|
|||||||
bool shortcut;
|
bool shortcut;
|
||||||
bool forward;
|
bool forward;
|
||||||
bool backward;
|
bool backward;
|
||||||
|
short turnInstruction;
|
||||||
} data;
|
} data;
|
||||||
|
|
||||||
//sorts by source and other attributes
|
//sorts by source and other attributes
|
||||||
|
@ -52,7 +52,7 @@ private:
|
|||||||
bool shortcut;
|
bool shortcut;
|
||||||
bool forward;
|
bool forward;
|
||||||
bool backward;
|
bool backward;
|
||||||
short turnType;
|
short turnInstruction;
|
||||||
} data;
|
} data;
|
||||||
|
|
||||||
struct _HeapData {
|
struct _HeapData {
|
||||||
@ -118,7 +118,7 @@ public:
|
|||||||
edge.data.nameID1 = i->nameID1();
|
edge.data.nameID1 = i->nameID1();
|
||||||
edge.data.nameID2 = i->nameID2();
|
edge.data.nameID2 = i->nameID2();
|
||||||
edge.data.via = i->via();
|
edge.data.via = i->via();
|
||||||
edge.data.turnType = i->turnInstruction();
|
edge.data.turnInstruction = i->turnInstruction();
|
||||||
edge.data.forward = i->isForward();
|
edge.data.forward = i->isForward();
|
||||||
edge.data.backward = i->isBackward();
|
edge.data.backward = i->isBackward();
|
||||||
edge.data.originalEdges = 1;
|
edge.data.originalEdges = 1;
|
||||||
@ -139,7 +139,7 @@ public:
|
|||||||
const NodeID source = edges[i].source;
|
const NodeID source = edges[i].source;
|
||||||
const NodeID target = edges[i].target;
|
const NodeID target = edges[i].target;
|
||||||
const NodeID via = edges[i].data.via;
|
const NodeID via = edges[i].data.via;
|
||||||
const short turnType = edges[i].data.turnType;
|
const short turnType = edges[i].data.turnInstruction;
|
||||||
assert(turnType >= 0);
|
assert(turnType >= 0);
|
||||||
//remove eigenloops
|
//remove eigenloops
|
||||||
if ( source == target ) {
|
if ( source == target ) {
|
||||||
@ -152,7 +152,7 @@ public:
|
|||||||
forwardEdge.target = backwardEdge.target = target;
|
forwardEdge.target = backwardEdge.target = target;
|
||||||
forwardEdge.data.forward = backwardEdge.data.backward = true;
|
forwardEdge.data.forward = backwardEdge.data.backward = true;
|
||||||
forwardEdge.data.backward = backwardEdge.data.forward = false;
|
forwardEdge.data.backward = backwardEdge.data.forward = false;
|
||||||
forwardEdge.data.turnType = backwardEdge.data.turnType = turnType;
|
forwardEdge.data.turnInstruction = backwardEdge.data.turnInstruction = turnType;
|
||||||
forwardEdge.data.nameID1 = backwardEdge.data.nameID2 = edges[i].data.nameID1;
|
forwardEdge.data.nameID1 = backwardEdge.data.nameID2 = edges[i].data.nameID1;
|
||||||
forwardEdge.data.nameID2 = backwardEdge.data.nameID1 = edges[i].data.nameID2;
|
forwardEdge.data.nameID2 = backwardEdge.data.nameID1 = edges[i].data.nameID2;
|
||||||
forwardEdge.data.shortcut = backwardEdge.data.shortcut = false;
|
forwardEdge.data.shortcut = backwardEdge.data.shortcut = false;
|
||||||
@ -524,6 +524,7 @@ private:
|
|||||||
newEdge.data.backward = false;
|
newEdge.data.backward = false;
|
||||||
newEdge.data.via = node;
|
newEdge.data.via = node;
|
||||||
newEdge.data.shortcut = true;
|
newEdge.data.shortcut = true;
|
||||||
|
newEdge.data.turnInstruction = outData.turnInstruction;
|
||||||
newEdge.data.originalEdges = outData.originalEdges + inData.originalEdges;
|
newEdge.data.originalEdges = outData.originalEdges + inData.originalEdges;
|
||||||
|
|
||||||
data->insertedEdges.push_back( newEdge );
|
data->insertedEdges.push_back( newEdge );
|
||||||
|
Loading…
Reference in New Issue
Block a user