fix signed/unsigned comparisons and casts
This commit is contained in:
parent
1ff8b62bf5
commit
00e8caa0e3
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright (c) 2014, Project OSRM, Dennis Luxen, others
|
Copyright (c) 2015, Project OSRM, Dennis Luxen, others
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
@ -39,86 +39,66 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
struct EdgeBasedNode
|
struct EdgeBasedNode
|
||||||
{
|
{
|
||||||
EdgeBasedNode() :
|
EdgeBasedNode()
|
||||||
forward_edge_based_node_id(SPECIAL_NODEID),
|
: forward_edge_based_node_id(SPECIAL_NODEID), reverse_edge_based_node_id(SPECIAL_NODEID),
|
||||||
reverse_edge_based_node_id(SPECIAL_NODEID),
|
u(SPECIAL_NODEID), v(SPECIAL_NODEID), name_id(0),
|
||||||
u(SPECIAL_NODEID),
|
forward_weight(INVALID_EDGE_WEIGHT >> 1), reverse_weight(INVALID_EDGE_WEIGHT >> 1),
|
||||||
v(SPECIAL_NODEID),
|
forward_offset(0), reverse_offset(0), packed_geometry_id(SPECIAL_EDGEID),
|
||||||
name_id(0),
|
component_id(-1), fwd_segment_position(std::numeric_limits<unsigned short>::max()),
|
||||||
forward_weight(INVALID_EDGE_WEIGHT >> 1),
|
forward_travel_mode(TRAVEL_MODE_INACCESSIBLE),
|
||||||
reverse_weight(INVALID_EDGE_WEIGHT >> 1),
|
backward_travel_mode(TRAVEL_MODE_INACCESSIBLE)
|
||||||
forward_offset(0),
|
{
|
||||||
reverse_offset(0),
|
}
|
||||||
packed_geometry_id(SPECIAL_EDGEID),
|
|
||||||
component_id(-1),
|
|
||||||
fwd_segment_position( std::numeric_limits<unsigned short>::max() ),
|
|
||||||
forward_travel_mode(TRAVEL_MODE_INACCESSIBLE),
|
|
||||||
backward_travel_mode(TRAVEL_MODE_INACCESSIBLE)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
explicit EdgeBasedNode(
|
explicit EdgeBasedNode(NodeID forward_edge_based_node_id,
|
||||||
NodeID forward_edge_based_node_id,
|
NodeID reverse_edge_based_node_id,
|
||||||
NodeID reverse_edge_based_node_id,
|
NodeID u,
|
||||||
NodeID u,
|
NodeID v,
|
||||||
NodeID v,
|
unsigned name_id,
|
||||||
unsigned name_id,
|
int forward_weight,
|
||||||
int forward_weight,
|
int reverse_weight,
|
||||||
int reverse_weight,
|
int forward_offset,
|
||||||
int forward_offset,
|
int reverse_offset,
|
||||||
int reverse_offset,
|
unsigned packed_geometry_id,
|
||||||
unsigned packed_geometry_id,
|
unsigned component_id,
|
||||||
unsigned component_id,
|
unsigned short fwd_segment_position,
|
||||||
unsigned short fwd_segment_position,
|
TravelMode forward_travel_mode,
|
||||||
TravelMode forward_travel_mode,
|
TravelMode backward_travel_mode)
|
||||||
TravelMode backward_travel_mode
|
: forward_edge_based_node_id(forward_edge_based_node_id),
|
||||||
) :
|
reverse_edge_based_node_id(reverse_edge_based_node_id), u(u), v(v), name_id(name_id),
|
||||||
forward_edge_based_node_id(forward_edge_based_node_id),
|
forward_weight(forward_weight), reverse_weight(reverse_weight),
|
||||||
reverse_edge_based_node_id(reverse_edge_based_node_id),
|
forward_offset(forward_offset), reverse_offset(reverse_offset),
|
||||||
u(u),
|
packed_geometry_id(packed_geometry_id), component_id(component_id),
|
||||||
v(v),
|
fwd_segment_position(fwd_segment_position), forward_travel_mode(forward_travel_mode),
|
||||||
name_id(name_id),
|
backward_travel_mode(backward_travel_mode)
|
||||||
forward_weight(forward_weight),
|
|
||||||
reverse_weight(reverse_weight),
|
|
||||||
forward_offset(forward_offset),
|
|
||||||
reverse_offset(reverse_offset),
|
|
||||||
packed_geometry_id(packed_geometry_id),
|
|
||||||
component_id(component_id),
|
|
||||||
fwd_segment_position(fwd_segment_position),
|
|
||||||
forward_travel_mode(forward_travel_mode),
|
|
||||||
backward_travel_mode(backward_travel_mode)
|
|
||||||
{
|
{
|
||||||
BOOST_ASSERT((forward_edge_based_node_id != SPECIAL_NODEID) ||
|
BOOST_ASSERT((forward_edge_based_node_id != SPECIAL_NODEID) ||
|
||||||
(reverse_edge_based_node_id != SPECIAL_NODEID));
|
(reverse_edge_based_node_id != SPECIAL_NODEID));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline FixedPointCoordinate Centroid(const FixedPointCoordinate & a, const FixedPointCoordinate & b)
|
static inline FixedPointCoordinate Centroid(const FixedPointCoordinate &a,
|
||||||
|
const FixedPointCoordinate &b)
|
||||||
{
|
{
|
||||||
FixedPointCoordinate centroid;
|
FixedPointCoordinate centroid;
|
||||||
//The coordinates of the midpoint are given by:
|
// The coordinates of the midpoint are given by:
|
||||||
centroid.lat = (a.lat + b.lat)/2;
|
centroid.lat = (a.lat + b.lat) / 2;
|
||||||
centroid.lon = (a.lon + b.lon)/2;
|
centroid.lon = (a.lon + b.lon) / 2;
|
||||||
return centroid;
|
return centroid;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsCompressed() const
|
bool IsCompressed() const { return packed_geometry_id != SPECIAL_EDGEID; }
|
||||||
{
|
|
||||||
return packed_geometry_id != SPECIAL_EDGEID;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool is_in_tiny_cc() const
|
bool is_in_tiny_cc() const { return 0 != component_id; }
|
||||||
{
|
|
||||||
return 0 != component_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
NodeID forward_edge_based_node_id; // needed for edge-expanded graph
|
NodeID forward_edge_based_node_id; // needed for edge-expanded graph
|
||||||
NodeID reverse_edge_based_node_id; // needed for edge-expanded graph
|
NodeID reverse_edge_based_node_id; // needed for edge-expanded graph
|
||||||
NodeID u; // indices into the coordinates array
|
NodeID u; // indices into the coordinates array
|
||||||
NodeID v; // indices into the coordinates array
|
NodeID v; // indices into the coordinates array
|
||||||
unsigned name_id; // id of the edge name
|
unsigned name_id; // id of the edge name
|
||||||
int forward_weight; // weight of the edge
|
int forward_weight; // weight of the edge
|
||||||
int reverse_weight; // weight in the other direction (may be different)
|
int reverse_weight; // weight in the other direction (may be different)
|
||||||
int forward_offset; // prefix sum of the weight up the edge TODO: short must suffice
|
int forward_offset; // prefix sum of the weight up the edge TODO: short must suffice
|
||||||
int reverse_offset; // prefix sum of the weight from the edge TODO: short must suffice
|
int reverse_offset; // prefix sum of the weight from the edge TODO: short must suffice
|
||||||
unsigned packed_geometry_id; // if set, then the edge represents a packed geometry
|
unsigned packed_geometry_id; // if set, then the edge represents a packed geometry
|
||||||
unsigned component_id;
|
unsigned component_id;
|
||||||
unsigned short fwd_segment_position; // segment id in a compressed geometry
|
unsigned short fwd_segment_position; // segment id in a compressed geometry
|
||||||
@ -126,4 +106,4 @@ struct EdgeBasedNode
|
|||||||
TravelMode backward_travel_mode : 4;
|
TravelMode backward_travel_mode : 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //EDGE_BASED_NODE_HPP
|
#endif // EDGE_BASED_NODE_HPP
|
||||||
|
Loading…
Reference in New Issue
Block a user