cast computed way in a proper way, add a static assertion to check for file types via traits
This commit is contained in:
parent
e62caf33aa
commit
459e2a322b
@ -1121,13 +1121,20 @@ class StaticRTree
|
|||||||
m_coordinate_list->at(nearest_edge.u), m_coordinate_list->at(nearest_edge.v));
|
m_coordinate_list->at(nearest_edge.u), m_coordinate_list->at(nearest_edge.v));
|
||||||
const float ratio = std::min(1.f, distance_1 / distance_2);
|
const float ratio = std::min(1.f, distance_1 / distance_2);
|
||||||
|
|
||||||
|
using TreeWeightType = decltype(result_phantom_node.forward_weight);
|
||||||
|
static_assert(std::is_same<decltype(result_phantom_node.forward_weight),
|
||||||
|
decltype(result_phantom_node.reverse_weight)>::value,
|
||||||
|
"forward and reverse weight type in tree must be the same");
|
||||||
|
|
||||||
if (SPECIAL_NODEID != result_phantom_node.forward_node_id)
|
if (SPECIAL_NODEID != result_phantom_node.forward_node_id)
|
||||||
{
|
{
|
||||||
result_phantom_node.forward_weight *= ratio;
|
const auto new_weight = static_cast<TreeWeightType>(result_phantom_node.forward_weight * ratio);
|
||||||
|
result_phantom_node.forward_weight = new_weight;
|
||||||
}
|
}
|
||||||
if (SPECIAL_NODEID != result_phantom_node.reverse_node_id)
|
if (SPECIAL_NODEID != result_phantom_node.reverse_node_id)
|
||||||
{
|
{
|
||||||
result_phantom_node.reverse_weight *= (1.f - ratio);
|
const auto new_weight = static_cast<TreeWeightType>(result_phantom_node.reverse_weight * (1.f-ratio));
|
||||||
|
result_phantom_node.reverse_weight = new_weight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user