Don't bounds check by default in static rtree; fixes #1988
This commit is contained in:
parent
efbaaf2f84
commit
47d56676f1
@ -133,11 +133,14 @@ class StaticRTree
|
|||||||
EdgeDataT const ¤t_element = input_data_vector[element_counter];
|
EdgeDataT const ¤t_element = input_data_vector[element_counter];
|
||||||
|
|
||||||
// Get Hilbert-Value for centroid in mercartor projection
|
// Get Hilbert-Value for centroid in mercartor projection
|
||||||
|
BOOST_ASSERT(current_element.u < coordinate_list.size());
|
||||||
|
BOOST_ASSERT(current_element.v < coordinate_list.size());
|
||||||
|
|
||||||
FixedPointCoordinate current_centroid = EdgeDataT::Centroid(
|
FixedPointCoordinate current_centroid = EdgeDataT::Centroid(
|
||||||
FixedPointCoordinate(coordinate_list.at(current_element.u).lat,
|
FixedPointCoordinate(coordinate_list[current_element.u].lat,
|
||||||
coordinate_list.at(current_element.u).lon),
|
coordinate_list[current_element.u].lon),
|
||||||
FixedPointCoordinate(coordinate_list.at(current_element.v).lat,
|
FixedPointCoordinate(coordinate_list[current_element.v].lat,
|
||||||
coordinate_list.at(current_element.v).lon));
|
coordinate_list[current_element.v].lon));
|
||||||
current_centroid.lat =
|
current_centroid.lat =
|
||||||
COORDINATE_PRECISION * coordinate_calculation::mercator::latToY(
|
COORDINATE_PRECISION * coordinate_calculation::mercator::latToY(
|
||||||
current_centroid.lat / COORDINATE_PRECISION);
|
current_centroid.lat / COORDINATE_PRECISION);
|
||||||
@ -467,19 +470,22 @@ class StaticRTree
|
|||||||
{
|
{
|
||||||
for (uint32_t i = 0; i < element_count; ++i)
|
for (uint32_t i = 0; i < element_count; ++i)
|
||||||
{
|
{
|
||||||
|
BOOST_ASSERT(objects[i].u < coordinate_list.size());
|
||||||
|
BOOST_ASSERT(objects[i].v < coordinate_list.size());
|
||||||
|
|
||||||
rectangle.min_lon =
|
rectangle.min_lon =
|
||||||
std::min(rectangle.min_lon, std::min(coordinate_list.at(objects[i].u).lon,
|
std::min(rectangle.min_lon, std::min(coordinate_list[objects[i].u].lon,
|
||||||
coordinate_list.at(objects[i].v).lon));
|
coordinate_list[objects[i].v].lon));
|
||||||
rectangle.max_lon =
|
rectangle.max_lon =
|
||||||
std::max(rectangle.max_lon, std::max(coordinate_list.at(objects[i].u).lon,
|
std::max(rectangle.max_lon, std::max(coordinate_list[objects[i].u].lon,
|
||||||
coordinate_list.at(objects[i].v).lon));
|
coordinate_list[objects[i].v].lon));
|
||||||
|
|
||||||
rectangle.min_lat =
|
rectangle.min_lat =
|
||||||
std::min(rectangle.min_lat, std::min(coordinate_list.at(objects[i].u).lat,
|
std::min(rectangle.min_lat, std::min(coordinate_list[objects[i].u].lat,
|
||||||
coordinate_list.at(objects[i].v).lat));
|
coordinate_list[objects[i].v].lat));
|
||||||
rectangle.max_lat =
|
rectangle.max_lat =
|
||||||
std::max(rectangle.max_lat, std::max(coordinate_list.at(objects[i].u).lat,
|
std::max(rectangle.max_lat, std::max(coordinate_list[objects[i].u].lat,
|
||||||
coordinate_list.at(objects[i].v).lat));
|
coordinate_list[objects[i].v].lat));
|
||||||
}
|
}
|
||||||
BOOST_ASSERT(rectangle.min_lat != std::numeric_limits<int>::min());
|
BOOST_ASSERT(rectangle.min_lat != std::numeric_limits<int>::min());
|
||||||
BOOST_ASSERT(rectangle.min_lon != std::numeric_limits<int>::min());
|
BOOST_ASSERT(rectangle.min_lon != std::numeric_limits<int>::min());
|
||||||
|
Loading…
Reference in New Issue
Block a user