expose component_id in phantom node
This commit is contained in:
parent
c7d3d635f6
commit
1bb3da0332
@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PhantomNode::PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigned name_id,
|
||||
int forward_weight, int reverse_weight, int forward_offset, int reverse_offset,
|
||||
unsigned packed_geometry_id, FixedPointCoordinate &location,
|
||||
unsigned packed_geometry_id, unsigned component_id, FixedPointCoordinate &location,
|
||||
unsigned short fwd_segment_position,
|
||||
TravelMode forward_travel_mode, TravelMode backward_travel_mode) :
|
||||
forward_node_id(forward_node_id),
|
||||
@ -40,6 +40,7 @@ PhantomNode::PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigne
|
||||
forward_offset(forward_offset),
|
||||
reverse_offset(reverse_offset),
|
||||
packed_geometry_id(packed_geometry_id),
|
||||
component_id(component_id),
|
||||
location(location),
|
||||
fwd_segment_position(fwd_segment_position),
|
||||
forward_travel_mode(forward_travel_mode),
|
||||
@ -55,6 +56,7 @@ PhantomNode::PhantomNode() :
|
||||
forward_offset(0),
|
||||
reverse_offset(0),
|
||||
packed_geometry_id(SPECIAL_EDGEID),
|
||||
component_id(-1),
|
||||
fwd_segment_position(0),
|
||||
forward_travel_mode(TRAVEL_MODE_INACCESSIBLE),
|
||||
backward_travel_mode(TRAVEL_MODE_INACCESSIBLE)
|
||||
@ -105,6 +107,11 @@ bool PhantomNode::is_valid(const unsigned number_of_nodes) const
|
||||
);
|
||||
}
|
||||
|
||||
bool PhantomNode::is_in_tiny_component() const
|
||||
{
|
||||
return component_id != 0;
|
||||
}
|
||||
|
||||
bool PhantomNode::is_valid() const
|
||||
{
|
||||
return location.is_valid() &&
|
||||
|
@ -39,7 +39,7 @@ struct PhantomNode
|
||||
{
|
||||
PhantomNode(NodeID forward_node_id, NodeID reverse_node_id, unsigned name_id,
|
||||
int forward_weight, int reverse_weight, int forward_offset, int reverse_offset,
|
||||
unsigned packed_geometry_id, FixedPointCoordinate &location,
|
||||
unsigned packed_geometry_id, unsigned component_id, FixedPointCoordinate &location,
|
||||
unsigned short fwd_segment_position,
|
||||
TravelMode forward_travel_mode, TravelMode backward_travel_mode);
|
||||
|
||||
@ -53,6 +53,7 @@ struct PhantomNode
|
||||
int forward_offset;
|
||||
int reverse_offset;
|
||||
unsigned packed_geometry_id;
|
||||
unsigned component_id;
|
||||
FixedPointCoordinate location;
|
||||
unsigned short fwd_segment_position;
|
||||
TravelMode forward_travel_mode : 4;
|
||||
@ -70,6 +71,8 @@ struct PhantomNode
|
||||
|
||||
bool is_valid() const;
|
||||
|
||||
bool is_in_tiny_component() const;
|
||||
|
||||
bool operator==(const PhantomNode & other) const;
|
||||
};
|
||||
|
||||
@ -104,6 +107,7 @@ inline std::ostream& operator<<(std::ostream &out, const PhantomNode & pn)
|
||||
"fwd-o: " << pn.forward_offset << ", " <<
|
||||
"rev-o: " << pn.reverse_offset << ", " <<
|
||||
"geom: " << pn.packed_geometry_id << ", " <<
|
||||
"comp: " << pn.component_id << ", " <<
|
||||
"pos: " << pn.fwd_segment_position << ", " <<
|
||||
"loc: " << pn.location;
|
||||
return out;
|
||||
|
@ -765,14 +765,14 @@ class StaticRTree
|
||||
const EdgeDataT & current_segment = current_query_node.node.template get<EdgeDataT>();
|
||||
|
||||
// don't collect too many results from big components
|
||||
if (number_of_results_found_in_big_cc == number_of_results &&
|
||||
if (number_of_results_found_in_big_cc == number_of_results &&
|
||||
current_segment.component_id == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// don't collect too many results from small components
|
||||
if (number_of_results_found_in_tiny_cc == number_of_results &&
|
||||
if (number_of_results_found_in_tiny_cc == number_of_results &&
|
||||
current_segment.component_id != 0)
|
||||
{
|
||||
continue;
|
||||
@ -804,6 +804,7 @@ class StaticRTree
|
||||
current_segment.forward_offset,
|
||||
current_segment.reverse_offset,
|
||||
current_segment.packed_geometry_id,
|
||||
current_segment.component_id,
|
||||
foot_point_coordinate_on_segment,
|
||||
current_segment.fwd_segment_position,
|
||||
current_segment.forward_travel_mode,
|
||||
|
Loading…
Reference in New Issue
Block a user