in sensor_fusion_pkg/src/utility.cpp [69:88]
std::vector<float> interp(const std::vector<float>& sortedX, const std::vector<float>& sortedXp, const std::vector<float>& sortedFp){
size_t currXpIdx = 0;
size_t currXidx = 0;
std::vector<float> returnArray;
while (currXidx < sortedX.size())
{
if (sortedXp[currXpIdx] <= sortedX[currXidx] && sortedX[currXidx] <= sortedXp[currXpIdx + 1])
{
const float percent = static_cast<float>(sortedX[currXidx] - sortedXp[currXpIdx]) /
static_cast<float>(sortedXp[currXpIdx + 1] - sortedXp[currXpIdx]);
returnArray.push_back(sortedFp[currXpIdx] * (1.0 - percent) + sortedFp[currXpIdx + 1] * percent);
++currXidx;
}
else
{
++currXpIdx;
}
}
return returnArray;
}