3/4 unpack cases working
This commit is contained in:
parent
b679a94930
commit
a0bddab169
@ -294,7 +294,7 @@ public:
|
|||||||
super::UnpackPath(
|
super::UnpackPath(
|
||||||
packed_shortest_path,
|
packed_shortest_path,
|
||||||
phantom_node_pair.startPhantom.fwd_segment_position,
|
phantom_node_pair.startPhantom.fwd_segment_position,
|
||||||
(packed_shortest_path.front() == phantom_node_pair.startPhantom.reverse_node_id),
|
(packed_shortest_path.front() == phantom_node_pair.startPhantom.forward_node_id),
|
||||||
phantom_node_pair.targetPhantom.fwd_segment_position,//( packed_forward_path.back() == phantom_node_pair.targetPhantom.forward_node_id ? 1 : -1 )*phantom_node_pair.targetPhantom.fwd_segment_position,
|
phantom_node_pair.targetPhantom.fwd_segment_position,//( packed_forward_path.back() == phantom_node_pair.targetPhantom.forward_node_id ? 1 : -1 )*phantom_node_pair.targetPhantom.fwd_segment_position,
|
||||||
raw_route_data.unpacked_path_segments.front()
|
raw_route_data.unpacked_path_segments.front()
|
||||||
);
|
);
|
||||||
|
@ -149,12 +149,6 @@ public:
|
|||||||
// std::cout << packed_path[i] << " ";
|
// std::cout << packed_path[i] << " ";
|
||||||
// }
|
// }
|
||||||
|
|
||||||
bool segment_reversed = false;
|
|
||||||
|
|
||||||
SimpleLogger().Write(logDEBUG) << "fwd offset: " << fwd_index_offset;
|
|
||||||
SimpleLogger().Write(logDEBUG) << "rev offset: " << rev_index_offset;
|
|
||||||
SimpleLogger().Write(logDEBUG) << "start_traversed_in_reverse: " << ( start_traversed_in_reverse ? "y" : "n" );
|
|
||||||
|
|
||||||
// SimpleLogger().Write() << "starting unpack";
|
// SimpleLogger().Write() << "starting unpack";
|
||||||
const unsigned packed_path_size = packed_path.size();
|
const unsigned packed_path_size = packed_path.size();
|
||||||
std::stack<std::pair<NodeID, NodeID> > recursion_stack;
|
std::stack<std::pair<NodeID, NodeID> > recursion_stack;
|
||||||
@ -168,6 +162,7 @@ public:
|
|||||||
|
|
||||||
std::pair<NodeID, NodeID> edge;
|
std::pair<NodeID, NodeID> edge;
|
||||||
while(!recursion_stack.empty()) {
|
while(!recursion_stack.empty()) {
|
||||||
|
bool segment_reversed = false;
|
||||||
edge = recursion_stack.top();
|
edge = recursion_stack.top();
|
||||||
recursion_stack.pop();
|
recursion_stack.pop();
|
||||||
|
|
||||||
@ -216,6 +211,13 @@ public:
|
|||||||
// // SimpleLogger().Write(logDEBUG) << "first geometry: " << id_vector.front() << ", last geometry: " << id_vector.back();
|
// // SimpleLogger().Write(logDEBUG) << "first geometry: " << id_vector.front() << ", last geometry: " << id_vector.back();
|
||||||
|
|
||||||
const bool edge_is_reversed = (!ed.forward && ed.backward);
|
const bool edge_is_reversed = (!ed.forward && ed.backward);
|
||||||
|
SimpleLogger().Write(logDEBUG) << "fwd offset: " << fwd_index_offset;
|
||||||
|
SimpleLogger().Write(logDEBUG) << "rev offset: " << rev_index_offset;
|
||||||
|
SimpleLogger().Write(logDEBUG) << "start_traversed_in_reverse: " << ( start_traversed_in_reverse ? "y" : "n" );
|
||||||
|
SimpleLogger().Write(logDEBUG) << "edge_is_reversed: " << ( edge_is_reversed ? "y" : "n" );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if( edge_is_reversed ) {
|
// if( edge_is_reversed ) {
|
||||||
// SimpleLogger().Write(logDEBUG) << "reversing geometry";
|
// SimpleLogger().Write(logDEBUG) << "reversing geometry";
|
||||||
@ -230,8 +232,14 @@ public:
|
|||||||
BOOST_FOREACH(unsigned number, id_vector) {
|
BOOST_FOREACH(unsigned number, id_vector) {
|
||||||
SimpleLogger().Write() << "[" << number << "] " << facade->GetCoordinateOfNode(number);
|
SimpleLogger().Write() << "[" << number << "] " << facade->GetCoordinateOfNode(number);
|
||||||
}
|
}
|
||||||
const int start_index = ( ( start_traversed_in_reverse ) ? fwd_index_offset : 0 );
|
int start_index = ( ( start_traversed_in_reverse ) ? 0 : id_vector.size() - fwd_index_offset );
|
||||||
const int end_index = ( ( start_traversed_in_reverse ) ? id_vector.size() : fwd_index_offset );
|
int end_index = ( ( start_traversed_in_reverse ) ? id_vector.size() + 1 - fwd_index_offset : id_vector.size() );
|
||||||
|
|
||||||
|
if( edge_is_reversed ) {
|
||||||
|
start_index = ( ( !start_traversed_in_reverse ) ? id_vector.size() - fwd_index_offset - 1: fwd_index_offset );
|
||||||
|
end_index = ( ( !start_traversed_in_reverse ) ? id_vector.size() : id_vector.size() + 1 - fwd_index_offset );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// BOOST_ASSERT( start_index >= 0 );
|
// BOOST_ASSERT( start_index >= 0 );
|
||||||
// // BOOST_ASSERT( start_index <= end_index );
|
// // BOOST_ASSERT( start_index <= end_index );
|
||||||
|
Loading…
Reference in New Issue
Block a user